阅读:1798回复:1
pxa270 在wince5.0下的应用程序直接访问物理地址
小弟想在wince5.0下直接用应用程序访问物理地址,直接用VirtualAlloc函数分配800 0000对应的虚拟地址,同时也在应用程序下把gpio78配置成了ncs2,但是不管怎样,总是读不到数据,且连ncs2都打不到波形啊!不知道有没有谁做过类似的改装,给点建议吧,谢谢了!
|
|
沙发#
发布于:2010-04-04 09:27
配置ncs2的代码如下
void ConfgnCS2() { BOOL RetValue = TRUE; IOPreg * v_pIOPregs; v_pIOPregs = (IOPreg *)VirtualAlloc(0, sizeof (IOPreg), MEM_RESERVE, PAGE_NOACCESS); if (v_pIOPregs == NULL) { ERRORMSG(1,(TEXT("For IOPregs : VirtualAlloc failed!\r\n"))); RetValue = FALSE; } else { v_pIOPregs = (IOPreg *)0xA4500064;//IOP_BASE;//0xB1600000; } if (!RetValue) { if (v_pIOPregs) { VirtualFree((PVOID) v_pIOPregs, 0, MEM_RELEASE); } v_pIOPregs = NULL; } //Congfig GPIO78 as nCS2 v_pIOPregs->GAFR2 &= ~(3 << 28); v_pIOPregs->GAFR2 |= 3 << 28; } 分配内存的代码如下: void InitMem() { BOOL RetValue = TRUE; v_pMEMreg = (MEMreg *)VirtualAlloc(0, sizeof (MEMreg), MEM_COMMIT, PAGE_READWRITE); if (v_pMEMreg == NULL) { ERRORMSG(1,(TEXT("For MEMregs : VirtualAlloc failed!\r\n"))); RetValue = FALSE; } else { v_pMEMreg = (MEMreg *)(MEMCS2_BASE+CACHED_TO_UNCACHED_OFFSET);//0x96B00000; } if (!RetValue) { if (v_pMEMreg) { VirtualFree((PVOID) v_pMEMreg, 0, MEM_RELEASE); } v_pMEMreg = NULL; } } 小弟以前做2440的时候,就是这样把GPIO配置成功的啊,怎么270就没反应呢? |
|