以下功能打印出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%x\n",uart_reg[i>>2],adr,val);
}
}
答案 0 :(得分:0)
最有可能适合每个寄存器的起始地址。因为for循环运行到0x18(24),所以它使6个寄存器。可能看起来寄存器只有16位,但通常还有一些填充。