$99 (25% Off MSRP $129.99)

An account already exists with this email address. Is this you?

Sign in

Expert C Programming Techniques for Embedded Developers

This technology primer includes 52 blogs and 12 videos to guide developers through C programming techniques for robust, production systems. 

The C programming language continues to be one of the most widely used languages in embedded systems design. Despite its popularity, C is no longer taught at universities and most industry courses just teach the fundamentals. There's no good source for developers who want to take their C programming skills to the expert level in a practical way that can be used even in robust embedded systems. 

This technology primer is designed to provide developers expert tips, tricks and insights about how to use C to build real-time embedded systems. The primer will include a weekly blog, expert tip to immediately apply in the design cycle and a monthly video that goes deeper on several expert topics. 

This technology primer includes Video topics such as:

  • Developing Expert C Programs
  • Implementing Real-Time Assertions
  • Writing a Baremetal Cooperative Scheduler
  • Writing a portable and maintainable command parser
  • Implementing State Machine in C
  • Managing Faults in Embedded Systems
  • Strategies for effective Watchdogs
  • Writing Reusable Peripheral Drivers for MCU’s
  • Improving Embedded Software Testing
  • How to Select a Real-Time Operating System
  • How to Select the Right Microcontroller for your Application

Additional topics covered in the blogs include:

  • Welcome to Advanced C Techniques
  • Professional Coding Conventions
  • Professional Software Starts with a SDLC
  • Writing MISRA-C Compliant Software
  • Best Practices for using Interrupts

  • An Introduction to Assertions

  • Design by Contract

  • Real-Time Assertions

  • Reviewing Function Pointers

  • Designing a Baremetal Cooperative Scheduler

  • Writing a Cooperative Scheduler

  • Alternative Scheduling Paradigms for Real-Time Systems

  • Designing a lightweight communication protocol

  • Checksums and CRC’s

  • Leveraging CRC Hardware Accelerators

  • Implementing an efficient command parser

  • Accelerating Design through Software Architecture

  • An Introduction to State Machines

  • Techniques for State Machine Implementation Part 1

  • Techniques for State Machine Implementation Part 2

  • Defining Faults, Errors and Bugs

  • Strategies for Handling Errors

  • C Error Handling Techniques

  • Running RAM Tests

  • An Introduction to Watchdog Timers

  • Watchdog Timer Strategies

  • Designing a Watchdog

  • Watchdog Best Practices

  • Concepts for Developing Portable Firmware

  • The Hardware Abstraction Layer (HAL) Design Process

  • HAL Design for MCU Peripherals

  • Implementing Reusable Peripheral Drivers

  • Testing Strategies for Real-Time Embedded Systems

  • Leveraging Cyclomatic Complexity for Unit Testing

  • Test Driven Development

  • Hardware in Loop Testing

  • How to select a Real-Time Operating System (RTOS)

  • RTOS Application Task Decomposition

  • Performing a Rate Monotonic Analysis (RMA)

  • Best Practices for RTOS Application Design

  • Strategies for Minimizing Debug Time

  • Jump Starting Development to Minimize Bugs Process

  • Debugging Interfaces and Tools

  • Best Practices for Performing Code Reviews

  • Best Practices for Securing an Embedded System

  • Securing Embedded Systems through Isolation

  • Leveraging the MPU for Safety and Security

  • How to Select a Microcontroller

  • The Professional Embedded Software Developers Workbench

  • Best Practices for using Assembly Language

  • Leveraging the KT Matrix to Make Decisions

  • Becoming a C Expert

    If you have any questions, please contact Jacob at [email protected]