首先转载一篇博客链接:嵌入式OTA升级实现原理_bulebin的博客-CSDN博客_ota升级原理
懂了原理之后,就是实战:
1.单片机的BootLoader程序怎么写?使用的什么硬件,需要实现哪些功能,flash用外部的还是用内部的?
2.单片机如何联网?如何访问服务器?采用后台下载还是非后台下载?
3.如何制作升级文件包?采用什么方式存储,双区域还是单区域?升级包如何验证?
4.大文件如何有效传输?是否要断点续传等?
如果一个嵌入式设备不能联网,那就只能通过有线方式进行数据传输和升级;但是随着物联网的迅速发展,很多设备都具备有联网的能力,不管使用wifi esp8266模块还是蓝牙或者别的其他关,都逐步可以连接上物联网或者互联网了。对于单片机联网来说,等同于增加了一个外设,不知道以后是不是有类似树莓派的产品,集蓝牙于一身的CPU。(有厂商做这个吗?)
bootloader程序怎么写,后续再出博客,,目前我也不会。。先用着。
升级文件包,可以采用各种方式,也许直接用keil生成的bin文件是最简单的,双区域存储要比单区域有很大优势,肯定是首选了,一块2M的flash也贵不到那里去;升级包的验证有采用各种方式了,典型如MD5算法。
大文件采用分包传输,分多大的包是一个问题,如采用Ymodem就是1024字节一包,断点续传肯定是需要的,实现起来要记录的信息会多一些。
扫描二维码关注公众号,回复:
16643996 查看本文章
![](/qrcode.jpg)
数据的交互验证,总的原则是宁可不升级,也不能升级一个不能使用的bin文件,否则喜提一块板砖。
升级测试至关重要,单片机一个CPU实现各种功能,时序上要合理处理,防止出现卡住的情况。