UART的一些寄存器
UART支持非侵入性的仿真访问(non-intrusive emulator access),即仿真器可以访问UART但是不能改变UART任何寄存器的值。
- 仿真控制寄存器 emulation control register (URPECR)
仿真控制寄存器的FREE位决定了在仿真环境下,UART如何对仿真操作进行相应。如果FREE位为0,并且UART正在进行数据传输,则UART将会在一个字传输完毕后停止;如果FREE位为0,并且UART没有在传输数据,则UART马上停止;如果FREE位为1,则UART不会停止。
- 分频数锁存寄存器(URDLM和URDLL)
URRBR, URTHR和URDLL 共享同一个地址。当URLCR寄存器的DLAB位为1时,所有对该共享地址的访问均访问的是URDLL;当URLCR寄存器的DLAB位为0时,对该共享地址的读操作将访问的是URRBR(receiver buffer register),对该共享地址的写操作访问的将是URTHR(transmitter holding register)。
URIER和URDLM共享同一个地址。当URLCR寄存器的DLAB位为1时,所有对该共享地址的访问均访问的是URDLM;当URLCR寄存器的DLAB位为0时,所有对该共享地址的访问均访问的是URIER(interrupt enable register);
另外,URDLM和URDLL也拥有自己的专属地址,如果你使用它们的专属地址的话,则可以将URLCR寄存器的DLAB位清零,使共享地址默认的指向URRBR,URTHR和URIER这三个寄存器。