单片机/MCU论坛
直播中

王莉

7年用户 1305经验值
私信 关注

TC387 Divide by zero故障无法触发怎么处理?

我在ADS的Blink LED程序中加了一行代码测试除以0进TRAP的情况:
        u8TestResult = 0xFFu / u8TestVal;
        测试发现当 u8TestVal = 0的时候,u8TestResult 结果为255,查找资料,发现了这个:
        我在调试器上手动将 FZ 位使能,再进行测试,发现不起作用:
        (程序不会对这个寄存器做操作,先复位,再设置寄存器,再运行,还是不起作用)
        
        请问这个寄存器对吗?有没有Demo代码可以参考一下?

回帖(1)

糖栗子

2024-1-24 16:08:47
在ADS的Blink LED程序中加入一行用于测试除以0的代码无法触发Divide by zero故障,这可能是由于处理器的浮点异常使能(FZ)位没有设置正确导致的。下面是一些可能的解决方案:

1. 确保正确设置了浮点异常使能(FZ)位。如果调试器的设置对FZ位没有影响,可能需要手动设置处理器的中断控制寄存器或相关寄存器以启用FZ位。

2. 检查处理器的文档或参考资料以获取更多关于浮点异常使能(FZ)位的信息。可能需要了解特定处理器的配置和寄存器设置。

3. 尝试使用其他调试器或工具进行测试,以确保问题不是由调试器本身引起的。

4. 确保除法操作数不为0时程序正常运行。可以通过添加条件语句或错误处理来避免除以0的情况。

5. 如果无法解决问题,建议联系技术支持或咨询相关领域的专家,以获取更专业的帮助和指导。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分