你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何实现从bootloader到APP的跳转

[复制链接]
chyb2002 提问时间:2011-6-5 11:33 /
我想在8000000地址放一个boot程序,在8003000地址中放APP程序
boot程序在初始化后运行了一个led闪烁5s的示例,然后通过“(*(void(*)(void))0x0003004)(); ” 来跳转到APP。

APP程序按照ST的demo中给出的方法,MCU初始化后调用“NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000); ”来设置中断relocation,然后在keil的设置窗口“target”标签中,设置IROM的起始地址为0x08003000,在“link”标签,设置R/O base address为0x0800300。APP程序编译链接后从map文件中看到reset的确是从8003000开始。


最后通过jlink先下载APP程序,再下载boot程序,运行boot程序,发现执行跳转之后就进入了HardFault中断了,不知道咋回事,麻烦有高手帮忙看看,谢谢。
收藏 2 评论4 发布时间:2011-6-5 11:33

举报

4个回答
chyb2002 回答时间:2011-6-5 14:34:58

RE:如何实现从bootloader到APP的跳转

呵呵,还是自己搞明白了,是跳转代码写错了,不是要跳转到8003000地址,而是要跳转到8003000地址所存储的地址去,reset向量嘛^_^
(*(void(*)(void))(*(uint32*) 0x08003004))();
lishengyong 回答时间:2013-5-29 21:15:01

回复:如何实现从bootloader到APP的跳转

 楼主能把代码发我看看吗,我按你写的内容也下载到了我的板子里面,结果运行不了啊,什么反应都没啊
Tension-419367 回答时间:2014-11-7 14:15:34
谢谢楼主分享,说得很清楚。
huanancjz 回答时间:2017-6-20 16:51:59
多谢,一语惊醒梦中人啊

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版