Ähnlich wie ARM, aber ganz anders als x86 lässt sich die RISC-V-Architektur in weiten Bereichen skalieren. Neben Varianten, die eine ausgewachsene Memory Management Unit (MMU) mitbringen und sich demzufolge für Linux eignen, lassen sich auch simpelste Mikrocontroller herstellen, die man bare-metal – also ohne Zuhilfenahme irgendeiner Systemsoftware – programmieren oder mit dem Echtzeitbetriebsystem FreeRTOS bestücken kann.
Der FreeRTOS-Kernel bietet binäre Semaphore, Zählsemaphore und Mutexe sowohl für den gegenseitigen Ausschluss als auch für die Synchronisierung . Binäre Semaphore können nur zwei Werte haben. Sie sind eine gute Wahl für die Implementierung der Synchronisierung (entweder zwischen Aufgaben oder zwischen Aufgaben und einem Interrupt).
Echtzeit-Linux vs. RTOS: Wichtige Unterschiede
Linux hingegen passt mit PREEMPT_RT ein Allzweck-Betriebssystem an, um Echtzeitanforderungen durch Verbesserung der Kernel-Präemption zu erfüllen . RTOS ist darauf ausgelegt, deterministische Reaktionszeiten bereitzustellen und so sicherzustellen, dass Aufgaben innerhalb festgelegter Zeitgrenzen ausgeführt werden.
Ich würde Ihnen empfehlen, FreeRTOS zu lernen und zu verwenden, wenn Sie gerade erst angefangen haben, das Konzept von RTOS zu lernen . Wenn Sie jedoch die Aufgabe übernehmen, eine stromsparende Lösung oder eingebettete Software für einen Controller mit wenig Speicher zu entwickeln, oder wenn Sie einfach etwas anderes als FreeRTOS ausprobieren möchten, sollten Sie sich dem Zephyr-Projekt zuwenden.