打印

远程固件更新

[复制链接]
1785|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fangzm|  楼主 | 2010-1-26 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
远程固件更新功能简述如下:
1.使用串口通信接口;
2.数据分帧发送(遵循特写协议,类似于TCP包)
3.设备接收后进行有效性检验(如文件头信息,检验位等)
4.设备重启后执行所下载的新固件
希望做过类似实现的大虾们指点一二,目前尚无头绪:
如何制作下载文件(固件文件),需要对Hex文件(或Hex转换的Bin文件)做哪些处理?
如何使重启后跳转执行新固件,又如何保证下一次仍可继续下载更新?
开发环境:STM32F开发板(ARM Cortes-M3内核)+MDK,可使用的外部存储器仅2k,用于存储设备配置数据。

本来是准备参数ISP方式处理的,但发现有个本质的区别:
ISP直接Flash擦除编程,而这种更新是先存储,校验后才能Flash擦除编程。
唉,没思路了。

个人认为,嵌入式未来发展中,通过网络远程控制特定设备是其中一大特色。
一个控制台,通过网络监控多个设备,其固件更新是必不可缺的功能(不可能一一回收,用原始的方式刷新固件吧)。
因此希望此前有过此类想法,或者有志于未来领先一步的大虾们,能够参与一下。
谢谢

相关帖子

沙发
fangzm|  楼主 | 2010-1-28 19:23 | 只看该作者
感觉这个论坛的人气不旺啊。
作为一个思路,在这里给出完整的流程,以免后来者有相同的困惑而无人解答:
使用ISP下载具备IAP功能的BootLoader,再使用该BootLoader实现远程固件更新。
IAP可参阅ST官网的应用笔记和例程。

使用特权

评论回复
板凳
古道热肠| | 2010-1-28 20:48 | 只看该作者
呵呵,要远程升级,的确要自定义BootLoad,条件满足执行应用程序更新,不满足时运行应用程序.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

1

粉丝