9.4.3 Reference Documentation
Arm developer documentation: What is semihosting
https://developer.arm.com/documentation/dui0471/g/Bgbjjgij
Arm developer documentation: Using semihosting to access resources on the host computer
The semihosting specification:
https://github.com/ARM-software/abi-aa/releases (look for semihosting.pdf)
The easiest way to use a buffer is to use the standard C setvbuf call:
https://www.tutorialspoint.com/c_standard_library/c_function_setvbuf.htm