On Monday, March 18th, 2024 at 1:08 PM, Ron Natalie <ron(a)ronnatalie.com> wrote:
The other problem with the DZ is it was one interrupt
per character if I
recall.
Thte DH you could get multiple (output) characters per interrupt.
Greatly decreased the load on the system.
I do remember the KL kernel prints were not interrupt driven so the
system pretty much froze while the kernel printfs were being output.
There was a comment on the code saying this was “Not for idle chit
chat.”
Yep, synchronous code that writes a character at a time to the transmit register then
spins on a status bit awaiting transmit complete, or something like that. I adapted the
V6 kernel printf to a RISC-V board I was working on the past year to have a trustworthy
print mechanism, only caveat being the transmitter status register was a dirty filthy liar
and wouldn't flip the bit on transmit, so just had to put a delay, which it turns out
all of the BSDs currently also do for Ti 16550-family UARTs as well.
- Matt G.