Programming the eTPU in C


Time is money! You can vastly shorten the learning curve by taking this eTPU training course. While we believe the live and in-person training is the best introduction to the eTPU, it is often inconvenient or just not possible to attend, so we here at ASH WARE have introduced this online, self-paced version of the course!

This is a completely comprehensive course with almost 20 hours of lectures and 10 labs for students to work through and learn from. With the online training you don't quite have immediate access to the instructor to ask questions, but you will still have access to ASH WARE's eTPU experts via email and potentially phone / online meeting as needed. We guarantee that by completion of the course you will be ready to develop eTPU software!

While you can find a detailed listing of every course session in the curriculum section below, here's a synopsis of the course by chapter:

  • Introduction and Tools Installation. Introduction and overview of the eTPU. Step-by-step installation guide of ASH WARE's eTPU/eTPU2 C Compiler (ETEC) and ASH WARE's eTPU2+ DevTool. Brief tour of the IDE including stepping, breakpoints, examining trace data, measuring pulse widths using waveform window. Brief tour of the compiler including compiling, project files, multi-file projects, command line, and library directory.
  • Channel Hardware Basics. A "C-centric" introduction to fundamental channel hardware concepts. Sampling input pin state versus detection of an edge and recording the time at which that edge occurred. Forcing an output pin to a state versus scheduling a output pin edge to occur at a particular future point in time.
  • Events and Event Handling. The eTPU is an event servicing device. Using the eTPU compiler to create an event vector table. Examine event and thread response timing diagrams to see where event servicing occurs.
  • Channel Hardware Details. Step through each of the fields used to program the channel hardware. A step-by-step guide to setting up matches and transition detection.
  • The Programming Model. Essentially a programmers' model chapter, with emphasis on context and thread issues. Key data type, function variables, explained in detail including memory map. Other miscellaneous issues.
  • Tools Usage and Host Integration. Automated testing using the IDE (simulation), including data flow, behavior verification, and code coverage. Auto-code generation in the Compiler solves two-copy problem. Example host-side drivers with auto-code generated from the Compiler.
  • Channel Hardware Modes. Explain details of match/transition and action unit A/B using the channel "mode". A problem-solving approach: "How to solve problem X? Use channel mode Y."? Includes coverage the eTPU2 User Defined Channel Mode.
  • Angle Mode/Motor Control. Angle mode hardware is a digital phase lock loop (PLL) with a software assist typically used in ICE applications. Underlying concepts and details on the software assist. The second half of the chapter reviews the new Motor Control eTPU Library from NXP.
  • Scheduler. The round robin scheduler algorithm. Calculating worst case latency. Statistical latency analyses using compiler auto-generated thread length data.

Students receive the course materials (presentation, labs, code snippets, etc.) in electronic form, and get to keep all of it for reference purposes as they develop their own eTPU applications!

Hands-on Labs


The course includes 10! labs to build your eTPU development skills. The labs use ASH WARE's eTPU2+ DevTool IDE and ETEC compiler, which produces the most efficient executable code of any tools on the market, and is used by many eTPU developers around the world. However, the learning from this course applies to any available eTPU toolset.

"Programming the eTPU in C" Curriculum



  Chapter 1 : Introduction
Available in days
days after you enroll
  Chapter 2 : Channel Hardware Basics
Available in days
days after you enroll
  Chapter 3 : Events and Event Handling
Available in days
days after you enroll
  Chapter 4 : Channel Hardware Details
Available in days
days after you enroll
  Chapter 5 : Programming Model
Available in days
days after you enroll
  Chapter 6 : Using the Tools
Available in days
days after you enroll
  Chapter 7 : Channel Hardware Modes
Available in days
days after you enroll
  Chapter 8A : Angle Mode
Available in days
days after you enroll
  Chapter 8B : Motor Control
Available in days
days after you enroll
  Chapter 9 : Scheduler
Available in days
days after you enroll

Get Started!