完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
编写一个bootloader实现iap的功能,在不启动rtt的时候,裸机环境下,是能正常从bootloader跳转到app,但是当rt-thread启动起来后,在执行跳转到应用程序的代码就会出现hardfault的问题,跳转失败,我发现只要在 rt_system_scheduler_start之前调用跳转函数都是能够正常跳转到app部分的,但是当rt_system_scheduler_start启动起来之后,就不能进行正常的调转的,我将全局中断关闭了,问题依然存,只要操作系统启动起来,就不能正常执行跳转函数,我想询问一下,rtthread启动起来之后会对跳转到应用程序的那部分代码产生什么影响呢,每次要进行跳转的时候就会出现hardfault的问题? |
|
相关推荐
3个回答
|
|
|
|
|
|
因该是 关/清所有中断(只关总中断不够)这一条,我干过这种傻事
|
|
|
|
很久不写代码了,现在又在做bootloader,由于要考虑用户是完全小白,没用RTT的通用bootloader。调试STM32F407,回头看看自己遇到过的问题,又有人遇到,贴个IAP跳转APP的代码吧。
void jump2app(void) { JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4); Jump_To_Application = (pFunction) JumpAddress; __disable_irq(); SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; for (char i = 0; i < 8; i++) { NVIC->ICER[i]=0xFFFFFFFF; NVIC->ICPR[i]=0xFFFFFFFF; } __enable_irq(); /* Initialize user application's Stack Pointer */ __set_MSP(*(__IO uint32_t*) ApplicationAddress); __set_CONTROL(0); Jump_To_Application(); } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:边缘端设备的局域网视频流传输方案
1634 浏览 0 评论
1504 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
6739 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1871 浏览 0 评论
3951 浏览 0 评论
78679 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-31 14:11 , Processed in 0.461798 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号