Ich habe QNX auf der Maschine installiert. Die Frage ist, dass das eingebettete System auch Zugriff auf die Hardware, die Portverwaltung usw. haben muss. Wie ist das in QNX implementiert? In welche Richtung zu studieren? Bisher habe ich die Organisation von Dateien, Verzeichnissen, Benutzern, Gruppen usw. gefunden. Oder ich verstehe nicht das Funktionsprinzip des SystemsWie kann ich auf die Hardware in QNX zugreifen?
Antwort
HINWEIS: Ich habe einen Link auf CODE-Proben an der Unterseite.
Ill versuchen, es in Bezug auf den Unterschied zwischen Linux and QNX
zu erklären.
QNX
ist ein RTOS
und sein kernel
kann als Neutrino Kernel
bezeichnet werden. Kernel
ist nur nackten Knochen, die mit H/W
in Wechselwirkung tritt, und es ist der Kern jeder operating system
, aber OS
besteht aus application software
und Kernel
, die in unison
arbeitet den Zweck eines computer system
zu erreichen.
Linux
allein ist nur eine Kernel
, die GNU/Linux
ist eine komplette OS
.
Linux
basiert auf monolithic architecture
, während QNX Micro Kernel
ist.
Monolithic kernel:
alle OS service
laufen zusammen mit der kernel main thread
somit in der gleichen memory
. Monolithic kernels
sind einfacher zu implementieren, aber ein bug
in einem Teil wie der driver
kann das Gesamtsystem herunterbringen.
MEHR GESCHIMPFE:
QNX
ist ein komplettes microkernel
basierend auf realtime OS
, vs Linux
die ein monolithic kernel
ist. QNX
kann auf vielen Embedded platforms
, wie auf mini computers
in Autos, die satnav
oder music controls
haben. (Jeep Cherokee), SCADA systems
. Die Anwendung Gebäude framework
ist viel anders als X11
oder Wayland
Sie erhalten Linux
. Wie in QNX GUI
gezeigt, ist es viel näher an Knochen und Metall.
Beispiel: In Linux
, wenn Sie einen Kreis auf dem Bildschirm zeichnen möchten, dies durch viele Abstraktionsebenen wie die X11
gehen, in QNX
Dinge einen direkteren Weg nehmen, die sie schneller auf einem kleinen Chip macht, diese Ergebnisse beim Verlieren der meisten networky
Sachen, die X11
ermöglicht Linux
ermöglicht.
QNX
etwas aus der Box ist, unterstützt framework
embedded systems
für die Herstellung, vs GNU/LINUX
ist ein wenig gegenüber dieser.
Real Time
Seite der Dinge ist über beide timely responses
und accuracy of the response
.
Look here zu verstehen QNX
und verschiedene Teile, die Sie für coding
benötigen.
QNX
Beispielcode kann here gefunden werden.
Die Dokumentation für QNX SDP 7 ist unter http://www.qnx.com/download/group.html?programid=29184 - Sie müssen sich anmelden, um darauf zuzugreifen (erstellen Sie ein Konto, falls Sie noch kein Konto haben).
Der QNX Neutrino System Architecture Guide ist ein Muss.
Im Großen und Ganzen wird der Hardwarezugriff für den Systemstart (siehe Erstellen von eingebetteten Systemen) und für die Bereitstellung von Systemdiensten (Schreiben eines Ressourcenmanagers) benötigt. Sie werden in erster Linie genügend Berechtigungen haben, um auf Ports zuzugreifen, Interrupt-Handler anzuhängen und Hardwareressourcen in den Adressraum Ihres Programms einzuordnen, dann Initialisierungsroutinen, Interrupt-Handler (QNX Neutrino RTOS Programmers Guide) und verschiedene Arten von Ereignissen zu erstellen Responder, die in Threads innerhalb von Ressourcenmanagerprozessen arbeiten, wenn sie von Interrupt-Handlern entsperrt werden. Das QNX Neutrino Kochbuch gibt einige Beispiele. Suchen Sie nach Funktionen wie mmap * in * out * shm * in der Bibliotheksreferenz und bei der Suche nach Beispielen.
Aber studieren und lernen Sie die Systemarchitektur zuerst, es wird schwer sein, sich im Rest der Dokumentation zurechtzufinden und einen Sinn daraus zu ziehen, ohne die Architektur und die damit verbundene Terminologie zu verstehen.
Viel Spaß!
- 1. Wie kann ich auf Hardware-Zeit vom Browser zugreifen
- 2. Wie bekomme ich Prozessspeicher auf qnx
- 3. Wie kann ich beide SPI für Beaglebone schwarz in QNX
- 4. Wie kann ich auf die Werte der Hauptmethode zugreifen, auf die die Methode getConnection zugreifen soll?
- 5. Wie kann ich auf die Kommandozeile in Adobe Air zugreifen?
- 6. Wie kann ich auf die enum in C++ zugreifen
- 7. Wie kann ich auf die Objektvariable in Robot Framework zugreifen?
- 8. Wie kann ich auf die Elemente in einem Objekt zugreifen?
- 9. Wie kann ich auf die Datenbank in einem Service zugreifen?
- 10. Wie kann ich auf die Anfrage in JspTags zugreifen?
- 11. Wie kann ich auf die Objekteigenschaften zugreifen, die Leerzeichen haben
- 12. Ich kann nicht auf die Zielseite zugreifen
- 13. Wie kann ich eine Hardware-Taste in Java
- 14. Wie kann ich auf Originaldaten vom Ethernet zugreifen?
- 15. Wie kann ich auf Iframe-Elternelemente zugreifen?
- 16. Wie kann ich auf neo4j-Ergebniseigenschaften zugreifen?
- 17. Wie kann ich auf Kommandozeilenparameter zugreifen?
- 18. Ich kann nicht auf AudioRecorder zugreifen
- 19. Wie kann ich auf Gitlab zugreifen?
- 20. Wie kann ich auf diese Variable zugreifen?
- 21. Wie kann ich auf Benutzerdateien zugreifen?
- 22. Wie kann ich auf andere Fenstersteuerelemente zugreifen?
- 23. Wie kann ich auf den Startmenüpfad zugreifen?
- 24. Wie kann ich auf OpenSearchServer-Datenbankfelder zugreifen?
- 25. Wie kann ich auf Dictionary-Objekte zugreifen?
- 26. Wie kann ich auf den Pfad zugreifen?
- 27. Wie kann ich auf reaktive Formulargruppenvalidierungen zugreifen?
- 28. Std :: Call_once Lazy Initialisierungsproblem auf QNX
- 29. Wie kann ich mit xampp auf die MySQL-Befehlszeile zugreifen?
- 30. Wie kann ich auf die Daten von Pandas Datenrahmen zugreifen
Wahrscheinlich nützlich: http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.pci_server/topic/server.html – xmojmr