ZHCU887D September 2020 – January 2022 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
安全应用中的栈溢出可能会由于数据损坏和/或返回地址丢失而导致灾难性的软件崩溃。因此,检测即将发生的栈溢出非常重要。ERAD 模块中的增强型总线比较器 (EBC) 单元可以监测内部地址和数据总线,并在指定的总线和掩码与指定值匹配时触发 RTOSINT 中断。因此,检测栈溢出的基本方法是配置 EBC 单元,以在数据写入地址总线处于堆栈结束之前的某个范围内时触发中断。图 6-2 中展示了这一点。该存储器仅为堆栈使用而保留,因此指定地址范围内的数据写入表明堆栈使用量即将达到为其分配的大小限值。检测到即将发生的栈溢出会触发可屏蔽中断。程序编入的错误响应和任何必要的软件要求由系统集成商定义。