Interrupt handling /service routines, callback function
Exercises: Timer hardware abstraction plus callback
Using Pointers, Function Pointers and Linked Lists
Programming example - scheduler
Task management with linked lists
Exercises: Programming a task management
Real-Time Operating Systems (RTOS) - Overview
Types, services, selection criteria
Function and programming of a scheduler
Exercises: Task switch
Library Management
Adapting standard library functions to hardware
Generating and managing user libraries
Exercise: Generating and integrating a library
Locating Code and Files in the (µC) Memory (Flash, RAM Address Space)
Logical sections (.text, .data, .bss) in the build process
Load and run addresses
Controlling the linker through command files
Finite State Machines, FSM
Descriptions and representation variants
Philosophy and implementation of an FSM in C
Exercises: Programming a traffic light control
Aspects of Embedded Software Engineering
Software quality criteria
Software development process models (Waterfall, V, agile)
Functional safety
Requirements engineering
Verification and test
Capability maturity models
Outlook: OOP Techniques
Advantages and challenges of object oriented programming
UML diagrams
Coding Guidelines
Purpose
MISRA-C directives and rules
MicroConsult Plus: Extensive Exercises on a Target Hardware
The hands-on exercises are performed and tested using the Keil µVision IDE and Arm compiler on an M0-based 32-bit hardware platform.
Lernziele
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.
Zielgruppe
Software developers, software architects
Voraussetzungen
A good understanding of ANSI-C and microcontroller architectures.