C Programming for Real Time Developers
Course
In London
Description
-
Type
Course
-
Location
London
-
Start date
Different dates available
Learning the C programming language is one thing, but learning how to use it effectively and appropriately in a real-time embedded environment is another. For many programmers, these skills are learnt the hard way, through trial and error on the job. This course addresses this issue by not only teaching the C programming language, but through emphasising the pragmatic use of C in a real-time environment. This is achieved through both lecture and direct hands-on experience.Approximately 50% of the course is consists of writing code for a real target. During the week attendees will build up a complete solution to a case study that exercises all significant parts of the course.
Facilities
Location
Start date
Start date
About this course
Upon completion of this course, you will be able to:To provide an understanding of the essentials of the C programming language.To give you practical experience of writing C for real-time and 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.
This course is designed for engineers who are embarking on a project using C for the first time. It is also suitable for those needing to support a customer using C, and those requiring to be brought up to date since initially being taught at University.
Experience of programming, e.g. assembly languagePrior knowledge of C is useful but not essential
Cover CoversThe core C syntax and semanticsHow to access hardware and program interrupts in the languageAbout memory and performance issues associated with CHow real-time operating systems (RTOS) affect the use of the language
Reviews
-
The courseware was great very applicable content.
← | →
Course rating
Recommended
Centre rating
Analox
This centre's achievements
All courses are up to date
The average rating is higher than 3.7
More than 50 reviews in the last 12 months
This centre has featured on Emagister for 6 years
Subjects
- C programming
- Programming
Course programme
#text-block-10 { margin-bottom:0px; text-align:left; }
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
#text-block-11 { margin-bottom:0px; text-align:left; }
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
Issues (leaks, fragmentation, etc.)
Program Structure
Definitions and declarations;
Header files
Scope and lifetime
The C Pre-Processor
Macros
Conditional Compilation
Type safety
Conversions, promotions, truncation
Portability
Considerations between different compilers & platforms.
Concurrency and multi-tasking
Scheduling strategies
Context switching
Function pointers
Task synchronisation and communication
MMU and memory protection
Concurrency and libraries
Using a RTOS
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
C Programming for Real Time Developers