/* See LICENSE of license details. */ #include "platform.h" #include "weak_under_alias.h" #include #if defined(SEMIHOSTING) #include "semihosting.h" #endif #if defined(BOARD_hifive1) static volatile uint32_t tohost; static volatile uint32_t fromhost; #else extern volatile uint32_t tohost; extern volatile uint32_t fromhost; #endif void write_hex(int fd, uint32_t hex); void __wrap_exit(int code) { /*#if defined(SEMIHOSTING) sh_exit(); return; #endif*/ // volatile uint32_t* leds = (uint32_t*) (GPIO_BASE_ADDR + GPIO_OUT_OFFSET); const char message[] = "\nProgam has exited with code:"; //*leds = (~(code)); write(STDERR_FILENO, message, sizeof(message) - 1); write_hex(STDERR_FILENO, code); write(STDERR_FILENO, "\n", 1); tohost = code + 1; write(STDERR_FILENO, "\x04", 1); for (;;) ; } weak_under_alias(exit);