最近项目没那么紧,因此利用QT进行IAP上位机的制作,IAP其实主要就是将bin文件或者hex文件的数据通过串口发给下位机的updataInfo区域即可,发送完成后,下位机进行系统复位,通过bootloader将刚才发送的数据搬运到正常工作的Info区域,同时擦除刚才的updataInfo即可,这样系统就可以进行升级,IAP主要的优势就是不进行拆机就可以升级,你想想如果一百台机器让你拆机进行升级,多痛苦啊!其实固件更新的原理也是一样,只不过这个更新文件(特制bin文件)是通过WIFI,将更新数据打包分帧进行下发,写入到updataInfo,好了扯远了,知道了原理,那编写的上位机其实就是将bin文件或者hex文件读取回来,然后打包发送,如果,你不管下位机是否接收到数据,你可以酷酷发,虽然也可以成功,但是遇到意外,就要拆机重新烧程序了,因此,保守的方法还是应答式,上位机发送一帧数据,下位机就回复上位机是否接受到,如果下位机接收到了回复正确的信息了,那我们再继续发送,循环往复直到最后一帧数据。
帧头 | 指令1 | 指令2 | 数据长度 | 数据域 | 校验和 | |
PC请求 | 0xE1 | 0xAA | 0x01 | 0xFF(1025) | ||
下位机应答 | 0xE2 |