Global training solutions for engineers creating the world's electronics products

C Programming for Embedded Systems

Standard Level - 4 Tage


C Programming for Embedded Systems lehrt die C-Programmiersprache in Bezug auf Embedded-Systems. Die Teilnehmer lernen in diesem Kurs sowohl das gesamte Basiswissen der C-Programmiersprache, als auch wie man einen modernen Embedded-Microcontroller mit Real-Time-Entwicklungstools programmiert. Der Lehrinhalt, die verwendeten Beispiele und die Übungen sind an die praktischen Anforderungen von Embedded-Microcontroller-Programming angepasst.

C Programming for Embedded Systems stellt einen hervorragenden Kompletteinstieg in jeden der Doulos' Embedded-System-Kurse dar, oder für jeden der C im Bezug auf Embedded-Programmierung oder Hardware-Software-Integration lernen möchte.

Praktische Übungen umfassen etwa 50% der Unterrichtszeit und sind sorgfältig auf den Inhalt abgestimmt, um diesen zu vertiefen und die Lernerfahrung zu optimieren. Doulos ist eine herstellerunabhängige Firma, was den Teilnehmern den Vorteil eines objektiven Unterrichts bietet, während sie im Umfeld der von ihnen gewählten Tool-Chain lernen. Öffentliche Kurse nutzen derzeit NXP Kinetis® Design Studio IDE und das FRDM-KL46Z NXP Freedom Development Board. Jeder Teilnehmer wird ein eigenes Entwicklungsboard erhalten, welches er nach dem Kurs auch behalten kann. Weitere Tool-Chains und Entwicklungsboards sind auf Anfrage eventuell für Vor-Ort-Trainings verfügbar. Bitte kontaktieren Sie Doulos für weitere Informationen.

Wer sollte teilnehmen?

C Programming for Embedded Systems ist ein praxisbezogener Kurs, welcher sich an Software-, Firmware- und Hardware-Ingenieure richtet, welche die praktischen Fähigkeiten lernen möchten, die nötig sind, um Embedded-Microcontroller in C zu programmieren. Der Kurs richtet sich an Interessenten, welche keine C-Kenntnisse haben und an Interessenten, welche C bereits in anderem Zusammenhang genutzt haben, aber noch keine oder kaum Erfahrung mit Embedded-Programmierung in C haben.

Was werden Sie lernen?
  • Die Syntax und Semantik der C-Sprache für Embedded-Programmierung
  • Die Prinzipien der Embedded-Software-Programmierung und der Real-Time-Programmierung
  • Wie man einen Embedded-Microcontroller in C programmiert
  • Eine praktische Einführung in Real-Time-Entwicklungstools
  • Wie man ein C-Programm auf dem Ziel-Baustein debugged
  • Wie man auf Memory-Mapped-Peripherals mittels C zugreift
  • Wie man Interrupt-Handlers in C schreibt
  • Eine Einführung in Real-Time-Operating-Systems und –Scheduling
  • Eine Einführung in Low-Power-Software-Design
  • Best Practices zur Embedded-Programmierung
Voraussetzungen

Teilnehmer sollten mit grundsätzlichen Konzepten und allgemeiner Syntax von Programmiersprachen vertraut sein und sollten etwas Erfahrung mit der Programmierung in einer Hochsprache (oder HDL) haben. Im Speziellen sollten Teilnehmer mit Funktionen, Variablen, Datentypen, Operatoren und Statements vertraut sein. Dieser Kurs eignet sich nicht als erster Kontakt mit der Computer-Programmierung. Vorangegangene Erfahrung speziell mit C ist vorteilhaft, aber nicht essentiell. Erfahrung mit Embedded-Programmierung ist nicht erforderlich.

Bitte kontaktieren Sie direkt Doulos, um Ihre spezifischen Erfahrung in Bezug auf diese Voraussetzungen zu diskutieren und abzugleichen.

Kursunterlagen

Doulos' Kursunterlagen haben sich einen Namen als die umfangreichsten und anwenderfreundlichsten Materialien gemacht. Ihr Stil, Inhalt und Umfang sind einzigartig in der Embedded-Systems-Trainingswelt und haben Sie zu wertvollen Resourcen werden lassen. Die Materialien beinhalten:

  • Vollständig indexierte Kommentare, was die Unterlagen zu einem eigenständigen Nachschlagewerk machen
  • Arbeitsbuch voller praktischer Beispiele und Lösungen, um Ihnen zu helfen das Gelernte anzuwenden.
Struktur und Inhalt

Introduction to C

Characteristics of Embedded Systems • C Language Overview • Structure of a C Program • Identifiers • Name Spaces and Scope • Compilation & Linking • MCU Boot Process • C Best Practices for Embedded Systems

Variables, Types and Debugging

MCU Architecture • Program Execution • Variables • Representing Numbers • Types • Casting • Debugging Embedded Systems

Operators and Hardware Manipulation

Understanding Register Maps • Operators • Bit Manipulation • Modulus and Shifting • Memory Addressing • Sizeof • Ternary Operator • Precedence Rules • Best Practices for Embedded Systems

Basic Program Flow Control

Software Design Cycle • Software Architecture • UML • Flowcharts • Round Robin Scheduling • Statements • For and While Loops • If and Switch statements • Infinite Loops • Best Practices for Embedded Systems

Advanced Flow Control

Introduction to Real-time Concepts • Interrupt Basics • Interrupt Vector Tables • Nesting and Priorities • Software Interrupts • Volatile keyword • Shared Data Problems and Solutions • RMA Analysis • Interrupts Best Practice

Advanced Types, Constants and Expressions

Enumerations • Derived Types • Literals • Expressions and Evaluation • State Machines • State Charts • Software Architecture Concepts

Arrays and Pointer Basics

Arrays • Multidimensional Arrays • Strings • String Conversion • Pointer Types • Pointers and Arrays • Pointers Operations • Best Practices for Embedded Systems

More Pointers and Strings

Pointers to Pointers • Pointers to Constants • Constant Pointers • String Libraries • Manipulating Memory • Best Practices for Embedded Systems

Functions

Syntax • Variable Scope • Recursion • Inline Functions • Software Metrics • Static Code Analysis • Testing Techniques • Best Practices for Embedded Systems

Structures and Unions

Overview of Structures • Unions • Driver Design • Defining APIs • Driver Models • GPIO Driver Example

Scheduling Techniques

Arrays of Pointers to Functions • Function Queue Scheduling • Cooperative Scheduling • Scheduler Design • Energy Profiling • Low Power Software Design

Declarations

Syntax • Storage Class Specifiers • Global Variables • Type Qualifiers • Linkage Identifiers • Best Practice for Embedded Systems

Preprocessor

#define • Macros • Precedence • Conditional Compilation • Warnings • #pragma • Predefined Macros

Real-Time Operating Systems

Software Concurrency • Tasks and States • Task Synchronization • Mutexes Semaphores & Queues • GPOS vs RTOS

Customized Topics (applies for on-site, team-based training only)

We can also present supplemental content to address the specific requirements of your team, including extended discussion of topics such as low-power design, software robustness, and avoiding common pitfalls. Please contact Doulos to discuss your specific requirements.

Course Dates

1 Dec 2020 Ringwood, UK Enquire
15 Dec 2020 Munich, DE Enquire

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request

Next dates for this course