Welches kleine und einfach zu nutzende RTOS nutzt ihr für den STM32F4? Ich suche gerade nach einem möglichst einfachen und übersichtlichen RTOS (da noch keine Erfahrung mit irgend einem RTOS vorliegt). Gibt es bei den gängigen RTOS Einschränkungen in Bezug auf Interrupt-Fähigkeit (ich werde wohl ein paar Hardware-Interrupts benötigen welche nicht durch das RTOS gestört werden sollten) oder Einschränkungen der Hardware-Funktionen? Sehe ich das richtig, dass jedes RTOS auf die Zielhardware angepasst werden muss? Oder gibt es ein RTOS, welches z.B. für alle Cortex M4 ohne Änderungen genutzt werden kann?
Ehrliche Meinung ? RTX von Keil .. da klickst du drei Optionen an, importierst die Header und es funktioniert (sogar mit FPU)! oder noch einfacher, du öffnest das RTX Blinky vom STM32 F4 Project. ... das RTX geht sogar glaub ich für die Lite Edition. Ansonsten FreeRTOS, findest sehr viel support im Forum und Portierungen gibts auch schon. Da kann man eigentlich nichts falsch machen.
Privat oder kommerziell? embOS von Segger, http://segger.com/embos.html. Artjomka schrieb: > Sehe ich das richtig, dass jedes RTOS auf die Zielhardware angepasst > werden muss? Oder gibt es ein RTOS, welches z.B. für alle Cortex M4 ohne > Änderungen genutzt werden kann? In der Regel ist das OS vom Hersteller schon auf deine CPU und Compiler portiert. Die Frage ist dann eher, ob es passende Startprojekte für dein Device bzw. Evalboard gibt, mit denen du out of the box arbeiten kannst. Bei embOS gibt es es diverse Portierungen für Cortex M, z.B. embOS Cortex M IAR oder embOS Cortex M GNU. Darin enthalten sind dann viele Startprojekte für diverse Evalboards, also z.B. STM32F4 Discovery oder STM32F4G-EVAL. Ansonsten unterstützt embOS auch CMSIS, sprich es ist ein generisches CMSIS Projekt enthalten, welches auf jedem Cortex M0/M1, M3/M4 und M4F läuft. Eine Trial Version kannst du einfach unter http://segger.com/downloads.html?pid=27 herunter laden. Einzige Einschränlung der Trial Version: Es läuft nur 12 Stunden nach Reset, wenn du mehr als 3 Tasks erzeugst. Wir setzen embOS seit Jahren in diversen Produkten ein. Funktioniert einfach und macht was es soll.
>Eine Trial Version kannst du einfach unter >http://segger.com/downloads.html?pid=27 herunter laden. Einzige >Einschränlung der Trial Version: Es läuft nur 12 Stunden nach Reset, >wenn du mehr als 3 Tasks erzeugst. Guter Witz, da nimmt man besser ein wirklich freies System wie FreeRTOS oder CoOS...
Hallo schau dir doch mal ChibiOS unter http://www.chibios.org an. Die Doku von dem System ist gut an mann kann als Anfänger auch dahinter kommen wie das OS eigendlich funktioniert. Das System ist GPLv3 also frei, es ist schnell und für den F4 gibt es schon eine gute HAL mit API so wie für das F4Discovery ein paar nette How To's. mfg CalM
Ja ChibiOS war auch mein erstes RTOS überhaupt. Bin mit dem F4 Discovery prima zurecht gekommen. Schaus Dir an.
Vielen Dank für eure Antworten, ChibiOS hört sich ja schonmal ganz gut an. Ich war auf der Suche nach einem freien OS. Das man für das OS richtige Treiber einbindet hätte ich nicht gedacht. Das abstrahiert die Hardware aber ganz schön extrem (ein Informatiker wird sich darüber sicherlich freuen, wenn man aus der AVR und Co Welt kommt wirkt das etwas befremdlich :-/). Werde mir das ChibiOS mal anschauen, wenn ihr das für Anfänger geeignet haltet :)
A. B. schrieb: > ehrliche frage: wie bezahlst du das keil rtx? Ohne mich durch die Lizenzen gewühlt zu haben: Auf dem ST-Seminar sagte der Keil-Mensch, dass RTX frei und kostenlos nutzbar wäre. Chris D.
>Auf dem ST-Seminar sagte der Keil-Mensch, dass RTX frei und kostenlos >nutzbar wäre. Heisst das, ich darf den RTX Sourcecode nehmen und z.B. in ein CooCox CoIDE Projekt integrieren? Da wäre die 32kB Begrenzung von Keil weg!
Artjomka schrieb: > Ich war auf der Suche nach einem freien OS. CoOS Chris D. schrieb: > Auf dem ST-Seminar sagte der Keil-Mensch, dass RTX frei und kostenlos > nutzbar wäre. Joa aber das ändert nix an der 32kB Beschränkung vom Compiler. Und kaufen will das glaub privat keiner. Komerzielle hier im Forum sind wohl kaum zu finden. Peter schrieb: > Heisst das, ich darf den RTX Sourcecode nehmen und z.B. in ein CooCox > CoIDE Projekt integrieren? Da wäre die 32kB Begrenzung von Keil weg! Das wäre ja völliger Blödsinn. Warum nimmst nicht einfach CoOS? Hat denn schonmal jemand ein Lineup der OS gemacht? Nen Vergleich?
Nimm doch FreeRTOS und gut ist! Riesen Community! Ich hab zu Keil gesagt, wenn ihr mir die MDK-ARM Pro schenkt, dann dürft ihr Werbung machen, das ich mit eurer IDE mal eine Firmware geschrieben habe :D .... hahahaha .. ne über die Firma, wir benutzen das da auch. Aber ich kann nur wärmstens FreeRTOS empfehlen!
Peter schrieb: >>Eine Trial Version kannst du einfach unter >>http://segger.com/downloads.html?pid=27 herunter laden. Einzige >>Einschränlung der Trial Version: Es läuft nur 12 Stunden nach Reset, >>wenn du mehr als 3 Tasks erzeugst. > > Guter Witz, da nimmt man besser ein wirklich freies System wie FreeRTOS > oder CoOS... Nein, kein Witz. Du musst lernen zu unterscheiden zwischen kommerziellen und privaten Projekten. Bei einem kommerziellen Projekt werden die wenigsten z.B. FreeRTOS einsetzen wollen. Privat ist das natürlich etwas ganz anderes. Deswegen hatte ich ja auch gefragt ob privat oder nicht. Hat ja auch keiner behauptet das embOS frei ist und die Trial Version dient natürlich auch nur zum Evaluieren und nicht für den privaten Gebrauch. > Gibt es bei den gängigen RTOS Einschränkungen in Bezug auf > Interrupt-Fähigkeit (ich werde wohl ein paar Hardware-Interrupts > benötigen welche nicht durch das RTOS gestört werden sollten) oder > Einschränkungen der Hardware-Funktionen? Das hängt davon ab, ob ein OS die Interrupts global sperrt oder mit Interrupt Prioritäten arbeitet. Bei embOS z.B. ist es so, das Interrupts nie global gesperrt werden, sondern z.B. beim Cortex M das BASEPRI Register auf den Wert 128 gesetzt wird. Damit gibt es Interrupts mit einer Priorität 0..128, die nie vom OS gesperrt werden und daher keine zusätzliche Latenz bekommen.
> Bei einem kommerziellen Projekt werden die > wenigsten z.B. FreeRTOS einsetzen wollen. Privat ist das natürlich etwas > ganz anderes. Das würd ich jetzt nicht sagen. Viele Firmen benutzen die kommerzielle Variante von FreeRTOS -> OpenRTOS (das gleiche, nur mit Support) und falls SIL benötigt, kann man das auf SafeRTOS upgraden.
Sven S. schrieb: >> Bei einem kommerziellen Projekt werden die >> wenigsten z.B. FreeRTOS einsetzen wollen. Privat ist das natürlich etwas >> ganz anderes. > > Das würd ich jetzt nicht sagen. Viele Firmen benutzen die kommerzielle > Variante von FreeRTOS -> OpenRTOS (das gleiche, nur mit Support) und > falls SIL benötigt, kann man das auf SafeRTOS upgraden. Ja, ok klar, aber ich habe ja auch von FreeRTOS gesprochen und nicht von OpenRTOS oder SafeRTOS, denn für die zahlst du auch wieder Geld. Ist aber auch bei FreeRTOS die Ausnahmen, das eine Variante mit Support gibt. Die Entscheidung für ein RTOS in einem kommerziellen Projekt hängt ja aber von noch mehr Faktoren ab (Lizenz, Kosten, Support, Training, weitere Middleware, usw...).
>RTX von Keil .. da klickst du drei Optionen an, >importierst die Header und es funktioniert (sogar mit FPU)! Bist Du Dir da sicher mit der FPU? Ich habe mich vor einigen Wochen durch den RTX-Code gewühlt (mal nebenbei bemerkt, viel zu viel ASM für meinen Geschmack) habe aber vergeblich nach dem Code-Abschnitt gesucht, der die FPU-Register beim Task-Wechsel sichert! ==> Solange mir keiner zeigen kann ob bzw. wo das geschieht, ist wohl nicht viel mit FPU-Unterstützung. Natürlich geht es theoretisch gut, solange FPU-Operationen nur in einem Task verwendet werden, aber wer kann schon sicher sein, dass der Compiler nicht irgendwo z.B. in einem printf() noch eine FPU-Berechnung reinschiebt?
Prinzipiell gibt es da zwei Möglichkeiten: 1. Man sichert immer alle FPU Register beim Task Wechsel auf den Task Stack. Dies hat den Nachteil, das dies auch für Tasks gemacht werden würde, die gar keine FPU benutzen. 2. Man hat wie bei embOS die Möglichkeit über einen einfachen API Aufruf den Task Kontext um genau diese FPU Register zu erweitern. Damit kann man selber bestimmen, welche Tasks die FPU Register rettet und welche nicht. Ich mein aber schon, das auch RTX FPU unterstützt, ich kann jetzt nur nicht sagen, welche von beiden Varianten.
Meine private Wahl ist FreeRTOS, weil - gibt es mittlerweile für Cortex-M4 mit FPU-Unterstützung. - kann das "Lazy-Save" der FPU voll ausnutzen - speichert den FPU-Context nur, wenn er auch verwendet wird - recht übeschaubarer Umfang, so dass man sich auch mal durch die Sourcen wühlen kann - große Community - liegt im Sourcecode vor (weiß nicht, ob das bei den ganzen kommerziellen Dingern auch so ist?) - unterstützt so viele Architekturen, dass ich wahrscheinlich nie was anderes brauche - Abstarktionsgrad ist für mich persönlich angenehm (empfand ich bei ChibiOS als befremdlich) sollte für privat reichen ;-) Falls es mal kommerzieöö werden sollte, gibt es Upgrademöglichkeiten.
Karl schrieb: > - liegt im Sourcecode vor (weiß nicht, ob das bei den ganzen > kommerziellen Dingern auch so ist?) Klar ist das bei kommerziellen auch so, aber dafür zahlt man dann natürlich auch mehr als bei der Obj Variante.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.