Replacing printf; Effective Debugging Techniques for Arm Microcontrollers
Debugging microcontrollers can be a challenging task, especially when trying to diagnose runtime issues. Probably the most popular method for debugging is the use of print statements, such as printf, to output information to a console. However, the overhead of using printf can impact the system's performance and may not be suitable for all situations. In this talk, we will review the use and overhead of printf for runtime debugging and introduce alternative techniques using Arm Coresight. Specifically, we will explain the ITM and ETM options available in Arm Coresight and describe the ITM architecture. We will also differentiate between JTAG and SWO debugging on the Arm Cortex-M series and cover basic SWO output. Finally, we will introduce an open-source tool that provides expansive runtime diagnostics for microcontrollers. By the end of this talk, attendees will better understand the various debugging options available for microcontrollers and how to use them in their projects effectively.