Ich verwende einen ATSAM4LC2A ARM- Mikrocontroller, der 3xUSART , GPIOs und DMA antreibt . Timer mit der Verwendung von Interrupts und der gesamten verbleibenden Logik meiner Anwendung. Das Projekt ist funktionsfähig, aber noch ohne RTOS. Dies ist mein erster Versuch und ich möchte meine Code-Logik mit Hilfe von FreeRTOS portieren, aber ich habe Angst davor, weil die Werbesicherheit für mich neu ist.
Gibt es einen Software-Checker, der meinen Code als Thread-sicher bewertet? Oder gibt es eine Reihe von schriftlichen Regeln, die ich als Checkliste für jede einzelne Funktion verwenden kann, die ich verwende?
Die einzigen Regeln die mir einfallen sind:
Ist es auch besser, für meine eingebettete Anwendung zu prüfen, ob sie werbesicher oder wiedereintrittsfähig ist?
Ihre beste Wette hier ist, dem Idom "bewege dich schnell und zerstöre Dinge" zu folgen. Wenn Ihr Projekt nicht ein Kernreaktorkern ist, schlage ich vor, dass Sie versuchen zu sehen, was funktioniert und was nicht. Wenn Sie Mentoren in der Nähe haben, bitten Sie sie um Hilfe, wenn Sie nicht weiterkommen und es nicht herausfinden können.
Im Allgemeinen bietet ein RTOS Möglichkeiten zum Teilen von Daten zwischen Tasks unter Verwendung von Postfächern und Sperren. Die Sache ist, dass in einem flachen Speichermodell ohne MMU bestimmte Bibliotheksfunktionen wiedereintrittsfähige Versionen haben, die verwendet werden sollten. Beispielsweise verwendet strtok Speicher, um die aktuelle Position in der Zeichenfolge zu speichern. Wenn zwei Threads strtok verwenden, kann es zwischen aufeinanderfolgenden Aufrufen zu Verwirrung kommen. In diesem Fall sollte strtok_r verwendet werden.
Dieses Dokument zur Sicherheitsanalyse von C/C++-Threads ist eine gute Lektüre.
Tony Stewart EE75
krambo
krambo
Tedi