Course Outline
The curriculum covers the evolution of C standards (C90, C99, C11/C17, C2x) and their new features, the use of source and header files, and basic data types with their applications. It details storage classes and attributes such as const, volatile, static, restricted, inline, and others, along with preprocessor best practices, comparing macros and inline functions. The course also addresses coding style, embedded-specific features, and program sections for memory usage.
Key programming techniques include avoiding unnecessary conversions and limiting ranges and scopes. The course introduces ARM Cortex-M cores, provides an overview of the STM32 microcontroller family, and reviews the hardware used in exercises.
Exercises include:
1. Understanding firmware structure, using types and attributes, and addressing common GPIO programming errors.
2. Working with the const attribute, strings, and UART programming.
3. Implementing ADC and multiplexed LED displays using fixed-point arithmetic and state machines, with hardware display refresh via DMA.
4. Optional topic of the attendee’s choice: crossplexing displays, 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