打印
[ARM入门]

cortex m0 跳转和启动时的一些疑问

[复制链接]
913|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
隐身的鱼|  楼主 | 2017-5-29 11:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
m0的mcu,
1))新建一个工程,点红灯,设置烧录地址为0000--5fff一切正常(红灯闪),叫它image1
2)新建一个同样的工程,只是改动点绿灯,设置烧录地址为6000--afff,也可以正常运行.叫它 image2
3)修改工程一,如何 从工程一 image1 跳转到 工程二 的程序 image2中去?
  因为程序 已经烧录到flash中,所以image2仍然存在于 0x6000--afff区域...
  查看运行时,在image2运行时,intv向量表除了resetintvec ,其他的都一样...
那么我的想法就是,
在image1中,到flash某个位置读取一个标志,如果 image2完整的,那么设置msp指针,再得到resetintvec2的地址,,这想法是否正确?
如果 上面正确,那么编译image2包时,如何 把这个地址得出来,放到flash的某个位置呢?因为reset中断向量地址,对于m0不需要自定义的吧,编译时直接指向_iar_program_start,其他的中断,都是定一个空的,复盖原来的就好,这个,,,难道把main改成reset向量?即使这样,写到image2位置时,如何找这个地址?查看map文件,image2的vectab仍然是000开始 ,而6000开始的内容根本不是中断表,而是好像是库文件,

相关帖子

沙发
隐身的鱼|  楼主 | 2017-5-31 08:22 | 只看该作者
搞定,工程用初始的配置,有vectable 地址配置,只需设成高image区,即可固定位置找到reset int 和msp地址....

使用特权

评论回复
板凳
鸟神号| | 2017-5-31 10:09 | 只看该作者
隐身的鱼 发表于 2017-5-31 08:22
搞定,工程用初始的配置,有vectable 地址配置,只需设成高image区,即可固定位置找到reset int 和msp地址.. ...

大神好厉害,这个设置是在哪里?具体怎么设置?能否告知

使用特权

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

本版积分规则

3

主题

8

帖子

0

粉丝