Course Code: emp
Duration: 7 hours
Overview:

The course covers the aspects of modern C language dialects (C99, C11, C2x) related to embedded programming and guidelines for efficient and error-immune programming techniques. The examples/exercises are implemented on STM32 family microcontrollers.

Course Outline:

Development of C language standards: C90, C99, C11/C17, C2x – new features. Source and header files. Basic data types and their usage. Storage classes and attributes: const, volatile, static, restricted, inline and others. Preprocessor usage guidelines; macros vs. inline functions. Coding style. Features related to embedded programming. Program sections and memory
usage.

Programming techniques: avoiding unnecessary conversions, limiting ranges and scopes. Introduction to ARM Cortex-M line cores. STM32 microcontroller family overview. Overview of the hardware used in exercises.

Exercises:
1. Understanding the firmware structure, use of types and attributes. Common problems and mistakes related to GPIO programming.
2. Const attribute and character strings, UART programming
3. ADC and multiplexed LED display – using fixed point arithmetics and state machines. Hardware display refresh via DMA.
4. Attendee’s choice: crossplexing display, software-triggered interrupts or routing C stdout stream to a physical interface.

Sites Published:

Polska - Efficient microcontroller programming in C

Kuwait - Efficient microcontroller programming in C

Oman - Efficient microcontroller programming in C

Slovakia - Efficient microcontroller programming in C

Kenya - Efficient microcontroller programming in C

Nigeria - Efficient microcontroller programming in C

Botswana - Efficient microcontroller programming in C

Slovenia - Efficient microcontroller programming in C

Croatia - Efficient microcontroller programming in C

Serbia - Efficient microcontroller programming in C

Bhutan - Efficient microcontroller programming in C

Nepal - Efficient microcontroller programming in C

Uzbekistan - Efficient microcontroller programming in C