Forum: 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 :

 
-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 :

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