当前位置: 代码迷 >> WinCE >> Eboot下直接操作内存解决方案
  详细解决方案

Eboot下直接操作内存解决方案

热度:64   发布时间:2016-04-28 13:17:09.0
Eboot下直接操作内存
从内存中挖走32M留给显存用,在g_oalAddressTable中没进行映射这32M的内存。所以在Eboot我想通过直接操作物理内存来显示LOGO,现在有点不清楚怎么操作这个
如显存开始的地址为0x9E000000,我这样memset((UINT8*)((UINT32*)0x9E000000),0x9C,0x20000);操作怎么不成功

求助~~~~~~~~~~~

------解决方案--------------------
1. g_oalAddressTable 必須指定 0x9E000000 這 32M 的 Memory.

2. 用 OALPAtoVA(0x9E000000, FALSE); 將 Physical Address 轉為 Uncachable Virtual Address.

3. 用該 Virtual Address 作為 memset 及填圖的 framebuffer address.

Paul, Chao @ Techware

------解决方案--------------------
2楼的前提是 0x9E000000是指的物理地址,
楼主如果这里的0x9E000000是指的cachable虚地址。得到Uncachable的虚地址 ,只需加0x20000000偏移量,另外EBOOT的bib,最好也把这段内存申明RESERVED
------解决方案--------------------
你要先映射之后,在保留这段空间不要使用.自己设置.
后便你就可以操作.....
这个我也在学习.....
高手们,给点详细讲解..
  相关解决方案