The ITM can be used to redirect `printf()` function calls. This allows a `printf()` style debugging capabilities on an embedded platform, which typically doesn't have a standard terminal window for output.
The ITM is part of the Coresight debugging and trace system, shown in the right of the below diagram.
printf() ultimately relies on the function
fputc() to do the low-level character outputting. So this is the function we are going to replace. The following code shows the re-definition of
Note that the passed in file argument
f is ignored altogether.
ITM_SendChar() is a Cortex-M3 function provided by ARM and is defined in
core_cm3.h. The declaration of it is shown below (for reference purposes).
This work is licensed under a Creative Commons Attribution 4.0 International License .