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
[解决办法]
你要先映射之后,在保留这段空间不要使用.自己设置.
后便你就可以操作.....
这个我也在学习.....
高手们,给点详细讲解..