Home
Company Profile
Our Clients
Training
Courses
course list
roadmap
all dates
forthcoming
booking
Graduate
Training
Mentoring
Location
Links
Contact us

 


 C Training Courses
C-501
C for Real-Time Developers

Length: 5 days
Cost: £1870
Course description - see below or view PDF
Check course dates - click here
Booking information - click here
 Course Detail

Course Description:
Learning the C programming language is one thing, but learning 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 emphasizing 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.

Overview:
An intensive five day course covering C in the context of realtime embedded application development.

Course Objectives:
• 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.

Delegates will learn:
• The core C syntax and semantics
• 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:
• Experience of programming, e.g. assembly language
• Prior knowledge of C is useful but not essential

Who Should Attend:
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.

Duration:
Five days

Course Materials:
• Delegate Handbook

Related Courses:
• RTOS-201 Fundamentals of Real-Time Operating Systems
• AC-401 Advanced C Programming
• MC-101 Guidelines for Writing High Integrity Software in C
• 00-503 Real-Time Software Design with UML2.0

Course Workshop:
The course makes use of target hardware during the embedded programming practical exercises. The board targeted is the Hitachi 7045F Evaluation Board (SH2 micro-controller). An application board is programmed via the 7045F to give attendees a real-sense of embedded application development.

Course Outline
Introduction to Real-Time Systems
- Characteristics and demands of realtime
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

 telelogic website

Training Courses
C Training Courses
C++ Training Courses
Design Patterns Training Courses
Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
RTOS Training Courses
Software Engineering Training Courses
SNMP Training Courses
SysML Training Courses
TCP/IP Training Courses
Testing Training Courses
Microsoft Windows Device Driver Courses
UML Training Courses

Feabhas Codes
AC-401
AC++-401
AWDM-501
C-501
C++-303
C++-501
C++-502
C++-503
DP-401
EL-201
EL-202
EL-301
EL-503
EL-504
J-501
J-502
MC-101
MSDN-2530
MSDN-2535
MSDN-2540
MSDN-2545
MSDN-2540N
NDIS-501
OO-101
OO-301
OO-503
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-301
TCP-401
WDF-501
WDM-501