C for Real-Time Developers
Length: 5 days
view dates and locationsThis course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.
Course Description
Overview
Course Objectives
• To give you practical experience of writing C for real-time & embedded systems.
• To demonstrate the traps and pitfalls of the language when used in a real-time system.
• To give you the confidence to apply these new concepts to your next real-time project.
Delegates will learn
• How to access hardware & program interrupts in the language
• About memory and performance issues associated with C
• How Real-time Operating Systems affect the use of the language
Pre-requisites
• Prior knowledge of C is useful but not essential
Who Should Attend:
Course Materials
Related Courses
• Advanced C Programming
• Real-Time Software Design with UML 2.0
Course Workshop
Course Outline
Introduction to Real-Time Systems
- Characteristics and demands of real-time software development
Introduction to C Programming
- Structure of a C program
- The C compilation process
Types and Operators
- C base types
- Precedence & associativity
- Arithmetic operations
Control Flow
- Logical expressions and operations
- Decision Making
- Loops
Pointers
- Pointer basics
Bit Manipulation & Hardware Access
- Accessing hardware with pointers
- Manipulating information at the bit level
- General Purpose IO (GPIO)
Functions
- The Function as a logical program unit
- How parameters are passed
- Memory segments
Arrays, Pointers and Strings
- Arrays as circular buffers
- Relationship between pointers & arrays
- Pointer arithmetic
- C string handling
Device Interaction & Synchronization
- Polling devices
- Serial peripheral programming
Structures and Unions
- Structures;
- Big & Little Endian
- Unions
- Using structures to access I/O devices
- Bit-field structures
Interrupts
- Internal & External interrupt control
- Nested Interrupts
- Priorities & Masks
- Software Interrupts
Dynamic Memory Management
- Malloc and free
- Linked list
- Issues (leaks, fragmentation, etc.)
Program Structure
- Definitions and declarations;
- Header files
- Scope and lifetime
The C Pre-Processor
- Macros
- Conditional Compilation
Program Design Concepts
- Why modular design?
- Coupling and cohesion
- Testing the program
Concurrency
- Scheduling strategies
- Context switching
- Function pointers
- Task synchronisation and communication
- MMU and memory protection
- Concurrency and libraries
The Standard C Library
Target Specific Considerations
- Language features affecting portability
- Non-standard C language features
- Assembly language interfacing
- What happens at power-on?
- Initialising the C runtime
Course Summary
This course is available now for team-based training at or near to your location. To find out more:
Complete an on-line form and a Doulos representative will get back to you »
Call Doulos to discuss your requirements »
Back to top



