An Introduction to Embedded Software

Course Description

The proliferation of smart devices such as sensors, smart grids, mobile devices and more is resulting in a plethora of new technologies with microprocessors at their heart.  Each of these systems uses embedded software to initialize, run and maintain the system.


This course is designed for both newbies and experienced engineers looking to get a new understanding or a refresh on the fundamentals of writing embedded software.  This course takes a hands on approach of tying key concepts with real world practice in the class room with a cutting edge Arm M0+ processor.  A survey of key C language features and how they are used to run real hardware is explored.  Project organization, pitfalls and tips are all presented to allow the attendee to get an embedded system up and running correctly in the least amount of time.

What's Included

This course includes

  • One day of hands on training with four two hour online sessions
  • Recording of the course session(s)
  • Move at your own pace!
  • Freescale Kinetis-L ARM M0+ Development Board (purchased separately for $13)
  • Course manual with presentation material
  • Hands on lab exercises, code and tutorials
  • Embedded C Coding Standard (Beningo Style)
  • Access to white papers, tips and tricks
  • Non-Commercial License for Beningo Engineering Kinetis-L Driver Framework


This course costs $100.  Plus the purchase of a Kinetis-L Freedom Board for $13.

Course Details

Overview of Embedded Systems

  • What are they?
  • How are they used?
  • What makes up an embedded systems?

Introduction to Development Boards and MicroControllers

  • A guide to development kit selection
  • Development board features
  • A look at the Kinetis-L ARM M0+
  • Hands on Experiment
Writing Embedded Software in C
  • A review of pointers
  • Functional vs Object Oriented Programming
  • Understanding program scope and the use of static
  • Using volatile in driver design
  • Understanding what const actually does
  • C Language tips and best practices
  • Hands on Experiment
Project Organization, Structure and Best Practices
  • Coding Standards and why you want one
  • How to organize a project with reuse in mind
  • Adopting and using APIs
  • Commenting and Documenting code
  • Templates and Doxygen
  • Hands on Experiment
Scheduling and Real-Time Programming
  • Scheduling Paradigms
  • Function pointers
  • Cooperative Scheduling
  • Real-time scheduling with RTOS
  • Hands on Experiment

 Order Now using the TRAINING ORDER FORM