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