SuperIC社区_
标题: 【MSD3463】【MMAP调整之BMP_START计算方法】 [打印本页]
作者: jayden 时间: 2017-3-16 19:48
标题: 【MSD3463】【MMAP调整之BMP_START计算方法】
MSD3463 MMAP调整之BMP_START计算方法
MSD3463为了节省DDR空间,现在采用的是Dynamic Bitmap的方法来存放UI里面的图片素材,也就是MMAP中的BMP_START。Dynamic bitmap 是将UI里面的图片素材压缩掉以节省空间。
一 UI工具设置方法参照skintool工具文件夹中《SkinTool_LZMA_User_Guide.txt》,修改SkinTool.ini和ZUI.xml相应位置的属性,使使用V3.2.1.3或以上版本 skingtool 重新编译ZUI_bitmap.bin,并将生成的bin改名成code中引用的名字,例如公版的:ZUI_bitmap_SW_LOAD.bin。
二 BMP_START计算方法计算BMP_START空间大小:
BMP_START = ZUI_bitmap.bin大小 + 解压缩出来最大张的图的大小 + temp buffer (67KB)
A . ZUI_bitmap.bin大小——直接看\tv-ap\dvb\ui2\res1366x768x565\osdcomposer\osdbin下编译生成的bin的大小,单位为字节(公版目前是275KB)。
B.解压缩出来最大张的图的大小可以在下面这个函数中添加打印,在开机的时候会打印出所有的图片大小,选最大的值即可,公版目前最大值是0x1B6C0 (109KB)。
BMPHANDLE msAPI_OCP_GenerateBitmapHandle_SDRAMEx()
(, 下载次数: 329)
C. 调整code里的buffer定义
根据公版实际目前情况,BMP_START的大小计算为:
MMAP中BMP_START = 275KB + 109KB + 67KB = 451KB ,所以MMAP中BMP_START空间大于等于这个值即可,目前公版预留了1MB
在code中还有如下两处需要根据上面的结果来一起修改:
#define BMP_TMP_BUFFER_OFFSET 0x4B000 //大于等于编译出来的ZUI_bitmap.bin的大小,公版是275KB,但是//预留了300KB
#define BMP_TMP_BUFFER_SIZE 0x1C000 //上面第2点打印出来的最大张图片的大小,公版最大图片是0x1B6C0
欢迎光临 SuperIC社区_ (/) |
Powered by Discuz! X3.3 |