AdaMaYun 发表于 2025-1-26 09:01

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

stormwind123 发表于 2025-2-17 16:10

看看,了解了解

中国龙芯CDX 发表于 2025-2-17 20:40

学习一下

LOVEEVER 发表于 2025-2-23 21:07

OVL 溢出复位是做什么的

xdvca 发表于 2025-2-27 13:36

当程序计数器的值超出了ROM可用范围,表示程序指令可能已经越界运行

gouguoccc 发表于 2025-2-27 21:23

复位之后能够知道是因为什么原因导致的复位吗?

星辰大海不退缩 发表于 2025-2-28 14:43

OVL 溢出复位有利于保护MCU

自动化陈稳 发表于 2025-5-25 18:23

自动触发CPU复位,防止程序继续异常运行。

暖心小太阳 发表于 2025-5-26 22:38

这个溢出检测机制很关键,能有效防止程序失控。填充未使用的ROM地址是提高系统稳定性的好方法。

短句家 发表于 2025-7-18 21:16

检查代码中数组越界、递归深度及运算溢出,合理分配内存,优化算法,启用编译器溢出检测,配置看门狗复位阈值。

短句家 发表于 2025-9-19 15:53

SH79F9271 的 OVL 复位是因程序执行超出规定存储范围触发的保护机制。可能由程序指针异常跳转(如堆栈溢出、指针错误)、代码超出 Flash/ROM 边界导致。复位后需检查程序逻辑,确保跳转指令合法,优化堆栈设置,避免越界访问,可通过调试工具追踪异常地址定位问题。

小岛西岸来信 发表于 2025-9-25 14:13

SH79F9271 的 OVL 复位是因程序执行超出合法地址范围触发的保护机制。可能原因:程序跳转地址错误、堆栈溢出导致 PC 指针异常、代码超出 Flash/ROM 范围。需检查跳转指令、堆栈设置、链接脚本内存分配,确保程序执行路径在芯片定义的有效地址空间内。
页: [1]
查看完整版本: SH79F9271程式超范围溢出( OVL )复位