开发板为STM32F4系列的:
最近一直在搞关于USB-IAP升级实验:U盘中含有需要升级的BIN文件。每次开机的时候,通过定时器去判断 是否有U盘挂载并且是否有需要升级的bin文件。
本身的工程是移植一个关于U盘读写的工程。此工程包含了FAT32文件系统,和内存管理函数。主要就是做U盘内固定bin文件的读取,以及flash相关的操作;
IAP升级主要参考原子哥的串口IAP升级思路。工程啥的都移植好了。bin文件啥的都是没问题的。
有一个很奇怪的现象:如果在跳转到IAP之前没有【__disable_irq()】这句,怎么跳转程序都不能执行,添加了这句之后大部分的程序,跳转之后是可以运行的。
但是也有写程序跳转之后就是不运行。也有人会问是不是写入到flash的数据是不是出错了,我尝试在跳转之前把flash中的数据全部读出来,然后通过某个小软件查看bin文件的数据
两者是一样的,没什么不同,现在的问题就是,某个UCOS程序能执行,某些却不行。lwip的程序是都不行。不知道是不是这个malloc导致的?????各位大神给提点思路。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>