本文导读
ZDP1440是一款基于开源GUI引擎的图像显示专用驱动芯片,支持U盘、SD卡本地升级UI固件,同时也支持通过UART/SPI方式进行OTA升级,本文将介绍如何OTA差分升级显示素材。
ZDP1440配套有专用的上位机,不仅用于屏幕参数和硬件接口参数的配置,还支持UI工程一键编译打包生成本地升级UI固件。打包生成的UI固件包含哪些文件,OTA差分升级如何实现,本文将逐一介绍。
一、UI固件简介
打开上位机,配置完成选择UI工程后,单击上位机中的【生成固件】首先会对UI工程进行交叉编译生成可执行文件。以uart_ui_ota工程为例,生成的UI程序存放在UI工程目录下的arm_bin文件夹。
图1
UI工程编译完成,接下来调用打包程序将UI程序awtk.bin和UI素材uart_ui_ota/res目录下的assets文件夹一起打包生成文件系统镜像,即ui_nor.bin或ui_nand.bin。 然后通过U盘或SD卡升级到板载Flash,挂载到根文件系统的bin目录下,也就是UI程序和UI素材在HMI-ZDP1440是以文件的形式存放。
图2
二、差分升级原理
了解了UI固件的组成和存放方式,OTA差分升级自然也不难实现。因为UI素材是以文件的形式存放,所以需要更新某些素材时,只需要替换相应的文件即可。以uart_ui_ota工程为例,OTA差分升级UI主界面背景图,只需要更新HMI-ZDP1440文件系统bin/assets/default/raw/images/x1目录下的bg.jpg背景图。
图3
三、差分升级示例
了解了差分升级实现方式,接下来以OTA差分升级UI主界面背景图为例。首先自定义串口通信协议,指令格式如下,包括进入升级和升级完成2个控制命令。
图4
接下来看看具体的程序如何实现。
图5
1.当接收到进入升级命令后,解析获取待升级文件的大小,后续用于计算升级的进度。然后切换到升级页面显示升级进度,并在bin路径下创建文件用于保存待升级的文件内容。
2.进入升级模式后,后续接收到数据都是文件内容,所以直接将数据写入到文件保存。
3.文件接收完成,收到升级完成命令,则关闭文件,并将接收的文件拷贝到UI素材文件夹替换原有素材背景图。然后切换回主页面并更新页面背景。
通过以上三个步骤就实现了OTA差分升级UI显示素材。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !