The C language skills that are necessary to build a robust, commercial product are often not taught at the university or within industry courses. While there are plenty of courses that teach C syntax and the fundamentals, how do you go about using C to write production intent code that is robust and reliable?

This technology primer is designed to turn developers, whether new or seasoned, into expert C programmers. We will be examining techniques that are rarely discussed but critical to successfully developing a robust commercial product.

$125 ($65 Early Bird)

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.

Video Topics

  • 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
  • Becoming a professional embedded system developer

Blog Topics

    • 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
$125 ($65 Early Bird)

This is just a sampling of everything that will be covered during the primer.

Technology primers are a great way to get up to speed on a technology over time without investing large amounts of time or money up front. It provides the subscriber with the ability to learn about a technology over the course of a year and build up skills for when they are needed most.