AnsweredAssumed Answered

Need to runtime execution times when running FreeRTOS on F446

Question asked by Harvey White on May 14, 2018
Latest reply on May 16, 2018 by Harvey White

I have a relatively complex FreeRTOS application running.  I need to see run time information more detailed than the "by task" that I've gotten working.  It's on a Nucleo 64 board, Atollic TS latest.


From what I've read, SWV, and SWD and so on will do the job if I insert printf to the SWO port instructions.  Been through about 4 hours of "it's really easy, just click, click, and then you're fine" youtube videos which make certain assumptions.


First question.  I have SWV enabled, loads the program and debugs it. 

Did NOT use TMS and TCK for anything.  DID use SW0 (PB3) for another function.  Since that goes to a CPLD, I can swap a pin or so and get PB3 back to the SWO function.  What other pins do I need to get the more detailed tracing running?  I thiink no extra ones are needed.  I'm using the built in ST-LINK debugger.


I've gotten the code macros put in for at least one monitor point    


ITM_SendChar( 33 );   //  Send ASCII code 65 = ’A’



for example.  But recording doesn't get anything, which would make sense if the SWO pin has been borrowed.  Saw a bunch of things about enabling the functions in Cube32, but not everything matches the blogs/videos.  SYS is set up to enable serial wire debugging, but both of the system wakeup events are disabled.


So is switching out the one line going to work?  It's still going to be connected to the CPLD, but that's going to be an input/ignored/weak-pullup at worst.


I did not see a "how to" with specific mention of "you need these pins, etc....


Any thoughts?