Cortex-M3 im Vergleich zum ARM7 – Safety, Security und Programmanalyse

3. Februar 2009, 9:38 Uhr | Dr. Kurt Böhringer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Software-Sicherheitsfunktionen

Ähnlich wie der ARM7 hat auch der Cortex-M3 verschiedene Ausführungsmodi mit verschiedenen Privilegien. Beim Cortex-M3 wurde besonders auf Einfachheit Wert gelegt, ohne den Schutz von Systemprogrammteilen vor Anwenderprogrammteilen zu verlieren.

Der Cortex-M3 hat zwei Ausführungsmodi, den „Handler Mode“ und den „Thread Mode“. Der Handler-Modus wird nach Reset und nach Exceptions aktiviert. Er läuft im privilegierten Modus, der alle Befehle erlaubt. Ansonsten läuft der Thread-Modus. Wenn nach Reset keine andere Vorkehrung getroffen wird, läuft der Thread-Modus auch im privilegierten Modus und beide nutzen den gleichen Stack. Dies ist die einfachste Betriebsart, die allerdings auch keinen zusätzlichen Schutz bietet.

Im Handler-Modus nach Reset kann die CPU aber auch so konfiguriert werden, dass der Thread-Modus einen eigenen Stack besitzt. Hierzu wird das Schatten-Stackregister genutzt, das beim Umschalten zwischen den Modi gewechselt wird. Mit eigenem Stack kann der Thread-Modus dann in den nicht-privilegierten Modus geschaltet werden. Dieser Modus hat nicht das Recht, die privilegierten Befehle zu nutzen, die auf die xPSRRegister und deren Alias zugreifen. Der Handler-Modus kann jederzeit in den Thread-Modus umschalten, umgekehrt geht das nicht, es sei denn, Exceptions werden genutzt. Üblicherweise nutzen dies Echtzeit-Betriebssysteme, die mit diesen Privilegien verhindern, dass Anwendungen das ganze System stören können.

Watchdogs und weitere Sicherheitsfunktionen der Peripherie

Zusätzlich zu diesem Privilegienschutz gibt es noch Hardware-Einrichtungen, die helfen, fehlgelaufene Applikationen zu erkennen oder vor deren Auswirkungen zu schützen. Die ersten beiden sind zwei Watchdogs, ein „Windowed Watchdog“ und der „Independent Watchdog“, die beide parallel genutzt werden können. Der Windowed Watchdog ist an das interne Taktsystem angehängt (PCLK1) und hat die Besonderheit, dass er nicht nur innerhalb einer maximalen Zeit bedient werden muss, sondern in einem definierten Fenster, bestehend aus minimaler und maximaler Refreshzeit. Wird der Watchdog zu früh oder zu spät bedient, kann ein Watchdog-Reset ausgelöst werden. Das Fenster kann von 910 μs bis 58,25 ms reichen.

Der Independent Watchdog wird nicht vom System-, sondern vom internen 32-kHz-Takt (LSI) bedient. Er ist im Bereich „VDD Backup Master Voltage“ untergebracht, der auch im Stop- und im Standby-Modus versorgt wird. Wird er nicht bedient, bis er auf 0 gezählt hat, wird ein Watchdog-Reset ausgelöst. Die maximale Refreshzeit kann bis zu 26 Sekunden programmiert werden.


  1. Cortex-M3 im Vergleich zum ARM7 – Safety, Security und Programmanalyse
  2. Literatur
  3. Cortex-M3 im Vergleich zum ARM7 – Safety, Security und Programmanalyse
  4. Software-Sicherheitsfunktionen

Jetzt kostenfreie Newsletter bestellen!