initialise_monitor_handles causes SIGTRAP Posted by cbenson on 2016-02-10 21:01 I am trying to use SWO/SWV on a STM32F429i-Disco. My Linker flags are : -specs=nosys.specs -specs=nano.specs -specs=rdimon.specs -u _printf_float Debugger Startup flags: monitor reset halt arm semihosting enable What have I missed?
Posted by tarek bouchkati on 2016-02-11 11:42 Yes, this incomplete configuration is to enable semihosting (not SWO/SWV) : you have missed the : -lc -lrdimon the complete linker flags are : -specs=nano.specs -u _printf_float -specs=rdimon.specs -lc -lrdimon -specs=nano.specs -u _printf_float -specs=rdimon.specs -lc -lrdimon To use SWO/SWV: in syscalls.c, add #include “stm32f4xx.h” (depends on your device) & (you should include CMSIS folder) and modify the _write function : int _write(int file, char *ptr, int len) { int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) { ITM_SendChar( *ptr++ ); } return len; }x int _write(int file, char *ptr, int len){ int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) { ITM_SendChar( *ptr++ ); } return len;} After that, you can use printf to output message via printf. To visualize the ITM output, you can use ST-Link Utility (menu : ST-LINK > Printf via SWO Viewer) Best Regards, Tarek