Letztes Mal habe ich das Verfahren zum Erstellen eines Kernels für die Einführung von Xenomai erläutert. Dieses Mal werden wir Xenomai selbst erstellen, damit wir die Funktionen von Xenomai auf dem Raspberry Pi nutzen können. Wenn Xenomai in einen Mikrocomputer eingeführt werden kann, sind Vorgänge möglich, die Echtzeitleistung erfordern, z. B. der Roboterbetrieb.
Es ist eine Fortsetzung des letzten Males. Wenn Sie es noch nicht gesehen haben, empfehle ich, es zuerst zu lesen.
https://qiita.com/TordanHatiman/items/697aaa520914e159de2b
Die Spezifikationen usw. sind die gleichen wie in Teil 1, daher werden sie weggelassen.
--Arbeitsinhalt
Arbeiten Sie in der Cross-Compile-Umgebung, in der Sie den Kernel für Xenomai wie zuvor erstellt haben. Xenomai selbst befindet sich ebenfalls im selben Arbeitsverzeichnis. (Das vorherige Arbeitsverzeichnis war kernel_cnst)
Lass uns jetzt arbeiten. Erstellen Sie zunächst die Xenomai-Bibliotheken. Da es sich um eine Cross-Compile-Umgebung handelt, übergeben Sie den Pfad an den Cross-Compiler. (Genau wie beim letzten Mal)
linux_user@TN-201709Fxxxx:~$ cd ~/kernel_cnst
linux_user@TN-201709Fxxxx:~$ cd ./Xenomai3.x/
linux_user@TN-201709Fxxxx:~$ export CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
Erstellen Sie als Nächstes Xenomai, erstellen Sie jedoch ein Verzeichnis zum Speichern der erstellten Dateien, um die erstellten Dateien in RPi zu verschieben.
linux_user@TN-201709Fxxxx:~$ mkdir ~/kernel_cnst/target
linux_user@TN-201709Fxxxx:~$ ./scripts/bootstrap
linux_user@TN-201709Fxxxx:~$ ./configure CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=neon -ffast-math" --enable-smp --with-core=cobalt
linux_user@TN-201709Fxxxx:~$ make -j4 install DESTDIR=~/kernel_cnst/target/
Wenn der Build erfolgreich ist, ist die Kompilierung abgeschlossen. Komprimieren Sie die Dateien wie zuvor und bringen Sie sie zu RPi. (SSH kann auch übertragen werden, wird jedoch aus Sicherheitsgründen nicht empfohlen.)
linux_user@TN-201709Fxxxx:~$ cd ~/kernel_cnst
linux_user@TN-201709Fxxxx:~$ tar -zcvf xenomai_tools.tgz ./target
Bringen Sie es an einen geeigneten Ort und tauen Sie es auf -------- Von hier aus mit RPi arbeiten --------
linux_user@TN-201709Fxxxx:~$ cd ~/workspace(Es ist ein Ort zum Entpacken, also kann es überall sein)
linux_user@TN-201709Fxxxx:~$ tar -zxvf ./target.tgz
Installieren Sie nach dem Entpacken die Datei, die Sie in RPi gebracht haben
linux_user@TN-201709Fxxxx:~$ sudo cp -rd ./target/dev/* /dev/
linux_user@TN-201709Fxxxx:~$ sudo cp -rd ./target/usr/* /usr/
Stellen Sie auch zu diesem Zeitpunkt sicher, dass Sie vor der Installation eine Sicherungskopie von / dev / und / usr / erstellen </ font> Damit ist die Einführung von Xenomai selbst abgeschlossen.
Führen Sie die folgenden Schritte aus, wenn die Xenomai-Installationsarbeiten fehlerfrei abgeschlossen wurden
linux_user@TN-201709Fxxxx:~$ sudo /usr/xenomai/bin/latency
Wenn es normal funktioniert, wird die Latenz wie folgt gemessen.
== Sampling period: 1000 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT| 00:00:01 (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD| 12.239| 12.693| 19.427| 0| 0| 12.239| 19.427
RTD| 12.291| 12.720| 16.926| 0| 0| 12.239| 19.427
RTD| 12.290| 12.701| 17.447| 0| 0| 12.239| 19.427
RTD| 12.238| 12.709| 14.634| 0| 0| 12.238| 19.427
Aussteller: https://lemariva.com/blog/2018/07/raspberry-pi-xenomai-patching-tutorial-for-kernel-4-14-y (Ich habe dieses Mal vergessen, dieses Protokoll zu erstellen, also habe ich mich auf das oben Gesagte bezogen.)
Auf diese Weise verfügt Xenomai über eine Echtzeitleistung, die sogar Anwendungsvorgänge in Einheiten von 1 ms verarbeiten kann. Der Code für die Überprüfung des Anwendungsbetriebs, der Xenomai-Funktionen in der Sprache C verwendet, wird ebenfalls im Internet veröffentlicht. Sie können dies daher überprüfen.
Ich habe tatsächlich die Latenz von Xenomai gemessen, aber sie läuft bei Programmen, die mit 1-ms-Zyklen ausgeführt werden, und die meisten reagieren in 1 ms, sodass Linux-basierte Mikrocomputer in Echtzeit ausgeführt werden. Ich denke, es ist der beste Weg, dies zu erreichen. (Messdaten können aufgrund verschiedener Umstände nicht gebucht werden .....)
Da es fast keine japanischen Materialien für die Einführung von Xenomai gibt, ist es ziemlich schwierig, wenn Sie nicht daran gewöhnt sind, Materialien aus Übersee zu lesen und zu verstehen. Wenn Sie nicht weiterkommen und versuchen, dasselbe zu tun, können Sie gerne fragen. (Ich werde so viel wie möglich antworten)
Ich werde in einem anderen Artikel über den Patch schreiben. Es tut mir leid für diejenigen, die es schriftlich sehen wollen, aber bitte warten Sie bis dahin ...
Wir sehen uns!
Recommended Posts