I have a small project that I added my own custom debug functions to so I could have some extra functionality. They have been working great, and use the following method to send the data:
while(*bp)
ITM_SendChar(*bp++);
I finally got around to switching over all the printf statements to use my own function and all the output just stopped. A little playing around and I figured out as long as I have one single printf function compiled in, no matter where, ITM_SendChar works right out the gate.
It would seem there is some functionality compiled in when printf is used in the project that allows ITM_SendChar to work.
It is not a huge deal but I am fairly curious as to why this is. Is there perhaps another way to initialize the ITM (Instrumentation Trace Macrocell) system without having to stick in a dummy printf?