Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Course Overview

Course Length: 
2 Days
CEUs: 
1.5
Format: 
Hands-on/Lecture

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.

Syllabus

The following is a summary of the major course topics and are not the section-by-subsection lecture breakdown.

  • 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++

Audience

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

Prerequisites

Attendees should have a working familiarity with the C programming language.

Requirements

Each student will need a computer, such as a laptop, running XP or a newer version of Windows with an available USB port and administrator privileges. (Windows over Mac OS X generally works.)

Exercises

During the course, attendees will independently complete approximately half a dozen hands-on programming exercises, including several device drivers. These exercises are interspersed with the lectures. Attendees will use their computer to compile their programs and then download them for execution on an embedded target board with its own processor, memory, and peripherals.

Related Courses

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be videotaped or photographed without consent from Barr Group's executive team.