-
Notifications
You must be signed in to change notification settings - Fork 1
01. Module1_LearningOutcomes
Mukul Yadav edited this page Sep 10, 2025
·
1 revision
By the end of this module, you’ll be able to:
- Explain what bare-metal programming is and how it differs from Arduino-style abstraction layers.
- Recognize the need for low-level control in performance-, size-, and power-critical embedded applications.
- Understand the basics of registers, bit math, memory layout, and pointers.
- Describe the core components of a microcontroller using a functional block diagram.
- Understand the roles of the clock system, reset logic, memory regions, and peripherals.
- Explain the concept of pin multiplexing and how GPIOs serve multiple functions.
- Understand how registers are mapped in memory and accessed at specific addresses.
- Interpret and modify Special Function Registers (SFRs) to control microcontroller hardware.
- Differentiate between code, data, stack, heap, and peripheral memory regions.
- Locate and interpret key information from a microcontroller’s datasheet (e.g., pin functions, electrical characteristics).
- Navigate a reference manual to identify and configure registers for various peripherals.
- Extract base addresses, bit fields, and register layouts to write low-level code.
- Understand the basic workflow from writing embedded C to uploading it to a microcontroller using the toolchain utilities.
-
Describe the purpose and sequence of components in the embedded toolchain:
- Compiler
- Linker
- Startup files
- Flashing tools
- Debuggers
Next Up: Module 1 - Part 1 | What Is Bare Metal Programming?
Created and maintained by Open Horizon® under the GNU AGPLv3 licence. Visit the full repository at https://github.com/openhorizonrobotics/E-2-ES