新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 《Cortex-M0权威指南》之体系结构---程序映像和启动流程

《Cortex-M0权威指南》之体系结构---程序映像和启动流程

作者:时间:2017-01-12来源:网络收藏

  我们先来看看程序映像。

本文引用地址:http://www.eepw.com.cn/article/201701/342822.htm

    

 

  通常,的程序映像时从地址0x00000000处开始的。

  程序映像开始处时向量表,其中包含了异常的其实地址(向量),每个中断向量的地址都等于“异常号*4”,比如,外部IRQ0的异常类型为16,因此其向量地址为16*4=0x40。这些向量的最低位都被置为1,以表示使用thumb指令。向量表的大小由实际使用的中断个数决定。

  向量表中包含了MSP的初始值,它存储在向量表的头四个字节。

  复位时,首先读取向量表的前两个字(8个字节),第一个字为MSP的初始值,第二个字为复位向量,它表示程序执行的起始地址。

  例如,如果启动代码位于地址0x000000C0,需要在复位向量处写入这个地址,并且将地址的最低位置为1,以表明当前为thumb代码,因此,地址0x00000004处的值为0x000000C1。在取得复位向量值后,开始从这个地址处执行程序代码。

    

 

  复位流程也会初始化MSP,假设内存位于0x20000000~0x20007FFF,可以将0x20008000写在地址0x00000000处,这样就实现了把主栈指针置于内存的顶部。

  如果要使用PSP,在配置CONTROL寄存器切换栈指针前,必须首先通过软件代码将其初始化,因为复位流程只初始化MSP,不初始化PSP。

    



关键词: Cortex-M0 处理器

评论


相关推荐

技术专区

关闭