by 羅紀翔
This course is designed for students new to microcontroller and embedded systems in general. The course will focus on the ARM Cortex-M microcontroller, specifically the STM32 series.
In this course, students will learn how the microcontroller works and how to program it. With the aid of LAB exercises, students will gain hands-on experience in microcontroller and ulimately be able to design and maintain embedded systems. The following topics will be covered in this course:
- Microcontroller Architecture
- C Programming Language
- Software Development
- Embedded System Design
- Toolchains
- Debugging
- Embedded Operating Systems
- Zephyr RTOS
The students are expected to have a basic understanding of programming concepts and basic C programming.
The course will be delivered in a series of lectures and LAB exercises. Each lecture will cover two or three topics. The LAB exercises will be designed to reinforce the concepts learned in the lectures. Additionally, there will be one C technique in each lecture covering advanced C programming techniques.
| Week | Topics | C Techniques | LAB |
|---|---|---|---|
| 1 | Introduction, C Compilation Process, Memory Layout | Preprocessor | STM32 Blink |
| 2 | Program Execution, Exceptions | Macros | Debug |
| 3 | I/O Models, Peripherals | Built-in Functions | UART I |
| 4 | Using STM32MX, More about C | GCC Extensions | UART II, Timer |
| 5 | Software Development, Embedded System Design | container_of |
OOP in C |
TBD for week 6 and onwards.
- Textbooks
- The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors
- Mastering STM32 - Second Edition
- Websites
- Open Courseware (Chinese)
The lecture slides and code examples will be aviailable in this repository.
The textbooks and lecture recordings are available in the NTURT Google Drive (limited to members of NTURT).