一、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地址处开始取指运行。