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
- Embedded Software Boot Camp
- Hardware-Firmware Interface Design
- Embedded Programming with the GNU Development Tools
- Embedded Programming with C++
- Multithreaded RTOS Programming
- Alternatives to Real-Time Operating Systems
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.
