Course Overview:

One of the greatest challenges facing development teams today is preventing and managing their software bugs. On average, development teams spent at least 40% of their time debugging! For an average development project (1 year), that’s 4.8 months! There are many techniques that developers can follow to dramatically decrease their debug efforts which can result in decreased development costs, faster times to market, a less stressful work environment and more time to focus on product differentiation and features. In this course, attendees will learn the strategies necessary to minimize, prevent and manage software defects while also learning how to quickly and efficiently troubleshoot their systems when bugs do squeak through. Each attendee will assess their own defect management capabilities and will develop an action plan to follow that will improve their skills.

Attendees will also get a hands-on approach as we examine microcontroller hardware and interfaces such as SWD, ITM and the ETM. We will examine traditional debugging techniques such as printf and assertions in addition to examining cutting edge real-time techniques such as OS aware debugging, tracing and deep insight analysis.

The techniques used in this course can be applied to nearly any embedded system and hardware setup.

Who Should Attend?

Attendees are engineers and engineering managers who are interested in getting a handle on the amount of time spent debugging their microcontroller based embedded systems. Attendees should understand the fundamentals of the C programming language. Advanced concepts are reviewed as they apply.

Hardware and Software:

This course is designed to allow developers dramatically decrease the time they spend debugging. While there will be a focus on the development strategies to follow to accomplish this, each session will accompany a hands-on tactical example to accomplish the strategy. The examples in this course are designed to be usable with any RTOS and platform.


The course consists of the following sessions:

  • Session 1 – Managing Defects
  • Session 2 – Modern Debugging Techniques and Interfaces
  • Session 3 – Understanding Basic Debugging Techniques
  • Session 4 – Employing the ITM
  • Session 5 – The Serial Wire Viewer
  • Session 6 – Data Tracing, Profiling and Deep Insight Analysis
  • Session 7 – Using Trace to Understand your Application

Developers can easily use any hardware of their choosing, however, all the examples in the course will use the following hardware and software:

  • FreeRTOS
  • ARM Cortex-M Processor
  • ST Microelectronics STM32
  • Atollic TrueStudio IDE w/ ARM Toochain
  • Percepio Tracealyzer
  • SEGGER SystemView
  • Micrium uC Probe

Key Take-a-ways:

  • How to strategically evaluate a developer/team’s debugging capability and how to generate an action plan to decrease debug time.
  • The tactics experts employ to minimize the time spent debugging embedded software
  • The modern interfaces, tools and software that can be used to debug a system
  • The different techniques that can be used to debug an embedded system
  • How to setup and use the ITM
  • How to monitor memory and data in real-time with minimal overhead
  • Techniques for tracing application code to find problems quickly
  • How to identify and resolve common RTOS application issues
  • Example code and test hardware platform
  • Best practices for managing and preventing application defects

The course is taught in a convenient, hands-on style that provides developers with ample time to not just absorb the material but begin to apply it. The course is offered in several different formats that can be found below:

Attendees not only get access to the course materials and recordings but will have access to materials in perpetuity including any updates. Attendees are always welcome to attend the course again to refresh or brush up on their skills at no additional cost.

Live Online Course with Self-Paced Access – $750 (Early Bird)

Course Sessions Overview:

Session 1 – Managing Defects

  • Defining Bugs, Errors, Defects
  • Bug Classification, Severities and priorities
  • Bug life cycle
  • Bug prevention strategies
    • Coding standards
    • Style guides
    • Code reviews
    • Tips and tricks
    • General strategies
  • assessing your development process
  • strategic action plan development
  • Best Practices

Session 2 – Modern Debugging Techniques and Interfaces

  • The debugging process
  • Invasive vs noninvasive debugging
  • Techniques Overview
  • Technique assessment
  • Action plan development
  • arm Cortex-M Debugging Overview
    • SWD
    • ETM
    • DAP
    • JTAG
    • ITM
  • The role of debuggers
  • Selecting the right debugger

Session 3 – Understanding Basic Debugging Techniques

  • Break-points and watchpoints
    • Software, hardware and flash
    • Understanding breakpoint unit hardware
  • Utilizing printf
    • Typical implementations
      • Blocking versus non-blocking
    • Real-time and memory impacts
    • Use strategies and issues
      • Speed
      • DMA
    • Assertions
      • Pros
      • Cons
      • Implementation
      • Example uses
    • Best Practices

Session 4 – Employing the ITM

  • ITM Overview
  • Configuration and setup
  • Optimizing printf
  • Use cases
  • Best Practices

Session 5 – The Serial Wire Viewer

  • SWV Overview
  • Setup and Configuration
    • Clocks
    • PC sampling
  • The serial console
  • SWV Trace Log
  • Statistical profiling
  • Best Practices

Session 6 – Data Tracing, Profiling and Deep Insight Analysis

  • Data Tracing Overview
  • Real-time Data Tracing
    • ITM
    • SWV
  • Visualizing data using uC Probe
  • Introduction to Deep Insight Analysis
    • OS Aware Debugging
    • Application Tracing
    • Instruction tracing
  • Best Practices

Session 7 – Using Trace to Understand your Application

  • Setting up and using RTT
  • Introduction to SystemView
  • Introduction to Tracealyzer
  • Measuring task timing
  • Detecting application issues
  • Instruction Tracing
  • Best Practices

For questions, please feel free to contact Jacob directly at [email protected].

Live Session Schedule:

  • Session 1 – September 20th, 2018 1:00 P.M. ET
  • Session 2 – October 4th, 2018 1:00 P.M. ET
  • Session 3 – October 18th, 2018 1:00 P.M. ET
  • Session 4 – November 1st, 2018 1:00 P.M. ET
  • Session 5 – November 15th, 2018 1:00 P.M. ET
  • Session 6 – November 29th, 2018 1:00 P.M. ET
  • Session 7 – December 14th, 2018 1:00 P.M. ET

For combined rates and to register for a public or private course, contact Jacob at

Jacob worked with us at Renesas on multiple projects, ranging from series of technical articles, videos, technical training & webinars. Jacob is very good at communicating in-depth technical details as well as the big picture perspective, always delivers high quality content on time, and is a pleasure to work with. SEE MORE >>

Jacob Beningo conducted a 5-session hands-on class on the fundamentals of microcontrollers for EETimes University, that was sponsored by STMicroelectronics. His success in leading the class was amply demonstrated in the outstanding participant engagement during the sessions and in their comments and feedback afterwards.. SEE MORE >>

See More Testimonials