• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1423 Cortex-M核除0操作的报错机制话题

2025/03/18
519
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1423 Cortex-M核除0操作的报错机制话题

515.22 KB

前言

除 0 操作属于错误操作,在 ARM Cortex M 平台上会有相应的报错机制。但这边会涉及到整型数的除 0 以及浮点数的除 0,另外还会涉及错误产生后的报错机制,是中断还是错误位,本文会对这个报错机制加以说明。使用 STM32H723 做为测试芯片。

整形数除 0 操作报错

默认情况下,STM32H723 对整形数的除 0 操作,会忽略掉错误,原因在于默认情况下SCB->CCR 寄存器默认配置中这个除 0 操作是非捕获状态,如果想要系统报错,需要把DIV_0_TRP 这个位置 1,这样,当执行除 0 操作的时候会进入 hardfault,并且有标志位产生。

浮点数除 0 的报错机制

浮点数的除 0 操作,没有专门的 Hardfault 触发机制,也就不能产生中断,只能通过对 FPU单元的读取进行判别,而且在调试模式下,通过 IAR 读取寄存器的结果是正确的,而通过 Keil 的读取会有错误,实际已经发生了浮点除 0 操作,但 Keil 的 FPU->SCR 寄存器 DZC 没有置位

结论

本文通过对除 0 操作的报错机制做细致说明,可以看到整型除 0 可以有 Hardfault 的中断产生,而浮点的除 0 只能通过标志位判别,实际使用过程中尽量避免这种错误的操作。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn