打印
[STM32F1]

复位后取MSP和PC初始值

[复制链接]
3432|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
st316|  楼主 | 2014-8-23 09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在看《Cortex-M3权威指南》的过程中,有个问题没想明白,大伙能给解释下不?

3.8 复位序列
在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:
  • 从地址0x0000 0000处取出MSP的值。
  • 从地址0x0000 0004处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。

我检查了工程编译后生成的HEX文件,文件以0x0800 0000作为起始地址,确实是依次存放着MSP、Reset_Handler以及其它的中断向量表。
可是,地址却并不是0x0000 0000啊?这两块区域之间,是有什么映射关系吗?如果有,那又是在什么时候什么地方处理的?

谢谢了!
沙发
airwill| | 2014-8-23 17:44 | 只看该作者
是的, 区别于其他的 Cortex-M3, STM32 的 FLASH 地址并不是0x0000 0000啊, 而是0x0800 0000作为起始地址.

这两块区域之间,是有什么映射关系吗?如果有,那又是在什么时候什么地方处理的?
当然有. 不过这是芯片内部硬件做的映射, 有三种映射方式. 详细解释不如请看编程参考手册的 BOOT 设置吧.

使用特权

评论回复
板凳
st316|  楼主 | 2014-8-24 19:37 | 只看该作者
airwill 发表于 2014-8-23 17:44
是的, 区别于其他的 Cortex-M3, STM32 的 FLASH 地址并不是0x0000 0000啊, 而是0x0800 0000作为起始地址.

...

谢谢了!:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

167

帖子

3

粉丝