用XIP方式实现LVGL的Image资源

LVGL是嵌入式设备上GUI图形开发的新晋利器,系统小,效果也很不错。在LVGL中调用图片资源有两种方式,一种是将图片转换为C Array,直接使用,一种是用文件形式。

详见:LVGL官方文档 https://docs.lvgl.io/master/overview/image.html

  • C Array的优势在于直接编译到系统中,速度快,使用起来也方便。问题是嵌入式的设备内存有限,图片一多就比较麻烦了。
  • 文件形式很显然就是内存占用少,但是读取文件本身速度有些影响,另外在嵌入式系统中不得不引入文件系统(SPIFFS,FATFS)等,系统会变大,而且需要自己去Porting

怎么解决这个问题呢?XIP的解决方法浮出水面。


 

什么是XIP? 

刚开始看见这个单词XIP,也是一头雾水,是文件系统的一种吗?Google之后,了解到就是直接物理地址访问On-Chip的Flash或者SPI Flash上的数据块。

在MCU的嵌入式设备中的内存地址与物理地址不是完全分隔开的,访问On-Chip的Flash或者SPI Flash上的数据是可以直接用物理地址来访问的。

这样我们就可以将LVGL的Image的 C Array内容直接写到Flash上,C Array的指针指向Flash的物理地址就可以了。


 

怎么将图片的C Array 数据写入Flash上呢?

Flash的数据其实就是Binary数据,方法就是在Host机器上将C Array写入数据文件*.bin中,然后通过J-Flash等工具将bin文件写到Flash的固定地址上,将C Array的指针指向固定地址。

这样做起来就比较麻烦,需要先将图片转换为C Array,然后在Host机器上将C Array的内容保存到.bin文件中,在修改C Array的c文件,在Host机器上编译设备上的可执行文件。

为了解决这些麻烦问题,研究了一下LVGL的Image Convert工具转换成Bin文件形式的格式(其实就是一个图片基本信息+C Array内容),所以就做了一个小工具读取Image Convert转换的Bin文件,

根据bin文件生成使用XIP指定地址的C Array.同时将多个图片的.bin文件合并成一个大的.bin文件,这样方便一次将系统中需要的所有图片文件合并起来Download到Flash上。


使用C Array的代码构成如下:

const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_HAND_GREEN uint8_t img_hand_green_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
  /*Pixel format: Blue: 2 bit, Green: 3 bit, Red: 3 bit, Alpha 8 bit */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x14, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x47, 0x1c, 0x57, 0x1c, 0x57, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x14, 0x0c, 0x18, 0x74, 0x1c, 0xeb, 0x1c, 0xf0, 0x18, 0xbc, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x1c, 0x8f, 0x1c, 0xfb, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xec, 0x1c, 0x87, 0x18, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x10, 0x0f, 0x18, 0xcb, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xc4, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xf8, 0x1c, 0xa8, 0x14, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x1c, 0x4b, 0x1c, 0xff, 0x1c, 0xdb, 0x14, 0x54, 0x14, 0x50, 0x1c, 0xb8, 0x1c, 0xff, 0x1c, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xfb, 0x18, 0xe8, 0x18, 0xe4, 0x18, 0xdc, 0x18, 0xd7, 0x18, 0xd0, 0x18, 0xb3, 0x18, 0xb0, 0x18, 0xaf, 0x18, 0xab, 0x18, 0xa7, 0x18, 0x87, 0x18, 0x84, 0x18, 0x80, 0x18, 0x7f, 0x18, 0x7b, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x18, 0x9c, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x18, 0xa0, 0x1c, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x18, 0x50, 
  0x18, 0xb7, 0x1c, 0xff, 0x18, 0x8c, 0x10, 0x04, 0x14, 0x0f, 0x1c, 0x37, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xfc, 0x1c, 0xfb, 0x1c, 0xf8, 0x1c, 0xf7, 0x1c, 0xf4, 0x1c, 0xf3, 0x1c, 0xf3, 0x1c, 0xf3, 0x1c, 0xf0, 0x1c, 0xec, 0x1c, 0xeb, 0x1c, 0xeb, 0x1c, 0xeb, 0x1c, 0xeb, 0x1c, 0xe8, 
  0x18, 0x77, 0x1c, 0xff, 0x1c, 0x8b, 0x14, 0x03, 0x14, 0x14, 0x18, 0x5c, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xff, 0x18, 0xfc, 0x18, 0xf7, 0x18, 0xb7, 0x18, 0xa8, 0x18, 0xa3, 0x18, 0xa3, 0x18, 0xa8, 0x18, 0x93, 0x18, 0x7f, 0x18, 0x6b, 0x1c, 0x5c, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x57, 0x1c, 0x9c, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x18, 0xff, 0x18, 0x90, 0x1c, 0x54, 0x1c, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x18, 0x57, 0x14, 0x53, 0x14, 0x4b, 0x14, 0x44, 0x14, 0x37, 0x14, 0x2f, 0x14, 0x27, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x10, 0x17, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x1c, 0x30, 0x1c, 0xf4, 0x1c, 0xff, 0x18, 0xff, 0x18, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xcc, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xf8, 0x1c, 0xa8, 0x14, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x14, 0x2b, 0x1c, 0xf3, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xf3, 0x1c, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x18, 0x18, 0xd8, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xec, 0x1c, 0x87, 0x18, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x10, 0x0c, 0x18, 0x5f, 0x18, 0x8c, 0x10, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x54, 0x1c, 0x57, 0x1c, 0x57, 0x18, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
#endif
};

const lv_img_dsc_t img_hand_green = {
  .header.always_zero = 0,
  .header.w = 100,
  .header.h = 9,
  .data_size = 900 * LV_IMG_PX_SIZE_ALPHA_BYTE,
  .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
  .data = img_hand_green_map,
};

使用工具转换后,生成用XIP方式后代码:

#include "assets_xip.h" 

#define  needle_green_map  (const uint8_t*)(XIP_ADDR_START + 0x00011604)

const lv_img_dsc_t needle_green = {
  .header.always_zero = 0,
  .header.w = 100,
  .header.h = 9,
  .data_size = 4500,
  .header.cf = 5,
  .data = needle_green_map,
  };

needle_green_map指向的就是FLash上的绝对地址。


还没想好将这个小工具放在哪里合适,有想要这个小工具的爱好者,可以留言找我要。

  

 

posted @ 2021-10-08 15:44  magicduan  阅读(1786)  评论(11编辑  收藏  举报