如下语句, 执行到这里会进入死循环。
WRITE_REGISTER_ULONG(rNFMECCD0, (DWORD)((DWORD)(eccBuf[1]<<16) | (DWORD)(eccBuf[0]&0xff)));
换成如下语句就没问题:
rNFMECCD0=(DWORD)((DWORD)(eccBuf[1]<<16) | (DWORD)(eccBuf[0]&0xff) );
其中宏如下:
#define WRITE_REGISTER_ULONG(p, v) (*(unsigned long *)(p)) = (v)
#define rNFMECCD0 (*(volatile unsigned *)0x4E000014)