SH79F9271程式超范围溢出( OVL )复位
内建程式超范围溢出检测电路,当检测到程式 计数器的值超出 ROM 最大值或 当 CPU 取址后译码发现操作码为 A5H 时, CPU 会认为程序已跑飞,会自动
产生 CPU 复位信号,同时将 WDOF 标志位置 1 。
注意:
若希望程序跑飞后能产生
OVL 溢出复位 建议将程序中所有未用到的 ROM 地址全部
用 A5H 填充 以进一步提高 CPU 的抗干扰能力。
附:
在程序中用 A5H 填充未用到 ROM 地址的方法:
首先定义宏:
Fill_A5H
MACRO N
REPT N
DB A5H
ENDM
然
后在没有用到的 ROM 空间调用宏,比如 1000H 到 11FFH 没有用到,可以用如下
方法填充:
CSEG AT 1000H
Fill_A5H 512
看看,了解了解 学习一下 OVL 溢出复位是做什么的 当程序计数器的值超出了ROM可用范围,表示程序指令可能已经越界运行 复位之后能够知道是因为什么原因导致的复位吗? OVL 溢出复位有利于保护MCU 自动触发CPU复位,防止程序继续异常运行。 这个溢出检测机制很关键,能有效防止程序失控。填充未使用的ROM地址是提高系统稳定性的好方法。
检查代码中数组越界、递归深度及运算溢出,合理分配内存,优化算法,启用编译器溢出检测,配置看门狗复位阈值。 SH79F9271 的 OVL 复位是因程序执行超出规定存储范围触发的保护机制。可能由程序指针异常跳转(如堆栈溢出、指针错误)、代码超出 Flash/ROM 边界导致。复位后需检查程序逻辑,确保跳转指令合法,优化堆栈设置,避免越界访问,可通过调试工具追踪异常地址定位问题。
SH79F9271 的 OVL 复位是因程序执行超出合法地址范围触发的保护机制。可能原因:程序跳转地址错误、堆栈溢出导致 PC 指针异常、代码超出 Flash/ROM 范围。需检查跳转指令、堆栈设置、链接脚本内存分配,确保程序执行路径在芯片定义的有效地址空间内。
页:
[1]