Loading...
 
Skip to main content

System Workbench for STM32


initialise_monitor_handles causes SIGTRAP

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?

Tunisia

Yes, this incomplete configuration is to enable semihosting (not SWO/SWV) :
you have missed the : -lc -lrdimon
the complete linker flags are :

Copy to clipboard
-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 :

Copy to clipboard
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