|
我在读写GPIO的时候遇到了一个很奇怪的问题。
以下程序中,GPECON的内容可以正确读写,GPEDAT却总是很奇怪的数值。
百思不得其解,大家能否帮我看一下?
代码如下:
v_pIOPRegs = (volatile IOPreg*)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
if (v_pIOPRegs == NULL)
{
DEBUGMSG (1,(TEXT("v_pIOPRegs is not allocated\n\r")));
return TRUE;
}
if (!VirtualCopy((PVOID)v_pIOPRegs, (PVOID)IOP_BASE, sizeof(IOPreg), PAGE_READWRITE|PAGE_NOCACHE)) {
DEBUGMSG (1,(TEXT("v_pIOPRegs is not mapped\n\r")));
return TRUE;
}
v_pIOPRegs->GPECON=0x141; //可以正确读写
v_pIOPRegs ->GPEDAT=0x0;//执行过后GPEDAT是一个很奇怪的数值,好像是65504。
|
|