cortexM3启动简介

一、nxp 1853系列启动流程

1、上电复位后使用内部IRC 12M振荡源作为时钟。程序指针指向0x00000000处。
2、将bootrom地址映射到0x00000000处。不用执行该步骤,上电时影子寄存器(M3MEMMAP)中的值已经自动映射。访问0处地址自动转换到0x10400000处。
3、首先执行bootrom处引导代码,存放在0x10400000处。
4、检测启动引脚配置,配置脚P2_9、P2_8、P1_2和P1_1。
5、根据配置脚情况从串口、USB、flash中选择一种方式启动。这个过程中会修改影子寄存器内容,让入口地址映射到0处,保证正常启动。

二、程序地址映射

      上电后pc指针是从0开始的,但是程序一般存在非0地址处。coretexM3采用映射方式将程序存储空间映射到地址0处,映射方法是将程序存储空间起始地址写入M3MEMMAP寄存器中。映射完成后就能执行程序存储空间中的代码。下图是一个使用外部存储器的地址映射图。

三、向量表偏移

            当代码有远程升级功能时,执行文件会被分作两部分,前面一小部分存放BootLoader镜像实现升级功能,实际执行文件存放在另一部分。整个执行文件被顺序存放在控制器的内部flash存储器上,实际执行文件的向量表未放在flash存储起始地址上,当实际程序文件执行异常时就无法跳转到异常向量表上。cortexM3提供了向量表偏移功能,直接将向量表的便宜量写入VTOR寄存器即可。

   

猜你喜欢

转载自blog.csdn.net/dashanque/article/details/82802098