SEGGER Embedded Studio增加了堆栈溢出预防(STOP)技术
来源:segger.com | 作者:SEGGER | 发布时间: 2023-11-06 | 1087 次浏览 | 分享到:
  
SEGGER



产品动态

SEGGER最新版本Embedded Studio for ARM配备了STOP技术,该技术由SEGGER设计,用于可靠地防止堆栈溢出。启用STOP 后,编译器会在必要时添加对堆栈限制检查例程的调用,然后再调整堆栈指针。

图片


在SEGGER 高度优化并且基于 Clang的编译器上,可以轻松地启动STOP,而且不需要对应用程序代码进行任何更改,这样可以防止所有堆栈溢出;如果已防止堆栈溢出,系统可以进入安全状态并恢复。STOP对规模和速度的影响非常小,它只增加了约2 - 5%的代码大小和执行时间,通常不会对系统的性能产生重大影响。 

SEGGER的创始人Rolf Segger说:“未检测到的堆栈溢出可能是灾难性的,我建议在所有应用中使用STOP。对于任何安全关键的应用,我认为它是必不可少的。据我所知,SEGGER是唯一提供这种技术的公司。无论你是软件工程师、学生还是业余爱好者,我鼓励你下载并试用Embedded Studio,只需要不到15分钟的时间,简单实用;而且用于评估、教育和非商业目的也是免费的。”

堆栈溢出可能导致嵌入式系统中的各种故障,从难以检测、看似随机的计算错误到严重的故障甚至崩溃。STOP工作简单,保护系统中的所有堆栈。它保护进程栈以及用于中断的 "main "栈。它可以与任何RTOS一起使用,只要RTOS在上下文切换时更新堆栈限制变量。

该技术目前可用于Thumb-2架构,如Cortex-M4,Cortex-M7,Cortex-A9和Cortex-A15。在 ARMv7M 架构上,STOP 可通过单个项目选项在嵌入式工作室中使用。

MORE

Embedded Studio

Embedded Studio是SEGGER的多平台IDE(集成开发环境)。它的特点是使用灵活,包含开发人员需要的所有工具和功能,用于专业的嵌入式C和C++编程和开发。它配备了SEGGER高度优化的emRun运行时和emFloat浮点库,以及SEGGER的智能链接器,为资源有限的嵌入式系统专门开发。与基于Clang的高度优化的C/C++ SEGGER编译器相结合,可以生成极小而高效的程序,使每一个字节都发挥作用。Embedded Studio 可在 Arm、Intel 和 Apple Silicon 上的所有平台(Linux、macOS 和 Windows)上使用。通过SEGGER的友好许可,Embedded Studio可以免费用于评估,以及用于教育和非商业目的,在代码大小,功能或使用持续时间方面没有限制。

更多信息请访问:

https://www.segger.com/products/development-tools/embedded-studio/technology/stack-overflow-prevention/