我对ARM Cortex-m处理器的启动顺序有点困惑.从许多不同的资源,我看到在重置时,皮层-m将内容从0x0复制到堆栈指针,并将重置处理程序地址从0x4复制到PC.我的问题是:
1)皮层-m处理器如何将这两个值复制到适当的寄存器中,我的意思是处理器需要LDR/STR指令才能这样做,但是这里的值是自动复制的?处理器是如何知道这两个单词需要复制的。
2)皮层-m控制器是否包含最初执行的内置固件?
3)正常情况下,处理器在复位后,开始从复位向量中的特定内存位置取出,其中跳转指令被放置在重置处理程序中。但在这里,在皮质-m处理器开始复制前两个单词到寄存器,然后程序计数器点,以重置处理程序.没有跳转指令,没有特定的内存位置,处理器跳到重置。!!怎么可能??
发布于 2017-06-30 20:10:14
2)皮层-m控制器是否包含最初执行的内置固件?
很大程度上取决于模型和制造。例子: NXP LPC系列Cortex-M芯片(如LPC17xx)有一些屏蔽的ROM指令,在闪存程序之前执行。其他人可能没有这样的内存。
1)皮层-m处理器如何将这两个值复制到适当的寄存器中,我的意思是处理器需要LDR/STR指令才能这样做。
这发生在任何代码执行之前的硬件中,因此不需要LDR指令。
它非常简单,如果您知道状态机是什么,以及如何在硬件描述语言(如VHDL或Verilog )中实现状态机的话。
https://stackoverflow.com/questions/44832159
复制相似问题