Learnit Training
Course C/C++ Embedded development
  • Small groups
  • Covid-19 safe
  • Experienced teacher
  • Possible online
  • Practical training

Embedded software is in almost every electronic device you can find today. The software is hidden in watches, microwaves and mobile phones. It is therefore a much sought-after and useful technique for software engineers.

Yes, I want to know more

"An excellent training, with good balance between theory and practice." - Rating: 8.4

learnit C/C++ Embedded development

Course C/C++ Embedded development

In this course you will learn how to quickly start writing embedded software for embedded systems using the programming languages C and C++.

Why the C/C++ embedded development course?

Embedded software is in almost every electronic device you can find today. It is hidden in watches, microwave ovens and mobile phones, but also many military applications, communication satellites and the production of modern medicines would not be possible without it.

Each embedded system is unique and precisely tailored to an application. There are endless possibilities for embedded software and embedded systems. Programming them is therefore a much sought-after and extremely useful technique for software engineers. However, the varied work field makes it difficult to quickly master the technique and be able to apply it. The C/C++ Embedded Development course shows you how you can nevertheless quickly start writing embedded software using the C and C++ programming languages.

C and C++ are ideal programming languages to make the programming of applications for embedded systems quickly manageable. Do you have basic knowledge of C/C++ and some experience with programming in C and do you want to learn how to use it to master the basics of embedded development? Then this four-day course is the ideal way to do so.

Programme during training

Day 1:

  • What is an embedded system?
  • The characteristics of an embedded system
  • Microprocessor versus microcontroller
  • Embedded processors
  • System architectures
  • Control unit and datapath
  • Control and status registers
  • Intstruction cycles
  • Pipelining
  • Superscalar and VLIW Architectures
  • ASIPS
  • RAM, ROM, EPROM, SRAM and Flash memory.
  • Memory hierarchy

Day 2:

  • Tools and toolchains for embedded systems
  • Embedded programming languages
  • Assembly language, C and C++ for embedded systems
  • Compilation and linkage Relocation
  • Compiler requirements
  • Register access
  • Libraries
  • Inline assembly
  • Memory problems
  • Heaps and stacks
  • Macros
  • Compiler optimisation
  • Problems with loading
  • Booting an embedded system
  • Code optimisation
  • Debugging
  • Remote debugging
  • Emulators and analysers
  • JTAG Debugging
  • Testing

Day 3:

  • Embedded operation systems and task schedulers
  • OS architectures
  • OS configuration
  • Interrupts, Device drivers
  • Creating a process
  • Processes and their status
  • Protection
  • Threads
  • Multitasking
  • Cooperative versus pre-emptive multitasking
  • Context switching
  • Scheduling policies
  • Hard and soft real-time behaviour
  • Task synchronisation
  • Rate Monotonic scheduling
  • Deadlock and priority inversion
  • Hardware initialisation

Day 4:

  • I/O addressing
  • Memory mapped I/O vs. Standard I/O
  • Interrupt Servive Routines
  • Fixed vs. vectored interrupt
  • Maskable vs. non-maskable interrupt
  • Direct Memory Access
  • Memory transfers with and without DMA Arbitration
  • Multilevel bus architectures
  • Error detection and correction
  • Digital-Analog conversion
  • Serial, parallel, wireless protocols
  • I2C, Can, Firewire, USB, PCI, irDA, Bluetooth
  • Pulse Width Modulation
  • Timers

Target group

This course is intended for software engineers who want to use C/C++ to develop applications on embedded systems.

Class form and teacher

The course is taught by an instructor with extensive experience in developing software for embedded systems and using C/C++.

The theory in the course is interspersed with hands-on training on a Texas Instruments MSP432 development board with an ARM Cortex Processor.

Prior knowledge

To participate in this course, knowledge of the basic concepts of C and C++ is required, as well as programming experience in C.

Please also note that many English terms are used during this course. Some affinity with the English language is therefore desirable.

Language

The training is provided in Dutch as standard. The trainer has a good command of the English language. Use can be made of course material in English. With a minimum of three participants, the training can also be provided entirely in English.

Investment

Prices mentioned are per person, including course material. Lunch is included in the on-site training.

On location Online
Duration 4 days 8 sessions of three hours
Price per day, excluding VAT € 475,- € 390,-
Total, incl. VAT € 2299,- € 1887,60

Certificate

After completion of the training, a Learnit certificate is issued as proof of participation.


Online

We also organise this training online. For this we use Webbex or Zoom. Login with Skype is also possible. On request, this training can also be organised with Microsoft Teams.

The training lasts 8 sessions of 3 hours, spread over 8 weeks.

  • You can participate again free of charge up to one year after the training.
  • For an additional catering fee, you can also participate in a classroom training.

References

The course C/C++ Embedded development was assessed with an average of 8.

"The course has given me a good start to better understand the embedded system that I work with at the company." - Rating: 8.0

R. van Putten, Rhosonics Analytical BV - C/C++ Embedded development

"A tailor-made training by a competent, experienced and motivated trainer. A good variation between theory and practice." - Rating: 8.0

Rowan Klein Gunnewiek, Nedap N.V. - C/C++ Embedded development

"An excellent training, with good balance between theory and practice." - Rating: 8.4

R. van Bemmelen - C/C++ Embedded development

"A very good introduction to embedded control." - Rating: 8.1

O. Einfinger, FMTC - C/C++ Embedded development

"A good c / embedded c beginners course, where the material is gone through quickly, allowing a lot of material to be covered. There is enough variation between theory and practice. This course is also suitable for people with some (hobby) programming experience." - Rating: 8.3

Kiman Velt, Nedap N.V. - C/C++ Embedded development

"I find the course very suitable for those who want to understand the world of embedded systems. The 4 days were necessary, many topics were discussed. Very interesting." - Rating: 8.2

M. Brinker, Ericsson ETM - C/C++ Embedded development