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

如何实现从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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版