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()
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
|