STM32 启动疑问

2019-07-21 01:30发布

看了很多资料,现有疑问如下(假设程序从flash启动):

1、第一条指令到底在什么位置?
  无论是网上的博客还是正点的教程,都是复位后从0x08000000取第一条指令,但是看内核编程手册,MSP和PC都是从0x00000000取指(0x08000000被映射到0x00000000),那么到底从什么地方取指?希望知道的大神给点资料解惑。


2、中断发生后,PC指针指向何处?是0x00000000还是0x08000000?


3、以上两个问题总结起来就是,启动的开始在哪里?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-21 18:03
启动后就是从0X0800 0000开始运行的,不过第一个4字节是栈顶地址,第二个4字节,才是复位中断向量的地址。然后执行复位中断服务函数,然后,进入main函数...
gangzilife
2楼-- · 2019-07-21 23:08
本帖最后由 gangzilife 于 2019-5-13 08:55 编辑
正点原子 发表于 2019-5-11 01:40
启动后就是从0X0800 0000开始运行的,不过第一个4字节是栈顶地址,第二个4字节,才是复位中断向量的地址。 ...

那对于文档上说的从地址0x00000000取msp,在地址0x00000004取pc如何理解?还有就是向量表在复位时固定在0x00000000如何理解?
正点原子
3楼-- · 2019-07-21 23:26
 精彩回答 2  元偷偷看……

一周热门 更多>