Language & Toolchain
Firmware in this profile is written in C, and often a careful subset of C++. This subject is using the language on a real board: fixed-width types, pointers to registers and buffers, structs for messages, and a compiler/linker you can drive from an IDE or command line. Concept revision lives under Knowledge; here you write, compile, and fix code that runs on the MCU.
Starting Points
- C language fundamentals
- C++ for embedded fundamentals
- Kernighan, B. W., & Ritchie, D. M. The C Programming Language (2nd ed.).
- ISO C library and your vendor HAL/SDK documentation.
Key Points
- You write C (or an agreed C++ subset) that compiles without ignoring warnings you do not understand.
- You use
stdint.htypes, structs, and pointers correctly for peripherals and buffers. - You keep dynamic allocation off the MCU hot path unless you can justify it; you know stack vs. heap on your target.
- You build with the project toolchain (IDE or
gcc/cmake) and can explain a linker or include error well enough to fix it. - You structure code into modules (driver, app, config) instead of one file of globals.