Start date: 17 February 2025
Duration: 3 Days, 9am to 5pm each day
Location: Online course
Certificate: N/A
Cost: Members € 600, Non-Members €900
Course code: N/A
Programme overview
C Programming for Embedded Systems provides an excellent full scope primer for any of the Doulos embedded system courses, or for anyone wishing to learn or use C in the context of embedded programming or hardware-software integration.
Learning outcomes
At the end of the course, students will understand the essentials of programming Embedded Systems in C.
Who is the course for?
This is a hands-on course aimed at software, firmware, and hardware engineers who need to learn the practical skills necessary to program embedded microcontrollers in C. It is suitable both for people who do not know C and for people who have used C in other contexts but have had little or no exposure to embedded programming in C.
Schedule
Introduction to C
Characteristics of Embedded Systems • C Language Overview • Structure of a C Program • Identifiers • Name Spaces and Scope • Compilation & Linking • MCU Boot Process • C Best Practices for Embedded Systems
Operators and Hardware Manipulation
Understanding Register Maps • Operators • Bit Manipulation • Modulus and Shifting • Memory Addressing • Sizeof • Ternary Operator • Precedence Rules • Best Practices for Embedded Systems
Advanced Flow Control
Introduction to Real-time Concepts • Interrupt Basics • Interrupt Vector Tables • Nesting and Priorities • Software Interrupts • Volatile keyword • Shared Data Problems and Solutions • RMA Analysis • Interrupts Best Practice
Advanced Types, Constants and Expressions
Enumerations • Derived Types • Literals • Expressions and Evaluation • State Machines • State Charts • Software Architecture Concepts
Arrays and Pointer Basics
Arrays • Multidimensional Arrays • Strings • String Conversion • Pointer Types • Pointers and Arrays • Pointers Operations • Best Practices for Embedded Systems
More Pointers and Strings
Pointers to Pointers • Pointers to Constants • Constant Pointers • String Libraries • Manipulating Memory • Best Practices for Embedded Systems
Structures and Unions
Overview of Structures • Unions • Driver Design • Defining APIs • Driver Models • GPIO Driver Example
Scheduling Techniques
Arrays of Pointers to Functions • Function Queue Scheduling • Cooperative Scheduling • Scheduler Design • Energy Profiling • Low Power Software Design
Preprocessor
#define • Macros • Precedence • Conditional Compilation • Warnings • #pragma • Predefined Macros
Real-Time Operating Systems
Software Concurrency • Tasks and States • Task Synchronization • Mutexes Semaphores & Queues • GPOS vs RTOS
Trainer Profile
Dr. Des Howlett is a Senior Member of the Doulos Technical Staff and joined the company in 2017. He has worked as a Senior Field Applications Engineer for Microchip Technology and Silicon Laboratories, all over the EMEA region. Immediately prior to Doulos, he was Technical Marketing Manager, EMEA, for Software at Avnet Silica and was responsible for liaising between processor manufacturers and customers to ensure that supplied software was suitable for market needs.
Des has taught embedded C programming and Verilog logic design at the University of Reading and now is an instructor for embedded C and C++ as well as Xilinx courses at Doulos.
Six reruns were held in 2024 on: 16 – 18 Jan 24, 27 – 29 Feb , 5 – 7 March, 12 – 14 March, 7th – 9th May and 1 – 3 Oct 2024 after a previous rerun in 2023 on 19 – 21 Sept.