后来,我在微软的官方技术支持页面上看到了《如何使用 DMA 设备配置用于 Windows CE》一文(http://support.microsoft.com/kb/299355/zh-cn),和我的实际情况完全对应,于是我完全按照该文的描述来做
1、首先我在系统的oemaddrtab_cfg.inc文件中看到如下的配置:
DCD 0x80000000, 0x30000000, 64 ; 64 MB DRAM BANK 6
DCD 0x84000000, 0x38000000, 64 ; 64 MB DRAM BANK 7 add by ww for 128MB MEMORY
if( bRetCode == FALSE )
RETAILMSG(TRUE, (TEXT("Camera: VirtualCopy() - Failed to VirtualCopy DMA buffer for Codec, and the lasterror is %d\r\n"), GetLastError()));
}
3、可是我重新运行系统的结果却是在VirtualAlloc就出错了,返回信息如下:
Camera:Virtual_Alloc() - Failed to allocate DMA buffer for Codec, and the lasterror is 8
我查文档error 8意味着“存储空间不足,无法处理此命令”
可是我明明在config.bib中预留了空间的啊
CAMERA_DMA 84000000 03000000 RESERVED
而且这还只是reserved的嘛