实现iap功能,bootloader使用了rtt操作系统,在跳转到app代码的时候提示出现hardfault的问题

发布于 2013-11-06 09:34:49
编写一个bootloader实现iap的功能,在不启动rtt的时候,裸机环境下,是能正常从bootloader跳转到app,但是当rt-thread启动起来后,在执行跳转到应用程序的代码就会出现hardfault的问题,跳转失败,我发现只要在 rt_system_scheduler_start之前调用跳转函数都是能够正常跳转到app部分的,但是当rt_system_scheduler_start启动起来之后,就不能进行正常的调转的,我将全局中断关闭了,问题依然存,只要操作系统启动起来,就不能正常执行跳转函数,我想询问一下,rtthread启动起来之后会对跳转到应用程序的那部分代码产生什么影响呢,每次要进行跳转的时候就会出现hardfault的问题?

查看更多

关注者
0
被浏览
3.8k
4 个回答
aozima
aozima 2013-11-06
拒绝白嫖,拒绝键盘侠!
[list=a][li]关/清所有中断(只关总中断不够)。[/li]
[list=a][li]重设MSP(如果是cortex-M系列)。[/li]
[list=a][li]重设中断向量地址(确保中断向量地址正确,以及是否有其它地方有错误的设置)。[/li]
[list=a][li]如果有必要,确保CPU运行在特权模式。[/li]
jeffwei
jeffwei 2013-11-06
因该是 关/清所有中断(只关总中断不够)这一条,我干过这种傻事
ourdsp
ourdsp 2013-11-06
我现在就只是关总中断,并没有一个一个的去关清所有中断,请问这两者有什么区别呢,关
总中断,不就已经能达到中断服务不会被响应的这一要求了嘛?aozima、jeffwei能解释一下两者的区别吗?
我现在就在干这种傻事~~

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览