CEC – Getting Started Developing Professional Embedded Software

Course Overview:

Many embedded software engineers get their start as electrical engineers who get hooked on twiddling bits. They get a taste of life in the software lane and never look back. The problem is that without a traditional background in computer science or software design, converted embedded software engineers lack many fundamental skills in software architecture, C programming, real-time systems, software project management and analysis. In this course, we are going to fill the gaps in knowledge such as how to setup and use revision control, make informed decisions on how to select the right tools and processors, how to get a clean project setup with assertions, printf and debugging tools from Day 1 rather than when a problem needs to be debugged. We will explore documentation and how to design our own hardware abstraction layers in order to maximize code reuse and decrease time to market.

CECDay 1 – Electrical Engineers, Computer Scientists and the Science of Selecting Microcontrollers

Selecting the right microcontroller for a product can be difficult into today’s development environment. Traditionally, microcontrollers are selected based on their electrical characteristics but given the software centric development environment, doing so is a recipe for disaster. In this session, we’ll explore how to select a microcontroller using the perspectives of both electrical and software engineers. In addition, attendees will walk away with an understanding of critical concepts that are required when starting to develop embedded software.

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

Day 2 – The tools of the trade

Having the right tool for the job is critical in any job but especially so for embedded software developers. In this session, we will explore important tools such as compilers, optimization, programming languages along with analysis tools. Attendees will walk away for an understanding how open source and commercial tools compare in performance, efficiency and cost and which tradeoffs are most appropriate.

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

Day 3 – Managing firmware projects

In this session, attendees will explore the latest methods and technologies available to properly manage an embedded software project. Attendees will walk away with an understanding of estimating development times, managing features, integrating IDEs and managing revision control.

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

Day 4 – Creating an embedded workbench

Starting a project right can determine whether it is poised for success or failure. Rarely do development teams start with all the right resources configured in their software project. In this session, we will setup an embedded workbench, a baseline project that can be used to develop embedded software. The project will include hooks that should be put into a project, baseline code analysis and metric recommendations, setting up assertions, printf and trace along with the creation of documentation templates.

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

Day 5 – Software architecture, HALs and best practices

The way that firmware is developed is beginning to change at a rapid rate. Designing a scalable software architecture that ties into a hardware abstraction layer can greatly improve reusability which in turn decreases development costs and time market. In this session, attendees will walk away with tips, trick and best practices for scaling their embedded software workbench to develop reusable embedded software.

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

Leave a Reply

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