ZHCAE28 May   2024 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2电器中的 C2000™ MCU 器件概述
  6. 3IEC/UL 60730-1/60335-1 标准简介
  7. 4C2000™ 提供的 UL/IEC 60730-1/60335-1 诊断库
    1. 4.1 栈溢出检测
    2. 4.2 看门狗
    3. 4.3 CPU 和 FPU 寄存器
    4. 4.4 程序计数器 (PC)
    5. 4.5 时钟
    6. 4.6 RAM
    7. 4.7 闪存
    8. 4.8 ADC
    9. 4.9 周期时间和存储器用量
  8. 5参考文献

栈溢出检测

ERAD 模块中的增强型总线比较器 (EBC) 单元可以监测内部地址和数据总线,当指定的总线和掩码与指定值匹配时,EBC 会触发 RTOSINT 中断。因此,检测栈溢出的基本方法是配置 EBC 单元,在数据写入地址总线处于栈结束之前的某个范围内时触发中断。图 4-2 阐明了这一概念。该存储器仅保留供栈使用,因此指定地址范围内的数据写入表明栈使用量即将达到分配的大小限值。检测到即将发生的栈溢出会触发可屏蔽中断。程序编入的错误响应和任何必要的软件要求由系统集成商定义。

 栈溢出监测图 4-2 栈溢出监测

API 函数 STL_SP_configSP(const STL_SP_Handle spHandle) 位于示例工程中,源代码位于 f280013x\source\stl_sp.c。需要配置 STL_SP_MARGIN 参数,参考值为 0x50。此参数定义了从栈尾观察到的存储器空间范围。