2017-10-12 3 views
2

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?

+1

Wahrscheinlich nützlich: http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.pci_server/topic/server.html – xmojmr

Antwort

5

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 frameworkembedded 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.

2

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ß!

Verwandte Themen