通常情况下,我们可以直接使用芯片厂商提供的.S启动文件来启动我们的CPU,但在实际产品开发中,我们需要设计一个系统架构能够兼容不同芯片厂商的芯片,而CPU的启动代码则不同,因此如果有个毕竟好的架构能够实现这功能那对于产品的开发帮助是极大的,幸好ARM公司的cortex-m内核有着良好的兼容性,对于这个,我们可以这样实现,以下以STM32单片机为例,其他的芯片类型,都是可以使用这种方式来启动芯片,而不用考虑.S文件。
2.CPU启动的时候cortex-m3的会执行如下过程,
1),从地址0x0000 0000取出4bytes的数据作为MSP的值;
2),从地址0x0000 0004取出4bytes的数据作为复位的PC值;
3),PC跳到复位向量处开始往下执行程序代码。
ARM公司规定的是那样,不过ST公司的启动位置在0x0800 0000地址,看到这边是不是感觉,诶,这个怎么办,其实这边是因为ST公司自动做了地址映射处理,将0x0800 0000地址映射到0x0000 0000地址,这样就符合ARM corte-m内核的规范了,
3&#