Experience Embedded

Professional Training, Consulting and Project Support

Embedded C Training: Programming Methods and Tools for Embedded Applications - Face-to-Face Training

This training focuses on the hardware-near C-programming of 8, 16 or 32 bit microcontroller architectures. It shows you how to identify and avoid the pitfalls of C programming .You learn how to program a HW abstraction layer according to an architecture model. Operating system mechanisms and services are explained by programming a scheduler. You get an overview of the whole lifecycle of a product - from the idea to project planning, software development process, test planning, quality planning, acceptance, commissioning, operation and decommissioning.

  • Content
     
  • Objectives
     
  • Participants
     
  • Requirements
     

This training focuses on the hardware-near C-programming of 8, 16 or 32 bit microcontroller architectures.

You learn how to program a HW abstraction layer according to an architecture model. OS mechanisms and services are explained by programming a scheduler.

You get an overview of the entire lifecycle of a product - from the idea to project planning, SW development process, test planning, quality planning, acceptance, commissioning, operation and decommissioning.

You are able to efficiently develop programs for an embedded system in "C" according to the guidelines of modernsoftware engineering.

You are familiar with using pointers, function pointers and structures.

Based on your knowledge of programming/coding guidelines and software quality features, functional and non-functional requirements as well as internal quality and generate software that is reusable, extendable and easily tested.

In addition, you know all stages of a software development process, from the idea to system acceptance.

Software developers, software architects

A good understanding of ANSI-C and microcontroller architectures.

Essentials of Hardware-near C Programming

  • Data types
  • Pointers, function pointers
  • Structures, linked lists
  • Circular buffer, queues, FIFO, LIFO
  • Programming rules and guidelines
  • Pitfalls and stumbling blocks in C

Software Architecture

  • Selection of a layered model based on requirements
  • Communication between layers
  • Synchronous and asynchronous interfaces

Driver Programming

  • HW abstraction, driver programming: access to HW registers in "C"
  • Interfaces, callback interfaces, queues
  • Interrupt handling / service routines, callback function

Using Pointers, Function Pointers and Linked Lists

  • Example: scheduler programming
  • Task management as linked list

Programming a Finite State Machine FSM

  • Philosophy and implementation of an FSM in C

Locating Code and Data in (µC) Memory (Flash, RAM Address Space)

  • Sectioning (.text, .data, .bss)
  • Linker description file

Library Management

  • Adapting standard library functions to HW
  • User library creation and management

Overview: Real-time Operating Systems (RTOS)

  • Types, services, selection criteria

Outlook: OOP Techniques

  • Advantages and issues of object oriented programming
  • Most important UML diagrams

Introduction: Structured Methods for Project Planning

  • Preliminary study, project start, project plan, project implementation

Software Development Process Models

  • V-model, spiral model, RUP, COPES
  • Interactive-incremental
  • Agile software development, XP

Quality of Embedded Systems

  • How to design and develop quality
  • Overview: Standards (MISRA, IEC61508)

Overview: Software Test Process for Developers

  • Test phases and test methods
  • Static test, dynamic test
  • Review, whitebox test, blackbox test

MicroConsult Plus: Extensive Exercises on a Target Hardware

  • Programs are developed with Keil µVision and Arm RealView tools or with IAR Workbench and tested on Arm-7 or Cortex®-M3 based HW.

The training price includes:
Lunch, drinks, training documentation and your training certificate.


ALL INCLUSIVE!

Related trainings

Embedded C++: Object-Oriented Programming for Microcontrollers with C++/EC++ and UML - Face-to-Face Training
Training code: E-EC++

Embedded C++ Advanced: Object-Oriented Programming for Microcontrollers with C++/EC++ - Face-to-Face Training
Training code: E-EC++FOR

RTOS Basics and Application: RTOS Mechanisms and their Application in Runtime Architectures for Embedded and Real-Time Systems - Face-to-Face Training
Training code: E-RTOS-AR

RTOS Application: Development of Runtime Architectures for Embedded and Real-Time Systems - Face-to-Face Training
Training code: E-RTOS-RT

Embedded Multicore Microcontrollers: Practical Application - Face-to-Face Training
Training code: E-µCMULTI

UML Training: UML Basics and Introduction to Model-Based Software Development - Face-to-Face Training
Training code: E-UML-G

Software Architectures for Embedded Systems and Real-Time Systems - Face-to-Face Training
Training code: E-EMB-AR

Coaching: Embedded and Real-Time Programming
Training code: CE-EMB-PRG


Related trainings

FACE-TO-FACE TRAINING

DatePrice *Duration
26.08. – 29.08.20242.400,00 €4 days 
31.03. – 03.04.20252.400,00 €4 days 
Training code: E-EMB-C
* Price per attendee, in Euro plus VAT
> Registration form download (PDF)> Training details as PDF

Onsite Training

Our customized workshops integrate your specific project tasks in our training content and accommodate your requirements on content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Live Online - English

Date Duration
17.06. – 20.06.2024 4 days  
03.02. – 06.02.2025 4 days  

Face-To-Face - German

Date Duration
17.06. – 20.06.2024 4 days  
26.08. – 29.08.2024 4 days  
11.11. – 14.11.2024 4 days  
31.03. – 03.04.2025 4 days  

Live Online - German

Date Duration
17.06. – 20.06.2024 4 days  
03.02. – 06.02.2025 4 days  

Coaching

Our coaching services offer a major advantage: our specialists introduce their expertise and experience directly in your solution process, thus contributing to the success of your projects.

Coaching: Embedded and Real-Time Programming

Embedded C Training: Programming Methods and Tools for Embedded Applications - Face-to-Face Training

Content

Essentials of Hardware-near C Programming

  • Data types
  • Pointers, function pointers
  • Structures, linked lists
  • Circular buffer, queues, FIFO, LIFO
  • Programming rules and guidelines
  • Pitfalls and stumbling blocks in C

Software Architecture

  • Selection of a layered model based on requirements
  • Communication between layers
  • Synchronous and asynchronous interfaces

Driver Programming

  • HW abstraction, driver programming: access to HW registers in "C"
  • Interfaces, callback interfaces, queues
  • Interrupt handling / service routines, callback function

Using Pointers, Function Pointers and Linked Lists

  • Example: scheduler programming
  • Task management as linked list

Programming a Finite State Machine FSM

  • Philosophy and implementation of an FSM in C

Locating Code and Data in (µC) Memory (Flash, RAM Address Space)

  • Sectioning (.text, .data, .bss)
  • Linker description file

Library Management

  • Adapting standard library functions to HW
  • User library creation and management

Overview: Real-time Operating Systems (RTOS)

  • Types, services, selection criteria

Outlook: OOP Techniques

  • Advantages and issues of object oriented programming
  • Most important UML diagrams

Introduction: Structured Methods for Project Planning

  • Preliminary study, project start, project plan, project implementation

Software Development Process Models

  • V-model, spiral model, RUP, COPES
  • Interactive-incremental
  • Agile software development, XP

Quality of Embedded Systems

  • How to design and develop quality
  • Overview: Standards (MISRA, IEC61508)

Overview: Software Test Process for Developers

  • Test phases and test methods
  • Static test, dynamic test
  • Review, whitebox test, blackbox test

MicroConsult Plus: Extensive Exercises on a Target Hardware

  • Programs are developed with Keil µVision and Arm RealView tools or with IAR Workbench and tested on Arm-7 or Cortex®-M3 based HW.