top | item 43808089

(no title)

OnACoffeeBreak | 10 months ago

No BIOS necessary when we're talking about bare metal systems. printf() will just resolve to a low-level UART-based routine that writes to a FIFO to be played out to the UART when it's not busy. Hell, I've seen systems that forego the FIFO and just write to the UART blocking while writing.

discuss

order

ChuckMcM|10 months ago

I hope nobody was confused into thinking I thought a BIOS was required, I was pointing out the evolution from this to a monitor. I've written some code[1] that runs on the STM32 series that uses the newlib printf(). I created the UART code [2] that is interrupt driven[3] which gives you the fun feature that you can hit ^C and have it reset the program. (useful when your code goes into an expected place :-)).

[1] https://github.com/ChuckM/

[2] https://github.com/ChuckM/nucleo/blob/master/f446re/uart/uar...

[3] https://github.com/ChuckM/nucleo/blob/master/f446re/common/u...

nonrandomstring|10 months ago

Yup, I recall Atari ST (68000) and BBC Micro (6502) having unbuffered and interrupt access to 6402 UART - which I used to C/ASM to fire MIDI bytes to and from.