下面的函数打印出UART寄存器的内容。这是寄存器映射。
UART寄存器
有人可以解释为什么 for 循环在+=4
上升吗?
谢谢
#define UART0_BASE 0x21000
void print_uart(unsigned int base) {
int i;
int val;
unsigned int adr;
for (i=0; i< 0x18; i+=4) {
adr = base + i;
printf("Uart %s [0x%x] -> 0x%xn",uart_reg[i>>2],adr,val);
}
}
最有可能适合每个寄存器的起始地址。由于 for 循环运行高达 0x18(24(,因此它有 6 个寄存器。寄存器可能看起来只有 16 位,但通常也有一些填充。