这个ARM指令asm是什么(" b。\ n");是什么意思?

时间:2015-05-28 10:43:34

标签: assembly arm embedded-linux cortex-a

在重置处理程序中看到以下代码: asm(" b。\ n");

这是处理器的手臂。 有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

当出现故障异常时,重置处理程序会进入画面。现在你可以构建处理程序来覆盖这些异常但是为了保持引导加载程序简单,它们通常保持无限循环(这实质上就是这个asm代码)。

现在说明在引导加载程序阶段不期望异常并不是真的。即使在开发阶段之后,也可能存在例外,这些例外主要与硬件相关;示例bootloader无法初始化某些HW,因为它已经坏了。

同样在引导加载程序阶段,在重置处理程序中重新启动系统没有任何意义,因为在此阶段中导致故障的任何内容都可能在下一次启动时再次发生,系统将继续重新启动。至少这种方式可以附加调试器,即使cpu寄存器没用,也可以收集和分析引导加载程序日志,ram内容。