Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

C for Real-Time Developers by Doulos Ltd

Training

Product Description

This course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.

Learning the C programming language is one thing, but learning to use it effectively and appropriately in a real-time embedded environment is another. This course teaches the C programming language through the pragmatic use of C in a real-time environment. This is achieved through both lecture and direct hands-on experience. As part of the course, approximately 50% of the time is given over to writing code for a real target. During the week, attendees build up a complete solution to a case study that exercises all significant parts of the course.

• To provide an understanding of the essentials of the C programming language.
• 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.

The course is designed for engineers who are embarking on a project using C for the first time. It is also suitable for those having to support a customer using C, and those requiring to be brought up to date since initially being taught at University.

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

C for Real-Time Developers

Market Segment(s)

  • General Purpose Products/Services
 
ARM Connected