|
#define READ_REG(a) (*(volatile unsigned short far*)(a))
printf("HCONFIG = %#x\r\n", READ_REG(HCONFIG));
printf("PCONFIG = %#x\r\n", READ_REG(PCONFIG));
printf("SCLOCK = %#x\r\n", READ_REG(SCLOCK));
printf("VER = %#x\r\n", READ_REG(VER));
得到的结果是
HCONFIG = 0x101
PCONFIG = 0x671
SCLOCK = 0x671
VER = 0x671
但正确的应该是这样的:
HCONFIG = 0x101
PCONFIG = 0x671
SCLOCK = 0x3
VER = 0x44
如果我只printf一个寄存器的内容,结果是OK的,如:
printf("SCLOCK = %#x\r\n", READ_REG(SCLOCK));
结果是:
SCLOCK = 0x3
但是同时连续printf时却出现问题了。为什么呢? |
|