Hi, this patch series implements semihosting as done in the golden Infineon simulator 'TSIM'. 'TSIM' supports different semihosting variants, specific to various toolchain vendors. Only the GNU toolchain with Newlib [1] is freely available, thus I only implemented semihosting for GNU. This port of Newlib is also available in the 'debian-tricore-cross.docker' image.
To build and run a binary with semihosting, one only has to link against libos, i.e. tricore-gcc test.c -los -o test.elf qemu-system-tricore -M tricore_testboard -semihosting -nographic -kernel test.elf Cheers, Bastian [1] https://github.com/bkoppelmann/package_940/tree/main/newlib/libgloss/tricore Bastian Koppelmann (6): target/tricore: Add semihosting stub target/tricore: Add read and write semihosting calls target/tricore: Add lseek semihosting call target/tricore: Add close semihosting call target/tricore: Add open and creat semihosting calls target/tricore: Enable semihosting configs/devices/tricore-softmmu/default.mak | 1 + docs/about/emulation.rst | 3 + qemu-options.hx | 3 +- target/tricore/helper.h | 1 + target/tricore/meson.build | 1 + target/tricore/translate.c | 13 +- target/tricore/tricore-semi.c | 380 ++++++++++++++++++++ 7 files changed, 399 insertions(+), 3 deletions(-) create mode 100644 target/tricore/tricore-semi.c -- 2.42.0