Embedded Studio um STOP-Technologie erweitert

Die neueste Version von Seggers Embedded Studio for ARM enthält die vom Unternhemen entwickelte STOP-Technologie (Stack-Prevention-Overflow-Technologie), ein Feature, welches Stack Overflows zuverlässig verhindern soll. Bei aktiviertem STOP fügt der Compiler bei Bedarf einen Aufruf einer Stack-Limit-Check-Routine hinzu, bevor er den Stack-Pointer anpasst. Durch eine Option der Technik kann STOP einfach aktiviert werden, ohne den Anwendungscode ändern zu müssen. Dadurch können alle Stack Overflows verhindert werden.

Sobald ein Stack Overflow entdeckt wurde, wird eine vom Anwender definierte Callback-Routine ausgeführt, die das System in einen sicheren Zustand bringt. STOP hat überraschend geringe Auswirkungen auf Größe und Geschwindigkeit der generierten Firmware: Die Technologie erhöht die Codegröße und die Ausführungszeit lediglich um etwa 2 bis 5%, was sich in der Regel nicht wesentlich auf die Leistung des Systems auswirkt. Ein Stack Overflow kann in einem eingebetteten System eine Vielzahl von Fehlern verursachen – von schwer zu erkennenden, scheinbar zufälligen Fehlberechnungen bis hin zu schwerwiegenden Fehlfunktionen oder sogar Abstürzen. STOP schützt sowohl den Prozess-Stack als auch den ‚Haupt‘-Stack, der für Interrupts verwendet wird. Es kann mit jedem RTOS verwendet werden, sofern das RTOS die Stack-Limit-Variable bei einem Kontextwechsel aktualisiert. Die Technologie ist derzeit für Thumb-2-Architekturen wie Cortex-M4, CortexM7, Cortex-A9 und Cortex-A15 verfügbar. Für Armv7M-Architekturen kann STOP über einen einfachen Switch in den Projektoptionen aktiviert werden.

SEGGER Microcontroller GmbH & Co.KG

Das könnte Sie auch Interessieren