STM32-F407---USB-IAP升级问题

2019-07-20 00:37发布

开发板为STM32F4系列的:
最近一直在搞关于USB-IAP升级实验:U盘中含有需要升级的BIN文件。每次开机的时候,通过定时器去判断 是否有U盘挂载并且是否有需要升级的bin文件。
本身的工程是移植一个关于U盘读写的工程。此工程包含了FAT32文件系统,和内存管理函数。主要就是做U盘内固定bin文件的读取,以及flash相关的操作;
IAP升级主要参考原子哥的串口IAP升级思路。工程啥的都移植好了。bin文件啥的都是没问题的。
有一个很奇怪的现象:如果在跳转到IAP之前没有【__disable_irq()】这句,怎么跳转程序都不能执行,添加了这句之后大部分的程序,跳转之后是可以运行的。
但是也有写程序跳转之后就是不运行。也有人会问是不是写入到flash的数据是不是出错了,我尝试在跳转之前把flash中的数据全部读出来,然后通过某个小软件查看bin文件的数据
两者是一样的,没什么不同,现在的问题就是,某个UCOS程序能执行,某些却不行。lwip的程序是都不行。不知道是不是这个malloc导致的?????各位大神给提点思路。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
正点原子
1楼-- · 2019-07-20 01:43
 精彩回答 2  元偷偷看……
小c小c
2楼-- · 2019-07-20 04:18
 精彩回答 2  元偷偷看……
小c小c
3楼-- · 2019-07-20 06:49
各位老铁:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1的相关配置,然后在APP中同样也有串口1的配置,每次执行完printf就停止了,啥都没有了,如果换成串口2就没有问题。目前还在查找为什么两个地方都有串口1的配置,都使用printf函数,就会导致程序起不来。不知群里哪位大神知道。
小c小c
4楼-- · 2019-07-20 09:14
正点原子 发表于 2018-3-19 20:54
很可能是中断冲突。  你在IAP里面,启动了某些中断,跳转到APP之后,这些中断,还是开启的,也就是如果配置 ...

原子哥:经过两个多小时的折腾,现在终于可以了,原因居然是串口的printf的问题,在Bootloader中有串口1的相关配置,然后在APP中同样也有串口1的配置,每次执行完printf就停止了,啥都没有了,如果换成串口2就没有问题。目前还在查找为什么两个地方都有串口1的配置,都使用printf函数,就会导致程序起不来。不知群里哪位大神知道。   这两者难道是中断问题导致的么?
秋天
5楼-- · 2019-07-20 14:10
 精彩回答 2  元偷偷看……
小c小c
6楼-- · 2019-07-20 14:16
 精彩回答 2  元偷偷看……

一周热门 更多>