OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3780|回复: 0

STM32F429的IAP升级问题(使用SD卡和FATFS)

[复制链接]

1

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
318
金钱
318
注册时间
2016-8-4
在线时间
33 小时
发表于 2019-2-12 19:04:20 | 显示全部楼层 |阅读模式
10金钱

各位大神你们好:

我现在遇到的问题是:使用IAP升级,从大固件升级为小固件时,第一次运行成功,但是复位后就停在void HardFault_Handler(void)函数中。从小固件升级为大固件正常。

现象:
QQ图片20190212185220.png

小固件:
QQ截图20190212185530.png
if((t%20)==0)LED1=!LED1;
Program Size: Code=9502 RO-data=494 RW-data=44 ZI-data=2049980  

大固件:
QQ截图20190212185633.png
if((t%200000)==0)LED1=!LED1;
Program Size: Code=9506 RO-data=494 RW-data=44 ZI-data=2049980  

以下是IAP的代码:

int main(void)
{
        HAL_Init();                     //初始化HAL库   
        SysCLKInit_HSEPLL(180,25);                        //系统时钟初始化为180M
        HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);                //中断优先级分组
       
        Delay_Init(180);                //定时器初始化
        DEBUGInit();                                //初始化USART
        SDRAMInit();                                //初始化SDRAM
        printf("初始化完成.\r\n");
        Delay_ms(3000);
       
        if(f_mount(&g_TF_FATFS,"0:",1) == FR_OK)
        {
                printf("挂载成功.\r\n");
                if(TFCardReadBINFile() == 1)
                {
                        /*****读取新固件*****/
                        memset(g_ProcedureBUFF,255,sizeof(g_ProcedureBUFF));
                        FMC_SDRAM_WriteBuffer_8Bit(g_ProcedureBUFF,0,sizeof(g_ProcedureBUFF));
                        TFCardReadProcedure();
                       
                        /*****更新新固件*****/
                        g_applenth = sizeof(g_ProcedureBUFF);
                        printf("开始更新固件...\r\n");       
                        iap_write_appbin(FLASH_APP1_ADDR,g_ProcedureBUFF,g_applenth);//更新FLASH代码   
                        printf("固件更新完成!\r\n");
                }
               
                f_mount(0,"",0);                        //取消挂载
                printf("取消挂载.\r\n");
        }
       
        printf("开始执行代码.\r\n");
        iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 19:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表