IAP启动带ucosII的APP程序后进入 hardFault_Handler

2019-07-20 12:43发布

本帖最后由 tian213 于 2017-3-7 17:12 编辑

我目前的项目:用探索者开发板的IAP例程为基础修改,IAP接收下载APP程序(裸奔)可以正确跳转运行,此种方式已经批量在用一年多了,没有出问题。

现在由于系统性能要求,对原裸奔的APP程序移植到ucos系统上,此程序直接下载到我的板子上可以正常运行并连续测试了48小时正常,IAP程序不变。但是用IAP接受下载新的UCOS程序以后。APP程序不能正常运行,后来我仿真调试IAP程序,接受的数据与发送的bin文件是一致的,但是在执行完jump2app()后,IAP程序就进入hardFault_Handler了。

我自己估计问题可能出在UCOS这边,工程配置与原裸奔程序配置一样,同样在main函数第一行增加了SCB->VTOR=FLASH_BASE | 0X10000,但是又找不到问题在哪里。

哪位大侠可以帮我分析一下,指点一下迷津?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
tian213
1楼-- · 2019-07-20 15:04
正点原子 发表于 2017-3-7 21:30
更新APP的时候(STM32写FLASH的时候),禁止中断,试试

好了,我鼓捣一通,可以正常启动了。
我的IAP内有CRC传输校验,有文件解密算法,可能是这些有问题。
我还不知道怎么回事,我需要静静.............................
正点原子
2楼-- · 2019-07-20 18:15
 精彩回答 2  元偷偷看……
tian213
3楼-- · 2019-07-20 23:43
正点原子 发表于 2017-3-7 21:30
更新APP的时候(STM32写FLASH的时候),禁止中断,试试

我的IAP是每次接受512BYTE的数据,然后写FLASH,直到上位机软件发来完成信号,才执行一次跳转。 我是要在每次写FLASH前都关闭一次中断,然后再开启中断吗?
是用INTX_DISABLE()禁止中断,用INTX_ENABLE()开中断吧?
sunnyboy丶
4楼-- · 2019-07-21 01:29
 精彩回答 2  元偷偷看……
sunnyboy丶
5楼-- · 2019-07-21 06:51
 精彩回答 2  元偷偷看……
tian213
6楼-- · 2019-07-21 09:13
sunnyboy丶 发表于 2017-3-8 15:15
没看过这个程序,我用以太网IAP的时候也遇到这样的问题,直接运行程序不会出现问题,但用IAP升级后就会出现 ...

你说的是APP的中断向量表偏置吗?我在APP的main函数内第一行增加了偏置的语句。

一周热门 更多>