The following provides a sample teaching schedule (14-week semester).
Week |
Lecture |
Lab |
1 |
Lec. 1: ARM Intro & Syllabus
Lec. 2: Keil Demo, GPIO push-pull, open-drain
Lec. 3: LCD Driver |
1. Interfacing Push-button and LED in C
Reading: Ch.14 GPIO |
2 |
Lec. 4: Two’s Complement (TC), overflow/carry
Lec. 5: TC simplifies hardware
Lec. 6: GPIO, push-pull, open-drain
|
2. LCD Display Driver in C
Reading: Ch.17 LCD |
3 |
Lec. 7: ARM ISA overview
Lec. 8: Arithmetic and logic
Lec. 9: Load/store, big/little endian
|
3. Interfacing Keypad in C
Reading: Ch.14 GPIO |
4 |
Lec. 10: Load/store, addressing modes
Lec. 11: Branch instructions
Lec. 12: Conditional execution
|
4. Stepper Motor Control in C
Reading: Ch.16 Motor |
5 |
Lec. 13: Subroutine (BL, BX LR), passing arguments in registers
Lec. 14: Subroutines, passing arguments in stack
Lec. 15: Recursive functions (preserve environment via stack)
|
5. Stepper Motor Control in Assembly
Reading: Ch.16 Motor |
6 |
Lec. 16: Midterm Exam 1
Lec. 17: Interrupt, stacking/unstacking
Lec. 18: Enable/disable interrupt, priority
|
6. SysTick in C
Reading: Ch.11 Interrupt |
7 |
Lec. 19: Demo of external interrupt (Push button and light up LED)
Lec. 20: Timer, PWM
Lec. 21: Timer, input capture
|
7. Timer PWM Timer in Assembly
Reading: Ch.15 Timer |
8 |
Lec. 22: C calls assembly codes
Lec. 23: Assembly calls C codes
Lec. 24: Static variables
|
8. Timer Input Capture: Interfacing with Ultrasonic Distance Measurement in C
Reading: Ch.15 Timer |
9 |
Lec. 25: Volatile variables
Lec. 26: Structured assembly programming
Lec. 27: Structured assembly programming
|
9. Timer Input Capture: Interfacing with Ultrasonic Distance Measurement in Assembly
Reading: Ch.15 Timer |
10 |
Lec. 28: Midterm Exam 2
Lec. 29: ADC
Lec. 30: DMA
|
10. Analog-to-Digital Converter (ADC)
Reading: Ch.20 ADC |
11 |
Lec. 31: DAC
Lec. 32: 64-bit operations
Lec. 33: 64-bit operations
|
11. Digital-to-Analog Converter (DAC)
Reading: Ch.21 DAC |
12 |
Lec. 34: Fixed-point numbers
Lec. 35: Fixed-point numbers
Lec. 36: Floating-point numbers
|
12. Music Synthesizing (DAC)
Reading: Ch.21 DAC |
13 |
Lec. 37: Floating-point numbers
Lec. 38: USART
Lec. 39: SPI and I2C
|
Bonus lab:
RGB LED strip, capacitive touch sensing, or USB HID |
14 |
Lec. 40: USB
Lec. 41: Multitasking (context switch)
Lec. 42: Course Review
|
|