Testimonial

"Netrino training courses should be required before writing any embedded code."

General Dynamics

Master Firmware

Registration is now open for the popular hands-on Embedded Software Boot Camp. Consult our public training calendar for upcoming dates and locations.

Boot Camp

Sign Up Now

Receive Michael Barr's Firmware Update newsletter for free how-to articles and industry news by e-mail. Sign up now.

Bookmark It

Bookmark this page or share it with a colleague.

Hardware Interfacing with C Course

The development of device drivers and embedded software is full of challenges. But it is possible to write easy-to-read portable C code to control peripherals ranging from simple timers and UARTs to complex custom FPGAs. This important course covers a large number of subjects ranging from C startup code and the “world before main()” to the development of interrupt-based device drivers that interact with peripheral control and status registers through memory-mapped I/O, overlayed structs, and bitfields.

Length/Options

  • 2 days (hands-on)
  • 1 day (lecture only)

Audience

  • Programmers with no prior embedded software experience
  • Embedded software developers seeking to enhance their C skills
  • Embedded software developers moving from assembly to C

Prerequisites

  • Working familiarity with the C programming language

Related Courses

Outline

  • Introduction
    • The C Standard(s)
  • Embedded C Fundamentals
    • Fixed-Width Integers
    • Binary Data Manipulation
    • Fixed and Floating Point Math
    • Performance Improvement
    • Data Storage and Lifetimes
    • The World Before main()
  • Peripheral Control
    • Peripheral Registers
    • Memory-Mapped I/O
    • Struct Overlays
    • Volatile Keyword
    • Bitmasks vs. Bitfields
    • Device Drivers
  • Interrupt Handling
    • Interrupt Service Routines
    • Vector Tables
    • Hardware Hurdles
    • Disabling Interrupts
    • Interrupt Latency
  • Language Choice
    • C vs. Assembly
    • C vs. C++

Hands-On Tools/Platform

Learn More

To request pricing or dates, or for more information about this course, contact us.