<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇Win CE 專區(qū)WinCE應(yīng)用開發(fā) → 開帖討論WINCE下24位色顯示瓶頸


      共有8503人關(guān)注過本帖樹形打印

    主題:開帖討論WINCE下24位色顯示瓶頸

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    開帖討論WINCE下24位色顯示瓶頸  發(fā)帖心情 Post By:2010-11-26 9:18:52

    最近在搞24BPP顯示,搞不定,主要是切換圖片會慢
    有搞過的朋友,指點指點




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


    例如:
    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
    ========================循環(huán)開始========================
    .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
    ====================循環(huán)結(jié)束============================
    .text:1000117C ADD SP, SP, #8
    .text:10001180 BX LR



    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    開帖討論WINCE下24位色顯示瓶頸








    簽名