在 M0+ 设备上除以零异常

Posted

技术标签:

【中文标题】在 M0+ 设备上除以零异常【英文标题】:Divide by zero exception on M0+ devices 【发布时间】:2017-01-25 16:25:15 【问题描述】:

M0+ 设备上是否存在除以零异常?

我知道 Cortex M3 和 M4 设备有这个。

【问题讨论】:

【参考方案1】:

Cortex-M0+ 是 ARMv6-M,它不包含除法指令,因此不会有硬件例外。由于除法必然是软件操作,因此它将用于陷阱除以零的软件实现。因此,行为将取决于您的编译器;对于 C 和 C++,至少它是 undefined 行为。

【讨论】:

@LPs : 在 M3、4 和 7 整数除以零 生成 UsageFault 异常,参考:infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/… @LPs它没有FPU,但仍然提供SDIVUDIV除法指令。 @Clifford 是的,我的错。

以上是关于在 M0+ 设备上除以零异常的主要内容,如果未能解决你的问题,请参考以下文章

模数返回除以零异常

Erlang中除以零的精确异常类型

Java基础 try...catch 处理ArithmeticException 除以零的异常

为啥整数除以零 1/0 会出错但浮点数 1/0.0 返回“Inf”?

为什么整数除以零1/0会给出错误,但浮点1 / 0.0会返回“Inf”?

进入 C# 调试器以除以零