理解uart注册索引

时间:2017-04-11 08:12:20

标签: c cpu-registers uart

以下功能打印出UART寄存器的内容。这是寄存器映射。

uart registers

有人可以解释为什么,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);
  }
}

1 个答案:

答案 0 :(得分:0)

最有可能适合每个寄存器的起始地址。因为for循环运行到0x18(24),所以它使6个寄存器。可能看起来寄存器只有16位,但通常还有一些填充。