Skip to content

QuantumSpawner/microcontroller_programming

Repository files navigation

Microcontroller Programming

by 羅紀翔

Course Description

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

Prerequisites

The students are expected to have a basic understanding of programming concepts and basic C programming.

Course Design

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.

Course Outline

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.

References

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).

About

Course repository for Microcontroller Programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published