embedded and real time systems training and consultancy

Linux Embedded System C++ Programming

Duration: 5 Days

Course Background

This course is designed for experienced C programmers with some experience of either embedded system or Win32 API or POSIX API programming, but who have little experience of either C++ programming, or object oriented programming or both. As well as providing a fast paced introduction to the C++ programming language the course also explores topics that are paraticularly relevant to embedded systems developers such as C++11 multi-threading, C++ Stream Libraries and C++ Network and Asynchronous IO programming. The course will also overview C++ approaches to user space GPIO, RS232 serial and I2C/SPI serial C++ programming.

Course Overview

This intensive, fast paced course enables experienced C programmers to begin writing embedded C++ software. It covers all the commonly used features of the C++ language and provides insights into the strengths and limitations of these features in the context of implementing embedded applications. Additionally, the course discusses the implemention of C++ class wrappers around C-based operating system APIs and TCP/IP socket APIs and explores C++ techniques for working with GPIO and with serial protocols such as RS232, SPI and I2C.

Practical work uses the GNU C++ compiler running on a Linux workstation, as well as cross-compiling projects to run on embedded Linux platforms. The platforms used on the course will be the RaspberryPi and the BeagleBone Black. Projects are built using both the traditional command-line-and-Makefile approach, and also using an Eclipse based C++ Integrated Development Environment. Applications are run on a PC running one of the standard Linux distributions, and also on an ARM board running embedded Linux.

Course Benefits

Migrating from C to C++ is challenging task if the true benefits of using C++ are to be realised. Unless careful thought is given to Analysis and Design, the resulting code may be little more than C code with C++ wrappers, with little or no gain in productivity through using an object-oriented language.

The real benefits of C++ come from:

On completing this course you will

Course Contents