Guidelines for Writing High Integrity Software in C

Course#: BSEMB1103

About this Course

Course Type Course Code Duration
Embedded Software BSEMB1103 1 Day

Using C for embedded development requires a sound understanding of the programming language being used. This is a one day intensive course that introduces coding guidelines developed specifically for use on embedded projects using the C language. This course covers a set of rules in detail, set in the context of C. The latter part of the course looks at the commercial support for the guidelines.
The guidelines used are the MISRA C:2012 guidelines, developed by the Motor Industry Software Reliability Association (MISRA) for the use of the C language in vehicle based software ( However, these guidelines are applicable to any project using C that has safety requirements or the need to develop high quality code. The MISRA C:2012 guidelines are suitable for projects requiring ISO 26262 compliance and ISO/IEC 61508 SIL3.

Why Attend this Course?

This is a one day course covering the MISRA C:2012 guidelines in detail and their relevance as a coding standard for embedded development using C.

What Makes this Course Stand Apart?

The rationale behind each of the MISRA-C guidelines
The usefulness of each rule in the guidelines
Examples of code that fails the rules

What you will Learn?

To provide an understanding of the essentials of the MISRA-C programming guidelines
To assess the usefulness of the guidelines as a company standard
To give you the confidence to apply these guidelines to your next project


This course is designed for real-time engineers currently, or about to be, programming in C. It is also applicable for project managers and QA personnel (assuming the appropriate background).


Attended Course C for Real-Time Developers, or
A competent C language programmer

Course Outline

Introduction to the MISRA C guidelines

The directives and rules

The C Programming Language

C90 and C99 Key characteristics of C

How the Guidelines apply to:

Types and Operators

C base types
Basic Operators

Control Flow
If, if/else, if/else if
While, do/while
Break, continue, goto

Different types of variable storage

Pointers and Arrays
The relationship between pointers and arrays

Structures and Dynamic Memory Management

Dynamic memory management

Program Structure
Structuring software into logical compilation units

The C Pre-Processor

Conditional Compilation

The Standard C Library

Target Specific Types
Signed, unsigned, short and long
Promotion and conversion

Real-Time Specifics
Accessing hardware: I/O mapped; memory mapped addressing polling; interrupts and vectored interrupts; interrupt expansion controllers;

Target specific considerations.

What next- How do I arrange a group course or book a public place.?

We are here to help so please utilise our live chat team

Call to speak to your account manager or a consultant on

+44 (0)345 467 9557 or email

We are all technical with a wealth of Learning & Development experience
so can talk you through any specific requirements or the details of
one of our courses.


Start typing and press Enter to search