Hi, ich bin grade dabei mich näher mit Echtzeitprogrammierung zu beschäftigen! Dazu will ich ein bereits vorhandenes Treibermodul in Linux im Realtimecontext ausführen. Kennt jemand gute Dokumentation/Tutorials über Echtzeitprogrammierung unter Linux(Embeddedlinux(Raspbian))? Gruß Markus
Gast
#3433411
Hi, eventuell findest du hier etwas http://www.tldp.org/ Ich hab schon vergeblich Tutorials für NORMALE Kernel Module gesucht... Eventuell solltest du da ansetzen und dich dann auf Realtime hoch arbeiten. LG
Gast
#3433454
Kommt halt auch drauf an, welche Realtime-Implementation. Die populärsten scheinen PREEMPT-RT und Xenomai zu sein. Bei PREEMPT-RT wird der normale Kernel echzeitfähig gemacht, bei Xenomai ist das aber recht streng getrennt. Da braucht man dann auch für die Hardware extra Xenomai-Treiber für Echtzeit.
Hi. Ich bin jetzt dabei beide Ansätze auszuprobieren. Xenomia: Ich halte mich an folgendes Tutorial: http://diy.powet.eu/2012/07/25/raspberry-pi-xenomai/ Leider schlägt bei mir das Patchen fehl. Dazu eine Frage: Muss die rpi-kernelversion und der Version des Patches die gleiche Version haben? Also linux-rpi-*3.10.y* und rpi-linux-*3.2.21*-xenomai-2.6.1 ? Beim patchen bekomme ich folgenden Ausgabe:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
PREEMPT-RT: Wenn ich hier folgendes Tutorial verwende: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=39951 bekomme ich nur einen Fehler beim Patchen: Hunk #1 FAILED at 53. 1 out of 1 hunk FAILED -- saving rejects to file drivers/misc/Makefile.rej Inhalt von Makefile.rej:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Letzte Zeile mit dem "+" ich hinzugefügt, der Fehler kommt aber wieder.:-( Danke für jede Hilfe
Hi, also ich habe jetzt den Xenomai patch, auf Linux(RaspberryPi) aufgesetzt. Jetzt möchte ich mein vorhandenes Kernelmodule(Spi Gpio Treiber) so modifizieren, dass die GPIO Signale in (annähernd)Echtzeit getriggert werden. Gibt es hierzu gute Dokumentation, wie dies zu handhaben ist? Ich bin auf der Xenomaiseite leider nicht fündig geworden.. Danke schonmal! Gruß Markus
Gast
#3444539
Hast du vor, das die GPIO Signale immer zur selben Zeit getriggert werden sollen ?
Die GPIO Signale sollen zwischen jedem (SPI)Byte übertragen werden(die Hardware auf der SPI-Slave Seite erwartet es so). Ich habe es jetzt alles, weil andere Projekte dies fordern, mit dem RT-Patch realisiert. Nächstes Problem: Bei dem Linux mit dem RT-Patch (http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=39951) antwortet bei einer Kernelconfig von FULLY_PREEMPTIBLE_RT die SPI-Hardware nicht mehr! Hat jemand eine Idee woran es liegen könnte? Gruß Markus
Gast
#5976666
Hallo, ich arbeite seit kurzen mit einem RT-Linux bzw. beschäftige mich damit und jetzt wollte ich mal wissen, ob die Standardlinuxtreiber echtzeitfähig sind oder ob man diese neu schreiben bzw umschreiben muss. Vielen Dank für eure Hilfe!
Gast
#5976698
jowi97 schrieb: > Hallo, > > ich arbeite seit kurzen mit einem RT-Linux bzw. beschäftige mich damit > und jetzt wollte ich mal wissen, ob die Standardlinuxtreiber > echtzeitfähig sind oder ob man diese neu schreiben bzw umschreiben muss. > > Vielen Dank für eure Hilfe! Der Thread ist zwar uralt, aber egal. So allgemein kann man die Frage nicht beantworten. Ohne Spezifikation was man genau mit "echtzeitfähig" meint, um welche Größenordnungen es geht, und welche Treiber man genau meint. Im Spiele-Kontext hat man vergleichsweise "ewig" Zeit bis zum nächsten Frame, die Synchronmaschine will man aber vermutlich eher nicht am PC regeln. Manche Dinge sind inhärent nicht wirklich echtzeitfähig (Ethernet über die üblichen Kupfer-Verbindungen - wenn der Switch die Leitung drosselt kann man im Quadrat hüpfen, nutzt alles nichts. Bei USB hängt viel vom Hostcontroller, den Endgeräten, der Mondphase und anderen Dingen ab. usw.). Mit PREEMPT-RT sollte z.B. Kommunikation über UDP im 1kHz Raster ohne allzu viel Latenz bei passender Hardware möglich sein.
Gast
#5976717
xvzf schrieb: > Ich hab schon vergeblich Tutorials für NORMALE Kernel Module gesucht... > Eventuell solltest du da ansetzen und dich dann auf Realtime hoch > arbeiten. Linux Kernel Module Programming Guide. Das Werk zum Thema seit der Linux-Steinzeit und damit habe ich schon Programmier-Anfängern zu Hello-World Modulen in unter 30 Minuten verholfen. Wie kann man das übersehen? Deutsche Youtube Tutorials gesucht?
Gast
#5976718
Omg, tut mir leid, wegen der gleich zweifachen Leichenschändung.
Gast
#5977276
Vielen Dank! Das hat auf jeden Fall ein wenig weitergeholfen.
Gast
#5977536
Eigentlich ist das hier besser https://www.iitg.ac.in/asahu/cs421/books/LDD3e.pdf Linux Device Driver 3rd Edition Ist von einem Kernelentwickler mitgeschrieben worden. Und die Frage zu Standardtreiber echtzeitfähig hat schon rµ beantwortet. Das ist sehr komplex
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.