a天堂国产 I 久久图片 I 91精品高清 I 亚洲人人玩人人添人人 I 婷婷伊人五月色噜噜精品一区 I 亚洲第一页夜 I 91日韩精品视频 I 无码人妻在线一区二区三区免费 I www.五月婷婷.com I 国产精品久久久久亚洲影视 I 91久久精品一二三 I 国产ts一区 I 91精品乱码久久蜜桃 I 成人免费观看高清 I 久久久久久国产精品免费无码 I 久久免费少妇高潮99精品 I 国产探花在线免费观看 I 亚洲精品少妇 I 亚洲综合成人亚洲 I 欧美区一区二区 I 手机福利视频 I 亚洲欧美综合另类自拍 I 久久精品视频免费播放 I 亚洲精品久久 I av免费在线免费观看 I 亚洲热综合 I 中文字幕无码专区人妻制服 I 午夜免费一区二区 I 在线亚洲精品国产一区麻豆 I 久久精品免费在线观看 I 全国最大成人网 I 亚洲欧美经典视频 I 手机av在线看 I 偷拍视频一区二区三区 I 吃奶摸下激烈视频学生软件

以文本方式查看主題

-  曙海教育集團論壇  (http://m.022-oo.cn/bbs/index.asp)
--  WinCE應用開發  (http://m.022-oo.cn/bbs/list.asp?boardid=35)
----  開帖討論WINCE下24位色顯示瓶頸  (http://m.022-oo.cn/bbs/dispbbs.asp?boardid=35&id=1798)

--  作者:wangxinxin
--  發布時間:2010-11-26 9:18:52
--  開帖討論WINCE下24位色顯示瓶頸
最近在搞24BPP顯示,搞不定,主要是切換圖片會慢
有搞過的朋友,指點指點




24BPP圖片顯示慢的原因:讀寫內存的速度限制
16BPP 30-40ms之間
另外,輸出24BPP圖片好像有經過二次轉化,16BPP就轉化一次
即16BPP輸出圖片,只要一次寫LCD Buffer
24BPP好像是將3字節排列的源文件圖片,轉化為4字節格式的保存在中轉地址,然后從中轉地址轉化成最終顯示圖片,寫入LCD buffer,而第二次的LCD buffer地址可能為unchche的,將其cache一下,和16BPP的顯示速度就相當了


例如:
Volatile int x,y;
for(y=0;y<272;y++)
{
for(x=0;x<480;x++);
}

實測用時:14.3ms!!!其中,變量是放在堆棧中,對變量的處理時間:(STR*3+LDR*4)*272*480=14.30ms-1.94ms=12.36ms

反匯編如下:
.text:10001134 SUB SP, SP, #8
.text:10001138 MOV R2, #0
.text:1000113C STR R2, [SP,#8+var_4] //y值存堆棧[SP,#8+var_4]
.text:10001140 B loc_10001170
.text:10001140
========================循環開始========================
.text:10001144 ; ---------------------------------------------------------------------------
.text:10001144
.text:10001144 loc_10001144 ; CODE XREF: LCD_TST+44j
.text:10001144 STR R2, [SP,#8+var_8] //x值存堆棧[SP,#8+var_8]
.text:10001148 B loc_10001158
.text:10001148
.text:1000114C ; ---------------------------------------------------------------------------
.text:1000114C
.text:1000114C loc_1000114C ; CODE XREF: LCD_TST+2Cj
.text:1000114C LDR R3, [SP,#8+var_8] //從堆棧取出x
.text:10001150 ADD R3, R3, #1 //x++
.text:10001154 STR R3, [SP,#8+var_8] //x值存入堆棧
.text:10001154
.text:10001158
.text:10001158 loc_10001158 ; CODE XREF: LCD_TST+14j
.text:10001158 LDR R3, [SP,#8+var_8] //堆棧取出x
.text:1000115C CMP R3, #0x1E0 //x<480?
.text:10001160 BLT loc_1000114C //x<480則跳到114C處
.text:10001160
.text:10001164 LDR R3, [SP,#8+var_4] //取出y
.text:10001168 ADD R3, R3, #1 //y++
.text:1000116C STR R3, [SP,#8+var_4] //y存入堆棧
.text:1000116C
.text:10001170
.text:10001170 loc_10001170 ; CODE XREF: LCD_TST+Cj
.text:10001170 LDR R3, [SP,#8+var_4] //從堆棧取出y
.text:10001174 CMP R3, #0x110 //y<272?
.text:10001178 BLT loc_10001144 //y<272,則跳到1144處
.text:10001178
====================循環結束============================
.text:1000117C ADD SP, SP, #8
.text:10001180 BX LR