ARM Cortex-m4引导顺序

时间:2017-06-29 18:06:37

标签: arm cortex-m

我对ARM Cortex-m处理器的启动顺序感到有点困惑。从许多不同的资源中,我读到重置后,cortex-m将内容从0x0复制到堆栈指针,并将复位处理程序地址从0x4复制到PC ... 我的问题是:

1)cortex-m处理器如何将这两个值复制到适当的寄存器,我的意思是处理器需要LDR / STR指令才能这样做,但这里的值是自动复制的???处理器如何知道需要复制这两个词。

2)cortex-m控制器是否包含最初执行的内置固件?

3)通常处理器在复位后,从复位向量中的特定存储器位置开始执行,其中跳转指令被置于复位处理程序......但是在cortex-m中,处理器首先将前两个字复制到寄存器中然后程序计数器指向复位处理程序...无跳转指令否处理器跳转复位的特定存储单元。怎么可能?

1 个答案:

答案 0 :(得分:1)

  

2)cortex-m控制器是否包含最初执行的内置固件?

高度依赖模型和制作。示例:NXP LPC系列Cortex-M芯片(如LPC17xx)具有一些屏蔽ROM指令,这些指令在闪存中的程序之前执行。其他人可能没有这样的记忆。

  

1)cortex-m处理器如何将这两个值复制到适当的寄存器,我的意思是处理器需要LDR / STR指令才能这样做

这在任何代码执行之前的硬件中发生,因此不需要LDR指令。

如果您知道状态机是什么以及如何使用VHDL或Verilog等硬件描述语言实现状态机,那就非常简单了。