stm32F4bootloader工作不正常求助!

2019-07-20 07:25发布

本帖最后由 zwneu 于 2018-7-3 17:38 编辑

我有个关于stm32F4的bootloader升级问题,困扰我好久了,现在是bootloader正常,但是如果被升级的程序是不是用ucosIII的例程,就一切正常,但是如果是带有ucosIII的例程,现象是代码运行到不知道什么位置就会进入HardFault_Handler,我反复查验了应用升序的FLASH地址以及中断向量的重新映射,都没有错,哪位大神能帮我看看吗?万分感谢!

目前bootlaoder中主要就是这样

#define APPLICATION_ADDRESS                ADDR_FLASH_SECTOR_2


iap_load_app(APPLICATION_ADDRESS);

void iap_load_app(u32 appxaddr)
{
        if(((*(vu32*)appxaddr)&0x2FF00000)==0x20000000)        //¼ì2éÕ»¶¥μØÖ·êÇ·ñoÏ·¨.
        {
                jump2app=(iapfun)*(vu32*)(appxaddr+4);                        
                MSR_MSP(*(vu32*)appxaddr);                                       
                jump2app();                                                                        
        }
}        

应用程序配置如下:
无标题.png
在system_stm32f4xx.c中定义#define VECT_TAB_OFFSET  0x8000

感觉没啥问题了呀,可是跳入应用程序中,能从main切换到start_task中,就出现HardFault_Handler了,既然能任务切换,说明系统工作正常啊!

各位大神,帮帮我吧,要崩溃了
BootloaderV1.0.zip (1.02 MB, 下载次数: 46) 2018-7-3 17:38 上传 点击文件名下载附件

例6-2 UCOSIII任务挂起和恢复.rar (1.24 MB, 下载次数: 35) 2018-7-3 17:38 上传 点击文件名下载附件



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
zwneu
1楼-- · 2019-07-20 10:01
 精彩回答 2  元偷偷看……
michael91
2楼-- · 2019-07-20 11:05
 精彩回答 2  元偷偷看……
zwneu
3楼-- · 2019-07-20 11:45
michael91 发表于 2018-7-3 19:07
主程序中没看到设置偏移地址的语句啊。就是这样的NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);

在system_stm32f4xx.c中定义#define VECT_TAB_OFFSET  0x8000这个定义了和NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);作用是一样的,因为在uVision5中没找到NVIC_SetVectorTable的定义,所以直接修改中断向量表的偏移量了
正点原子
4楼-- · 2019-07-20 12:12
你试过UCOSII的例程么?在标准例程里面,最后几个里面,有ucosii的例程。
zwneu
5楼-- · 2019-07-20 12:58
 精彩回答 2  元偷偷看……
zwneu
6楼-- · 2019-07-20 13:12
 精彩回答 2  元偷偷看……

一周热门 更多>