C++ for Embedded Systems Training Course
Is C++ suitable for embedded systems such as microcontrollers and real-time operating systems?
Should object-oriented programming be used in microcontrollers?
Is C++ too distant from the hardware to be efficient?
This instructor-led, live training addresses these questions and demonstrates, through discussion and hands-on practice, how C++ can be used to develop embedded systems with code that is accurate, readable, and efficient. Participants apply theory to practice by creating a sample embedded application in C++.
By the end of this training, participants will be able to:
- Understand the principles of object-oriented modelling, embedded software programming, and real-time programming
- Produce code for embedded systems that is small, fast, and safe
- Avoid code bloat caused by templates, exceptions, and other language features
- Understand the issues related to using C++ in safety-critical and real-time systems
- Debug a C++ program on a target device
Audience
- Developers
- Designers
Format of the course
- A blend of lecture, discussion, exercises, and extensive hands-on practice
Course Outline
Introduction
Overview of embedded systems
Overview of C++
Preparing the toolchain
Classes and objects
Inheritance
Virtual functions
Using templates
Error handling
Inline code
Startup
Standard libraries
Memory management
Real-time operating systems
Interoperability between C and C++
Object-oriented modelling and UML
Conclusion
Requirements
- A general understanding of C++
Open Training Courses require 5+ participants.
C++ for Embedded Systems Training Course - Booking
C++ for Embedded Systems Training Course - Enquiry
Testimonials (2)
The trainer really adapted the training to our level and took a lot of time and efforts to make sure the presentation was well adapted.
Nicolas Guerette-Berthiaume - Trilliant
Course - C++ for Embedded Systems
Interactivity, time for self-contained programming. I learn easier if I have the chance to find out the answer and not just telling me it. It was also a very good thing that the training was well-planned, we kept coffee pauses and the training did not lose my attention. The trainer had very deep knowledge in C++, we felt we could ask anything.
Barna Szecsi - GIS Europe SE
Course - C++ for Embedded Systems
Provisional Upcoming Courses (Require 5+ participants)
Related Courses
Advanced Embedded Systems Development
35 HoursThis instructor-led, live training in New Zealand (online or onsite) is designed for engineers who wish to learn how to use embedded C to program a variety of microcontrollers based on different processor architectures, including 8051, ARM Cortex M-3, and ARM9.
Arduino Programming for Beginners
21 HoursIn this instructor-led, live training in New Zealand, participants will learn how to program the Arduino for real-world applications, such as controlling lights, motors, and motion detection sensors. This course assumes the use of actual hardware components in a live lab environment (rather than software-simulated hardware).
By the end of this training, participants will be able to:
- Program the Arduino to control lights, motors, and other devices.
- Understand the Arduino architecture, including inputs and connectors for add-on devices.
- Integrate third-party components such as LCDs, accelerometers, gyroscopes, and GPS trackers to extend the Arduino's functionality.
- Explore various programming language options, from C to drag-and-drop environments.
- Test, debug, and deploy Arduino solutions to tackle real-world challenges.
Buildroot: a Firmware Generator for Embedded Systems
7 HoursBuildroot is an open-source project that includes scripts for generating a cross-compilation toolchain, a customisable root filesystem image, and a Linux kernel tailored for embedded devices. Throughout this hands-on course, participants will learn how to use Buildroot to:
- Select the software to be included in the root filesystem.
- Add new packages and modify existing ones.
- Integrate support for new embedded boards.
By the end of the course, participants will have produced bootable filesystem images. Remote sessions utilise the QEMU emulator, while in-person training can be conducted using either QEMU or real embedded boards, at the trainer's discretion.
Other projects with similar objectives include the Yocto Project and OpenWRT. Please refer to these presentations to determine which solution best meets your needs.
Circuits and Electronics Fundamentals
14 HoursThis instructor-led, live training in New Zealand (available online or on-site) is designed for engineers and computer scientists who wish to apply the fundamentals of circuits and electronics to design devices and systems that leverage the properties of electrical components for developing hardware functionalities.
By the end of this training, participants will be able to:
- Set up and configure the necessary tools and programs for circuits and circuit board development.
- Understand the basic principles underpinning circuits and electronics engineering.
- Utilise primary electronic components to construct efficient computer hardware technologies.
- Optimise electronic devices by implementing circuit analysis methods.
- Apply the fundamentals of electronics and circuits to the development of enterprise applications.
Digital Signal Processing (DSP) Fundamentals
21 HoursThis instructor-led, live training in New Zealand (online or on-site) is designed for engineers and scientists who wish to learn and apply DSP implementations to efficiently manage various signal types and gain better control over multi-channel electronic systems.
By the end of this training, participants will be able to:
- Set up and configure the necessary software platforms and tools for Digital Signal Processing.
- Understand the concepts and principles that form the foundation of DSP and its applications.
- Familiarise themselves with DSP components and apply them in electronic systems.
- Develop algorithms and operational functions using results derived from DSP.
- Utilise the basic features of DSP software platforms and design signal filters.
- Synthesise DSP simulations and implement various types of filters for DSP.
Electronic Control Unit (ECU) - Practical Vector
28 HoursThis instructor-led, live training in New Zealand (available online or on-site) is designed for intermediate-level automotive engineers and technicians seeking hands-on experience in testing, simulating, and diagnosing ECUs using Vector tools such as CANoe and CANape.
By the end of this training, participants will be able to:
- Understand the role and function of ECUs within automotive systems.
- Set up and configure Vector tools including CANoe and CANape.
- Simulate and test ECU communication across CAN and LIN networks.
- Analyse data and carry out diagnostics on ECUs.
- Create test cases and automate testing workflows.
- Calibrate and optimise ECUs using practical, real-world approaches.
Electronic Control Unit (ECU) - Theoretical Vector
21 HoursThis instructor-led, live training in New Zealand (online or onsite) is aimed at intermediate-level automotive engineers and embedded systems developers who wish to understand the theoretical aspects of ECUs, with a focus on Vector-based tools and methodologies used in automotive design and development.
By the end of this training, participants will be able to:
- Understand the architecture and functions of ECUs in modern vehicles.
- Analyse communication protocols used in ECU development.
- Explore Vector-based tools and their theoretical applications.
- Apply model-based development principles to ECU design.
Learning Vivado
14 HoursThis instructor-led, live training in New Zealand (available online or on-site) is designed for FPGA developers who wish to use Vivado to design, debug, and implement hardware solutions.
By the end of this training, participants will be able to:
- Develop HDL systems using C code and Vivado tools.
- Generate and implement soft processors within Vivado.
- Test and simulate C code using Vivado.
LEDE: Set Up a Linux Wireless Router
7 HoursThe LEDE Project (Linux Embedded Development Environment) is a Linux-based operating system derived from OpenWrt. It serves as a comprehensive replacement for the vendor-provided firmware on a broad range of wireless routers and non-networking devices.
In this instructor-led, live training session, participants will learn how to configure a wireless router based on LEDE.
Audience
- Network administrators and technicians
Course Format
- A blend of lecture, discussion, exercises, and extensive hands-on practice
Deploying AI on Microcontrollers with TinyML
21 HoursThis instructor-led, live training in New Zealand (online or onsite) is designed for intermediate-level embedded systems engineers and AI developers who wish to deploy machine learning models on microcontrollers using TensorFlow Lite and Edge Impulse.
By the end of this training, participants will be able to:
- Understand the fundamentals of TinyML and its advantages for edge AI applications.
- Set up a development environment for TinyML projects.
- Train, optimise, and deploy AI models on low-power microcontrollers.
- Use TensorFlow Lite and Edge Impulse to implement real-world TinyML applications.
- Optimise AI models for power efficiency and memory constraints.
Microcontroller Design
35 HoursThis instructor-led, live training in New Zealand (delivered either online or on-site) is designed for engineers seeking to master the design principles of microcontrollers.
Raspberry Pi for Beginners
14 HoursRaspberry Pi is a compact, single-board computer.
In this instructor-led, live training, participants will learn how to set up and program the Raspberry Pi to function as an interactive and powerful embedded system.
By the end of this training, participants will be able to:
- Set up an IDE (integrated development environment) to maximise development productivity
- Program the Raspberry Pi to control devices such as motion sensors, alarms, web servers and printers.
- Understand the Raspberry Pi architecture, including inputs and connectors for add-on devices.
- Explore the various options available in programming languages and operating systems
- Test, debug and deploy the Raspberry Pi to solve real-world problems
Audience
- Developers
- Hardware/software technicians
- Technical professionals across all industries
- Hobbyists
Course format
- A blend of lecture, discussion, exercises and extensive hands-on practice
Note
- Raspberry Pi supports a range of operating systems and programming languages. This course will use Linux-based Raspbian as the operating system and Python as the programming language. To request a specific setup, please contact us to arrange.
- Participants are responsible for purchasing the Raspberry Pi hardware and components.
Tensorflow Lite for Microcontrollers
21 HoursThis instructor-led, live training in New Zealand (online or onsite) is aimed at engineers who wish to write, load, and run machine learning models on very small embedded devices.
By the end of this training, participants will be able to:
- Install TensorFlow Lite.
- Load machine learning models onto an embedded device to enable it to detect speech, classify images, and more.
- Add AI capabilities to hardware devices without relying on network connectivity.
Yocto Project
28 HoursIn this instructor-led, live training in New Zealand, participants will learn how to create a build system for embedded Linux based on the Yocto Project.
By the end of this training, participants will be able to:
- Understand the fundamental concepts behind a Yocto Project build system, including recipes, metadata, and layers.
- Build a Linux image and run it under emulation.
- Save time and effort when building embedded Linux systems.
The Yocto Project - An Overview - hands-on
28 HoursDescription
This four-day training blends theoretical knowledge with practical exercises to introduce participants to the Yocto Project.
It addresses common queries such as:
- Is it truly necessary to employ a different version of the toolchain, libraries, or packages for every GNU/Linux project, alongside adhering to a distinct workflow?
- Can you guarantee that the development environment remains consistent across all developers and suppliers, allowing you to produce identical builds today and in over a decade's time?
- Can the YP assist in identifying the software licenses applicable to the packages you utilise?
Practical sessions are conducted on target hardware (for instance, the Beagle Bone Black Rev. C - http://beagleboard.org/BLACK). Upon completion of the training, you will be able to download a Docker image containing Ubuntu 14.x with all dependencies pre-installed, along with examples, to facilitate working with the course material in your own laboratory environments. Please note that this is not an introductory course on Embedded GNU/Linux. Participants should already understand how Embedded GNU/Linux operates and possess the ability to configure and build the GNU/Linux kernel and its drivers.
Who should attend?
This course is designed for those who already use GNU/Linux for their projects and have likely heard of the Yocto Project but have hesitated to explore it further or encountered difficulties in its use. If you are unsure whether and how your daily workflow can integrate with the YP, or if you generally find the YP complex and question its necessity given previous perceived simplicity, this training will help you decide if the YP is suitable for your needs. The workshop is aimed at software engineers, development engineers, system engineers, testers, administrators, and other interested parties who have a solid understanding of Embedded GNU/Linux.