CEC – Debugging Real-time Embedded Software – Hands-on

Course Overview:

The greatest challenge facing embedded system developers is debugging software. Embedded systems have become very complex systems running real-time operating systems, connectivity stacks, USB, security among a wide variety of other application code. Many engineers are still debugging using only break-points which is inefficient and won’t find most problems. In this course, Jacob Beningo will walk you through modern debugging techniques for baremetal and RTOS based systems on a NXP Kinetis freedom board. Attendees will learn how to setup debugging tools and use new techniques such as system tracing.

CECDay 1 – Introduction to Debugging Real-time Embedded Systems

Developers can listen and read about debugging all day long but until they jump in and get their hands dirty its only theory. In this session, Jacob will give a high level overview of the debugging techniques available to developers today and walk them through how to setup the debug environment that will be used as a test bed through-out the remainder of the week.

Registration and Playback located here (May require login to access)

Day 2 – Foundational Debugging Techniques

There is no point in spending the time to pull out the big guns if a stick will do the job. In this session, Jacob will examine traditional debug techniques, such as proper use of printf and assert. Attendees will get hands-on experience with the approaches and also get up to speed on terminology, bug classification and tracking.

Registration and Playback located here (May require login to access)

Day 3 – Debugging ARM Cortex-M Microcontrollers

One of the most popular microcontrollers on the market, the ARM Cortex-M series has some incredible debugging capabilities that developers can quickly leverage to get through the debugging process. In this session, attendees will learn how to debug real-time issues and faults and get an introduction into RTT, SWD and SWO.

Registration and Playback located here (May require login to access)

Day 4 – Utilizing System Viewers and Trace Tools to Debug Firmware

Building on understanding of ARM Cortex-M debugging, in this session, Jacob will walk attendees through how to setup and utilize system viewers and trace tools to efficiently debug embedded systems in real-time. Attendees will walk away will new skills and techniques that will be directly applicable to help them shorten their debugging times and improve system quality.

Registration and Playback located here (May require login to access)

Day 5 – Tips and Tricks for Debugging Embedded Systems

In this session, Jacob will review the finer points of debugging an embedded systems and provide attendees with tips and tricks that will make them masters of debugging. Attendees will walk away with a half dozen or more techniques to discover memory issues, race conditions, priority inversions and other potential issues that often plague an embedded system.

Registration and Playback located here (May require login to access)

Course Resourses

  • Sign-Up for the Embedded Bytes Newsletter here
  • Embedded Software Design Techniques – An API Standard for MCU’s here
  • Doxygen C Templates Download can be here
  • EDN Blog Articles can be found here
  • YouTube video – FreeRTOS Setup with TrueStudio and NXP K64F Freedom Board can be found here
  • YouTube video – Setting up Statistical Profiling in Atollic TrueStudio can be found here

Course Source Code Download

Course materials can be found on the Insights page located here. The material includes

  • SystemView Project Files – K64F and TrueStudio Lite
  • FreeRTOS Baline Project Files – K64F and TrueStudio Lite

Atollic TrueStudio Pro – 6 Month License Raffle

Enter the drawing by entering your contact information into the form below. On Friday, July 15th at 5 P.M. PDT I will randomly select the winner.

No Fields Found.

Share >

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.