SES增加堆栈溢出预防功能

浏览:347来源:管理员时间:2023-06-14

SEGGER最新发布的Embedded Studio for ARM v7.30版本增加了STOPStack Overflow Prevention)技术,用于防止堆栈溢出。启用STOP功能后,在修改堆栈指针之前,编译器会在相应的位置添加堆栈上限检查程序的调用。


高度优化的SEGGER编译器可以很容易地打开STOP选项,而无需对应用程序代码进行任何更改。这样可以防止所有堆栈溢出,系统可以进入安全状态并进行恢复。

STOP特性对代码的大小和速度的影响非常小:它只增加了约2 - 5%的代码占用和执行时间,这通常不会对系统的性能产生重大影响。

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

堆栈溢出可能导致嵌入式系统中的各种故障,从难以检测的、看似随机的计算错误到严重的故障甚至崩溃。 STOP使用简单,保护系统中的所有堆栈。

它可以保护进程堆栈,以及用于中断的堆栈。STOP功能可以与RTOS一起使用,在上下文切换时更新堆栈限制变量。

该技术目前可用于Thumb-2架构,如Cortex-M4Cortex-M7Cortex-M9Cortex-M15。在ARMv7M架构上,STOP通过Embedded Studio中的一个工程选项开关使能。

有关STOP技术的更多信息以及如何在Embedded Studio模拟器中使用该技术的演示,参见

Stack Overflow Prevention (STOP) technology on segger.com: https://www.segger.com/products/development-tools/embedded-studio/technology/stack-overflow-prevention/

京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司