一、CK80x系列
PROM的0地址开始的区域,0~0x100处存放的是系统异常向量表,向量表的起始地址(0地址)存放的是代码入口地址(__start)。Chip复位后,从PROM起始地址(0地址)开始运行,PC中装载的是代码的入口地址(__start),即装载的是0地址处存放的地址,然后从该地址(__start)处开始取指运行。
下面以CK802(APT32F110x)为例。
1、异常向量表起始位置地址是:__start

2、编译后asm文件中__start对应地址:0x108

3、复位后的PC值

二、E90x系列
PROM的0地址开始的区域存放的是启动代码 _start起始的.text段,即Reset_Handler起始的代码段。Chip复位后,从PROM起始地址(0地址)开始运行,PC中装载的是PROM起始地址(0地址),即从0地址处开始取指运行。
下面以E902(APT32F103x)为例。
1、 启动代码中_start 和 Reset_Handler指的是同一地址。

2、编译后asm文件中Reset_Handler地址:0x00

3、复位后的PC值

三、总结
CK80x系列,Chip复位后,系统从0地址开始运行,PC中装载的是0地址处存放的地址,然后从该地址处开始取指运行;E90x系列,Chip复位后,系统从0地址开始运行,PC中装载的是0地址处存放的指令,即从0地址处开始取指运行。
文章详细比较了CK80x和E90x系列嵌入式处理器在复位后的程序执行流程,着重解释了异常向量表和启动代码的起始地址以及PC值在复位后的加载过程。
5110

被折叠的 条评论
为什么被折叠?



