Skip to content
CEC Semenster Undefined

Embedded System Design Techniques - Writing Portable and Robust Firmware in C

Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
August 31,
2015
Portable C Concepts
This session will introduce a subset of the C language and design techniques that are suitable for writing portable code. An STM32 Nucleo development kit utilizing a Cortex-M0+ will be used for example code. Attendees will walk away from this session with the knowledge of how to design software that can be reused through APIs and HALs.
Course Resources
Special Educational Materials
Listen/Download Archive (mp3)
September 1,
2015
Doxygen and PC-Lint
In a fast paced environment, properly documenting and checking code for errors often goes ignored but they are absolutely critical to robust product design. This session will examine how to use Doxygen to document code and also generate the code documentation for the developer. PC-Lint configuration and utilization will also be examined. Attendees will walk away with a deep understanding of how to use these two crucial development tools.
Course Resources
Special Educational Materials
Listen/Download Archive (mp3)
September 2,
2015
UART Driver and STM32CubeMx
This session will examine how to create a UART driver that will be used in later sessions with printf and assert. Driver development can be greatly accelerated by using available vendor tools such as the STM32CubeMx toolset. The tool will be examined in detailed as part of the driver development exercise. Attendees will walk away with software examples on how to create a UART driver and an understanding of the STM32CubeMx tool.
Course Resources
Special Educational Materials
Listen/Download Archive (mp3)
September 3,
2015
ASSERT and printf
The ASSERT macro is a critical component of embedded software development but an often under implemented and misunderstood tool. Using printf has also held a stigma that often leaves devlopers confused and hesitant. This session will walk attendees through how to setup these two tools and use them properly to help improve the reliability of their embedded system.
Course Resources
Special Educational Materials
Listen/Download Archive (mp3)
September 4,
2015
Robust Firmware Concepts
There are many concepts that can be used to help increase the robustness of embedded software. This session will review a wide variety of them. An in depth look at watchdog design, stack monitoring and memory management will be explored. Attendees will walk away with the ability to implement a reliable watchdog and perform essential checks such as RAM and ROM testing.
Course Resources
Special Educational Materials
Listen/Download Archive (mp3)
Instructor
Jacob Beningo
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software

Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 300 articles on embedded software development techniques, has published several books, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan.