hellowgmrr 发表于 2024-3-4 09:44:57

IAP升级疑问

IAP程序升级,bootloader所用的库函数,与APP所用的库函数不一致,会有影响吗

eric2013 发表于 2024-3-4 09:48:22

各自独立的,互不影响。

除非你的APP要调用boot的API

hellowgmrr 发表于 2024-3-4 10:00:16

eric2013 发表于 2024-3-4 09:48
各自独立的,互不影响。

除非你的APP要调用boot的API

在实际使用时,用bootloader升级程序后,app程序能看到正常起来运行,但在app中进行串口指令交互时,会出现部分指令不响应的情况。但是如果板子里没有bootloader程序,只有app程序运行,则不存在这个问题,如果与双方库函数没有关系,应该如何考虑问题出在哪的呢?

eric2013 发表于 2024-3-4 10:15:11

hellowgmrr 发表于 2024-3-4 10:00
在实际使用时,用bootloader升级程序后,app程序能看到正常起来运行,但在app中进行串口指令交互时,会出 ...

跳转前 调用串口DeInit函数,如果开启DMA,DMA也DeInit函数。目标是跳转前提供一个干净的运行环境。

hellowgmrr 发表于 2024-3-5 15:12:00

eric2013 发表于 2024-3-4 10:15
跳转前 调用串口DeInit函数,如果开启DMA,DMA也DeInit函数。目标是跳转前提供一个干净的运行环境。

我这边以串口IAP的bootloader程序为基础,向网口IAP进行了移植,实测过程中出现两个问题:
第一是板子网口不连接设备,那么bootloader程序持续时间大概要12秒钟才能跳转到app程序(正常板子插上设备(升级电脑),只需要3秒就可以跳转到app程序),这个问题感觉和图片中我们的H7设备描述的现象一致(H7不连接设备启动时间20秒左右),这个问题可有调整方式,还想让他不连设备也能3秒内跳转到app程序;
第二是app程序运行启动后,正常运行时,如果收到重新设置mac地址的指令,会重新执行重新初始化enet的代码,这个时候设备工作就不正常了,对于之前能响应的串口指令也不再响应了,感觉好像堵塞在了某个地方一样,这个可能是与bootloader程序对其产生了什么影响吗?

hellowgmrr 发表于 2024-3-5 19:55:02

eric2013 发表于 2024-3-4 10:15
跳转前 调用串口DeInit函数,如果开启DMA,DMA也DeInit函数。目标是跳转前提供一个干净的运行环境。

https://www.armbbs.cn/forum.php?mod=viewthread&tid=95386


找到可能的原因了👆

eric2013 发表于 2024-3-6 09:31:45

hellowgmrr 发表于 2024-3-5 19:55
https://www.armbbs.cn/forum.php?mod=viewthread&tid=95386




好的,试试,还有问题的话,我们再交流。
页: [1]
查看完整版本: IAP升级疑问