Records of Revision
Ver 1.1.0.0 2023/11/6 第一版发布
Ver 1.4.0.2 2023/12/5(支持x86/x64),主要功能:
(1) 可将多个二进制文件合并与打包,可设定每个文件的偏移地址
(2) 可自由添加文件、删除、调整文件顺序
(3) 列表可保存,可重复导入.h内部的列表信息
(4) 重新规划输出.h文件格式,MCU可直接引用该头文件并索引到文件信息
(5) 界面增加图片宽度和高度信息
(6) 可作为BootLoader和App固件的合并工具
Ver 2.0.1.0 2024/2/26 重大更新(仅支持x64):Latest Version
(1) 新增支持多种输出数据格式,与RA8875/RA8876/RA8889系列完美搭配
(2) 新增支持选择FLASH类型:NOR和NAND均可
(3) 新增显示缩略图窗口,便于即时查看列表文件
(4) 新增工具:【视频转成AVI档】,可将视频转为AVI(Motion JPEG)格式,适配RA8889的使用需求
(5) 新增工具:【图片转成JPG档】,可将图片转为JPG(Baseline)格式,适配RA8889的使用需求
(6) 新增工具:【点阵字库转成图片】,可将点阵字库转成BMP或者JPG图片,便于UI设计
===========================================================
Ver 2.0.1.0版本主界面如下,请移至底部获取【下载链接】 Latest Version
***该版本如想使用请向我们联络索取下载码。
(1) 新增支持多种输出数据格式,与RA8875/RA8876/RA8889全系列完美搭配;
(2) 新增支持选择FLASH类型:可将bin档打包为NOR或者NAND的数据格式;
(3) 新增显示缩略图窗口,便于即时查看添加进来的图片文件;
(4) 新增工具:【视频转成AVI档】,可将视频转为AVI(Motion JPEG)格式,适配RA8889的使用需求;
(5) 新增工具:【图片转成JPG档】,可将图片转为JPG(Baseline)格式,适配RA8889的使用需求;
(6) 新增工具:【点阵字库转成图片】,可将点阵字库转成BMP或者JPG图片,便于UI设计;
(7) 完善功能:文件信息插入bin文件头功能,重新规划了格式,原来只分配了8bytes/文件,新版本分配了16bytes/文件,增加了图片宽度和高度、文件类型三个信息,单机机可以根据文件头对文件、影片、字库等进行索引调用;
(8) 可以设定任一文件的写入地址(Address),满足用户局部更新FLASH、合并Bootloader和App等需求。
接下来对各个功能模块进行简介:
一、主功能:文件添加与打包:
首先要选择【输出格式】,再进行【添加文件】,这样Output Format栏目才会显示相应的格式,选择No Change则不进行处理,原档按二进制格式进行合并。
【FLASH】可以选择是要保存为NOR还是NAND使用,该选项变更时Address栏目值会重算刷新。
【设定写入地址】该功能是设定文件偏移地址,先选择相应的图片(文件)行,然后【+】【-】调整好地址值,接着点右侧的【保存图标】设定该行文件的写入起始地址,这个功能对于嵌入式开发合并Bootloader和App程序相当实用:
【合并保存】之后,点击【查看结果】会看到两个新文件:一个是.bin文件即烧录档,另一个是.h即头文件,单片机可以引用该头文件进行图片、档案索引,同时.h文件也可以用于【导入存档】,重新编排文件,这个功能主要考虑到研发人员在产品调试初期会频繁改动UI文件的需求。
【插入文件信息】选项,第一个文件的起始地址需要先设定,该功能才有效。勾选起来会将每个文件信息写入文件头,每个文件分配16个字节,格式如下:
Data Format定义格式如下:
该信息可用于单片机索引图片、影片、字库等数据,即使不更新App Code,单独更新FLASH的图资亦可。
二、工具选项【视频转成AVI档】,可将视频转为AVI(Motion JPEG)格式,适配RA8889的使用需求
使用时先【选择】视频文件,然后在【参数设置】进行宽度、高度、帧率、比特率、视频质量的设定,同时可以选择是否【保留音频】,RA8889无解码音频功能,默认不保留。
参数设定好之后,【开始】转换,结束后可【查看】打开转换好的档案目录,新档即可作为RA8889的视频源文件进行打包。
三、工具选项【图片转成JPG档】,可将图片转为JPG(Baseline)格式,适配RA8889的使用需求:
使用时,【参数设置】只有一项是选择清晰度,您可以自己进行比较各种质量,可接受的效果即可。
【添加】导入文件,然后【开始】进行转换,最后【查看】打开转换结果所在目录,转换之后的JPG即可作为RA8889的图片源文件进行打包
四、工具选项【点阵字库转成图片】,可把点阵字库转为BMP或者JPG图片,便于使用RAIO芯片进行UI设计:
在设计UI界面时,最常用的功能就是显示各式各样的数字表,也有需求显示文字、图标等等,使用该工具可以很容易做成各种各种文字图标,在设计UI时就非常方便!
使用时,先【选择】字库档,字库档请先使用第三方软件生成,格式为从左到右从上到下,左高位,选择好后,会自动估算出【宽度】和【高度】,这两个参数要依据实际进行修正,若参数正确,则会自动预览,同时左下角会显示该字库包含的文字个数;可点宽高下方的图标翻页预览。
还可以依据需求设定【前景色】和【背景色】,每种颜色的代表值需要3个字节,数值按红、绿、蓝三色排序,手动进行修改后,可以马上看到预览效果。
【起始地址】在翻页后会按单字步进,也可以手工输入,再点【▶】预览,单字大小按照:宽/8(小数向上取整) x 高 换算。
【限制数量】指的是要转换的字数,从起始地址开始之后的字开始转换。若为0表示该字库所有文字都转换为图片。
【○BMP ○JPG】转换的图片存为BMP或者JPG格式。
【开始】进行转换,【查看】自动打开输出目录:
字库源文件限制最大尺寸为128*128点,高度和宽度不限。这些图片可以作为RA8875 / RA8876 / RA8889 系列芯片的图片源文件进行打包,烧进FLASH,再通过DMA功能进行读取调用。
===========================================================
Ver 1.4.0.2版本主界面如下,请移至底部获取【下载链接】
该版本前置,可以设定前置地址用于存放文件信息,Address:4Bytes+Size:4Bytes,写入的数据格式为LSB->MSB,该目的方便单片机索引访问。下图为FLASH数据排列方式,其中黄色为“前置偏移地址”预设值。
下面举例单片机如何读取jpg图片出来显示,我们先将一系列jpg图片打包好bin档并且烧录到瑞佑的RA8889下挂的FLASH芯片,单片机可以按8个字节/次读取到文件的地址和大小:
//获取图片的地址或者大小信息,共4个字节,再合并成一个数值返回unsigned long Get_Picture_Address_Size(unsigned long flash_addr){unsigned long temp;unsigned short i;unsigned int data_buffer[4]; //存放从FLASH读取出的数据Enable_SFlash_SPI();if(FLASH_BUS==0) SPIM_Select_Bus_0(); //总线BUS0else SPIM_Select_Bus_1(); //总线BUS1#ifdef OVER_128MbSelect_nSS_drive_on_xnsfcs3(); //使用CS3位置的FLASH#elseSelect_nSS_drive_on_xnsfcs2(); //使用CS2位置的FLASH#endifRA8889_SPI_Flash_WREN(); //写入使能nSS_Active();delay_us(1);SPI_Master_FIFO_Data_Put(0x03);delay_us(1);#ifdef OVER_128Mb //32bit 寻址SPI_Master_FIFO_Data_Put(flash_addr>>24);SPI_Master_FIFO_Data_Put(flash_addr>>16);SPI_Master_FIFO_Data_Put(flash_addr>>8);SPI_Master_FIFO_Data_Put(flash_addr);#else //24bit 寻址SPI_Master_FIFO_Data_Put(flash_addr>>16);SPI_Master_FIFO_Data_Put(flash_addr>>8);SPI_Master_FIFO_Data_Put(flash_addr);#endiffor(i=0;i<4;i++){data_buffer[i] = SPI_Master_FIFO_Data_Put(0xff);}temp = data_buffer[3]<<24;temp += data_buffer[2]<<16;temp += data_buffer[1]<<8;temp += data_buffer[0];nSS_Inactive();while(RA8889_SPI_Flash_RDSR()& 0x01);RA8889_SPI_Flash_WRDI();Disable_SFlash_SPI();return(temp);}
int Show_Picture(unsigned int pic_num){unsigned long pic_addr, pic_size;pic_addr = Get_Picture_Address_Size(0x0000+pic_num*8); //读取到第n个图片地址的值pic_size = Get_Picture_Address_Size(0x0004+pic_num*8); //读取到第n个图片大小的值//读取不到图片信息标志if(pic_addr==0xFFFFFFFF){return 0;}else{SPI_NOR_initial_JPG_AVI (1,0,FLASH_BUS,FLASH_CS,1);#ifdef OVER_128Mbswitch_24bits_to_32bits(FLASH_BUS,FLASH_CS);IDEC_Select_SFI_32bit_Address();#endif//RA8889显示JPG图片:JPG_NOR (pic_addr,pic_size,canvas_image_width,0,0);return 1;}}