所有问题都以STM32F103位例:
第一个问题:当STM32上电之后,内核的PC指针指向的地址是0X00000000,还是FLASH的主存储区地址0X800000
第二个问题:如果PC指针处于0X00000000,而程序的存储区在0X8000000,是不是内核在0X00000000~0X8000000什么都没干,一直等到PC指针执行到FLASH主存储区?
第三个问题:ST把FLASH映射到以0X8000000为起始的存储地址存储代码,如果同样的内核,不同厂商FLASH映射到内核上的地址不一样,程序的执行地址是不是也会不一样?
第四个问题:又或者是0X00000000存放的是MSP栈顶地址,0X00000004之后存放的中断向量表地址,内核得到地址之后,又跳转到FLASH的中断服务函数中执行程序,再执行主程序。
最近搞bootloader,所以想把程序的执行流程理清楚,希望讨论一下
一周热门 更多>