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

Kompaktheit stand ganz oben auf der Prioritätenliste des Cortex-M3. Trotzdem verfügt er über leistungsfähige Analyse-Tools, mit denen Qualität und Performance von Anwendungen verbessert werden können. Aber auch wichtige Sicherheitsfunktionen zum Schutz vor Software-Klau sind implementiert.

Kompaktheit stand ganz oben auf der Prioritätenliste des Cortex-M3. Trotzdem verfügt er über leistungsfähige Analyse-Tools, mit denen Qualität und Performance von Anwendungen verbessert werden können. Aber auch wichtige Sicherheitsfunktionen zum Schutz vor Software-Klau sind implementiert.

Funktionssicherheit und Ausfallsicherheit sind für immer mehr Applikationen Key-Features, da immer mehr sicherheitskritische Funktionen per Software des Mikrocontrollers gelöst werden und bei Versagen die Gefahr von materiellen Schäden besteht oder sogar Menschen in Gefahr kommen können. Hierbei unterstützt der STM32 sowohl mit eingebauten Sicherheitsfunktionen als auch mit Analysemöglichkeiten des „Serial Wire Viewers“, wodurch entwickelte Software genauer untersucht werden kann. Aber auch gegen Software-Piraterie hat der STM32 Funktionen eingebaut, die helfen, teuer entwickelte Intellectual Property zu schützen.

Stabilität von Spannung und Takt

Ausreichend Spannung zur Versorgung des Mikrocontrollers und ein zuverlässiger Takt sind existenzielle Voraussetzung für ein funktionierendes System. Fehlt eines von beiden, ist die Funktionalität nicht mehr gegeben. Fällt die Spannung aus, z.B. bei Stromausfall oder wenn die Batterie zu schwach wird, kann dies vom Mikrocontroller nicht selbst ausgeglichen werden. Das einzige Gegenmittel besteht darin, dies möglichst früh zu erkennen und geeignete Maßnahmen zu ergreifen, um das System in einen sicheren Zustand zu bringen – oder einen Alarm auszulösen, der dafür sorgt, dass die bald fehlende Spannung ersetzt wird. Für diese Früherkennung ist im STM32 die „Power Voltage Detect Unit“ (PVD) implementiert. Sie hat ein Controlregister, mit dem die überwachte Spannungsschwelle in Schritten von 100 mV von 2,2 bis 2,9 V gesetzt werden kann. Unterschreitet die Versorgungsspannung diese Schwelle, kann ein Interrupt ausgelöst werden. Durch die Möglichkeit, die genaue Höhe dieser Schwelle zu definieren, kann auf die Eigenarten der Stromversorgung eingegangen werden, damit genügend Zeit bleibt, um mit der restlichen Energie das System in den sicheren Zustand zu bringen.

Unterschreitet die Spannung dann den sicheren Spannungsbereich von 2 V bis 3,6 V, sorgt die Reset-Logik dafür, dass der Controller in den Reset-Zustand gebracht wird, damit auch hier keine Unsicherheit über einen evtl. undefinierten Zustand besteht.

Fällt der externe Takt aus, kann der Controller sich selbst helfen. Hierfür hat der STM32 einen internen Oszillator (HSI), der auf 8 MHz ± 1 % getrimmt ist. Er wird nach Reset oder für das schnelle Aufwecken aus Power-Save-Modi genutzt. Aber auch nach einem Ausfall des externen Oszillators (HSE) wird er sofort als Taktquelle genutzt. Dies geschieht automatisch, wenn das „Clock Security Enable“-Bit im RCC-Register gesetzt ist. In diesem Fall wird auch ein nicht-maskierbarer Interrupt ausgelöst, der die Software über das Ereignis informiert. Da eine Reaktion der Software auf diese eventuelle Frequenzänderung für kritische Anwendungen wie z.B. eine Motorsteuerung zu langsam wäre, existiert auch hier Hardware im STM32-Controller, die diese Ereignisse abfängt. Die PWM-Ausgänge des „Advanced Timer1“ werden gestoppt und in einen sicheren Zustand gebracht, um dafür zu sorgen, dass diese Ausgänge nicht unkontrolliert vom STM32 laufen.

Die Instrumentierung im Auslieferzustand hat auch den Vorteil, dass das System auch im Feld analysiert werden kann – es muss nur das geeignete Debug-Tool angeschlossen werden. Eine solche Analysemöglichkeit bietet die „Semihosting“-Funktion des Serial Wire Viewers, für die der STM32 sogar mehrere Kanäle bietet. Bild 4 zeigt eine solche Aufzeichnung.

Derivat-Vielfalt des Cortex-M3 steigt

Der Cortex-M3 stößt im Markt auf große Akzeptanz. Immer mehr Projekte werden zurzeit auf diesen neuen Controller umgestellt, und die ersten Systeme mit dem neuen Core sind nun schon in der Serienreife. Die Derivat-Vielfalt nimmt zu, und es werden auch immer mehr neue Peripheriegeräte unterstützt, womit die Controller für neue Applikationen einsetzbar werden. Damit steigen auch die Anforderungen an die Entwicklungs-Tools und die Software-Qualität. Beide erfordern bessere und komfortablere Analysemöglichkeiten. Hersteller professioneller Tools, wie z.B Hitex, beobachten den Markt und die Anforderungen, um die vielfältigen Möglichkeiten, die die ITM und der Serial Wire Viewer bieten, so umzusetzen, dass sie die Anforderungen für die kritischen Entwicklungsschritte lösen helfen. Man kann auf die nächste Zeit gespannt sein. jk