Course Outline
Evolution of C language standards: C90, C99, C11/C17, and C2x – focusing on new features. Working with source and header files. Understanding basic data types and their applications. Storage classes and attributes: const, volatile, static, restricted, inline, and others. Best practices for preprocessor usage; comparing macros versus inline functions. Coding style guidelines. Embedded-specific features. Program sections and memory usage.
Programming techniques: avoiding unnecessary conversions, managing ranges and scopes. Introduction to ARM Cortex-M core architecture. Overview of the STM32 microcontroller family. Review of the hardware used during exercises.
Exercises:
1. Understanding firmware structure, use of types and attributes. Common issues and mistakes in GPIO programming.
2. Const attribute and character strings, UART programming.
3. ADC and multiplexed LED display – using fixed-point arithmetic and state machines. Hardware display refresh via DMA.
4. Attendee’s choice: cross-multiplexed display, software-triggered interrupts, or routing the C stdout stream to a physical interface.
Testimonials (2)
The trainer was very interactive and steadily paced.
Carolyn Yaacoby - Yeshiva University
Course - Raspberry Pi for Beginners
Just getting off the ground and doing some basic things was super useful