思路
首先分析bootlogo的显示。bootlogo的bmp图片在PACK时被加到固件包当中
146 chips/${PACK_CHIP}/configs/${PACK_BOARD}/bootlogo.bmp:out/bootlogo.bmp
374 lzma -k out/bootlogo.bmp
并被压缩为lzma文件,插入到一段固定的FLASH地址当中
Uboot起来以后,会从这个指定的地址取数据,然后将这个数据填到图像显示的FRAME当中,完成logo显示的工作
方法
由于我们不知道图像是如何压缩为数据的,用一个比较笨的办法。
参照Bootlogo的流程,将我们要显示的BMP图像,先放到bootlogo的位置,打包下载,然后在Uboot显示bootlogo的时候,将该地址取出的数据,打印出来,从而得到BMP图像的数组数据。
拿到这个数据以后,我们就可以在Uboot中直接定义数组保存这个BMP的数据,然后在Uboot中调用图像显示的接口,把地址指向这个我们写好的数组首地址,就可以了。
可以随意显示各种BMP图片,可以添加按键控制BMP图片的显示等,适用于需要快速显示,不进系统的场景。