标题: 请问SD卡升级后有时会跳错误中断是什么原因? [打印本页]

作者: billaj    时间: 2024-8-19 12:07
标题: 请问SD卡升级后有时会跳错误中断是什么原因?
各位大佬好,小弟遇到一个关于升级的问题卡BUG了,没有方向,烦请各位指点一下,我原来的程序是没有SD卡升级功能的,现在增加SD卡升级功能,我第一次搞SD卡升级,按照我理解应该是可以将原程序当APP直接定义为Start地址就可以,然后Boot Loader直接跳到这个地址就可以,但很奇怪的是,在升级APP程序后会跳进Boot Loader 的HardFault_Handler中断处理,我常试屏掉我原来的主程序,APP程序只闪一个灯,升级后又能正常跳转闪灯了,请问一下各位大佬,有没有什么方向让我去查查的,因这个问题无法通过仿真看为什么不行,真没头绪了
我用STM32F103RCT6,是256K的
Boot Loader的IROM1:定义为Start:0x8000000,Size:0x40000     
APP的IROM1:定义为Start:0x800C800,Size:0x25800  
拜谢各位大佬

作者: 123156fsadf    时间: 2024-8-21 10:58
1、Boot检测到SD卡中有新APP,就将APP从SD卡中复制到你的APP IROM1空间,一定要先擦除APP IROM1的Flash后再从SD卡中复制新的程序。
2、将APP复制完之后,要将Boot中启用的一些外设恢复初始化,或者你直接软复位一下也行。
3、可以将升级后的flash内容读取出来,与APP文件进行对比,看是否完整复制到APP空间中
4、检查APP文件的地址是否正确
5、可以将APP改为简单功能的测试软件,先把升级功能搞定,然后再排查是否APP中有代码出现问题了
作者: billaj    时间: 2024-8-26 20:34
123156fsadf 发表于 2024-8-21 10:58
1、Boot检测到SD卡中有新APP,就将APP从SD卡中复制到你的APP IROM1空间,一定要先擦除APP IROM1的Flash后再 ...

我之前已经试过APP程序只闪一个灯,升级是无问题的,但只要是用到我的主程序就会在升级后的跳转APP程序那一句跳中断错误,我会按你的步骤再试试,谢谢你的回答
作者: billaj    时间: 2024-9-13 15:55
我算是找到问题点了,就是读SD卡写FLASH时,地址写了64K后就不写了,见鬼,我后面把APP地址改为0x8010000,当写到0x8020000开始就没有数据了,估计就是这个原因在跳转时报错了,我抓取写时的地址,明明是有把0x8020000后的地址传过去的,就是没写,等我再找找原因
作者: billaj    时间: 2024-9-18 14:49
原因正是0x8020000开始打后的地址全写不了,暂不知道为什么,我把地址往前移,避免用到0x8020000之后的地址,先凑合着用,日后再找原因
作者: 123156fsadf    时间: 2024-9-18 16:37
billaj 发表于 2024-9-18 14:49
原因正是0x8020000开始打后的地址全写不了,暂不知道为什么,我把地址往前移,避免用到0x8020000之后的地址 ...

你确定你的芯片是256K的吗?0x8020000正好是128K哎,或者你后128Kflash没有擦除就在写了么?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1