Segger starts to add STOP to Embedded Studio for Arm
The latest release of Segger’s Embedded Studio for Arm is supplied with STOP (stack overflow prevention) designed to reliably prevent stack overflows. With STOP ena-bled, the compiler adds a call to a stack limit-check routine wherever necessary, before adjusting the stack pointer.
The STOP option for the Segger Compiler can be easily switched on, without any change to application code. This way, all stack overflows are prevented. If a stack overflow has been prevented, the system can enter a safe state and recover.
STOP has a surprisingly low impact on size and speed. It adds only about two to five per cent to code size and execution time, which typically does not have a significant impact on the performance of the system.
A stack overflow can cause all kinds of failures in an embedded system, from hard-to-detect, seemingly random miscomputations to severe malfunctions or even crashes.
STOP protects all stacks in the system. It protects the process stack, as well as the main stack used for interrupts. It can be used with any real time operating system (RTOS), provided the RTOS updates the stack-limit variable on a context switch.
The technology is currently available for Thumb-2 architectures such as Cortex-M4, Cortex-M7, Cortex-A9, and Cortex-A15.
On ARMv7M architectures, STOP is ready to use in Embedded Studio with a single project option switch.
The STOP feature is recommended for all, but deemed essential for safety critical applications, said Segger, which believes it is the only company offering such technology today. It can be used by software engineers, students or hobbyists. “It takes less than 15 minutes, is easy and hassle-free,” said Rolf Segger, the company’s founder. It is also cost-free for evaluation, education, and non-commercial purposes.
Embedded Studio is Segger’s multi-platform IDE (integrated development environment). Characterised by its flexibility of use, it includes all the tools and features a developer needs for professional embedded C and C++ programming and development. It comes with Segger’s optimised emRun runtime and emFloat floating-point libraries, as well as Segger’s smart Linker, all of which have been developed from the ground up specifically for resource-constrained embedded systems. In combination with the Clang-based optimising C/C++ Segger compiler, extremely small yet efficient programs can be generated, putting every byte to work.
Embedded Studio is available on all platforms (Linux, macOS, and Windows) on Arm, Intel, and Apple Silicon.