li_thomas 发表于 2013-1-28 22:39:51

Cortex-M3启动的特点,分享今天得到的教训

可能是别的体系结构看多了,想当然认为CM3也是默认从0x0000_0000启动,但今天自信看了map和lss文件,发现不是这么回事。
按照ARM的介绍,系统reset后,硬件自动会把从地址0x0000_0000中取得的内容当然MSP(Main Stack Pointer)的值,把0x0000_0004取得的值赋给PC指针(最后一位要手动清零),所以0x0000_0004上放置的数值才是真正意义上的系统入口。
这就是今天一天的教训,希望对你们有帮助。

fshunj 发表于 2013-1-28 22:49:56

所以说先了解大概的理论再入手可以避免很多未知的错误.

liupeng08305 发表于 2013-1-29 10:55:49

莫非要写boot程序,直接做应用就可以了,遇到问题再去查阅

schwarz 发表于 2013-1-29 15:46:43

找库例程,自己重头来很麻烦的。

Gorgon_Meducer 发表于 2013-1-29 19:41:22

ARM的内核可以配置载入默认向量表的地址,如果芯片公司将这个默认地址固定为0x0000那么就是
从这个地方载入向量表,比如Atmel,向量表就放在0x80000000

samhost 发表于 2013-2-24 20:47:20

spec说得很清楚,是从0004启动的。

z421868436 发表于 2013-2-24 21:30:11

第一次写M4的boot时候也遇到过这个问题

zhiwei 发表于 2013-2-24 21:32:32

CM3比CM0灵活,中断向量表可以配置多个,对bootloader支持很灵活的。

cumtgao 发表于 2013-2-25 08:33:11

确实如楼主所说。。。M3有点小例外

osesemi 发表于 2013-11-10 17:06:27

{:smile:},遇见

奮闘ing 发表于 2013-11-11 09:04:30

嗯,对我有帮助!谢谢分享~

NewKing 发表于 2013-11-24 13:43:37

学习了!
页: [1]
查看完整版本: Cortex-M3启动的特点,分享今天得到的教训