Yifeng Zhu
Embedded Systems with ARM Cortex-M Microcontrollers
in Assembly Language and C (Fourth Edition)
ISBN-13: 978-0982692677, Publisher: E-Man Press LLC; 4th edition (January 2023)
Available from Amazon, Walmart
Home / Introduction / Adoptions / Instructor Site / Sample Labs / Lab Kit / Tutorials / FAQ


Tutorial 1: Create a project in Keil v5 (pdf)
Tutorial 2: Debugging in Keil v5 (pdf)
Tutorial 3:Clock configuration of STM32L4 processors

Tutorial 4: Printing messages via UART through ST-Link V2.1

Tutorial 5: How to fix common errors?
Tutorial 6: Logic analyzer in Keil
 
Lecture 1: Why do we use Two's Complement?
Lecture 2: Carry and Borrow Flag
Lecture 3: Overflow Flag
Lecture 4: Pointer
Lecture 5: Memory Mapped I/O
Lecture 6: GPIO Output: Lighting up a LED
Lecture 7: GPIO Input: Interfacing a joystick

Lecture 8: LCD

Lecture 9: Interrupts

Lecture 10: Interrupt Enable and Interrupt Priority

Lecture 11: External Interrupts (EXTI)

Lecture 12: System Timer (SysTick)

Lecture 13: Timer: PWM output

Lecture 14: Timer Input Capture

Lecture 15: Race Conditions

Lecture 16: Volatile Variables

Lecture 17: Booting process

Lecture 18: Analogy-to-Digital Conversion (ADC)

Lecture 19: Floating-Point Unit (FPU)

Lecture 20: Fixed Point Numbers

Lecture 21: Why learn assembly language

Lecture 22: Big Endian and Little Endian

Lecture 23: Load and Store Instructions

Lecture 24: Addressing mode: pre-index, post-index, and pre-index with update

Lecture 25: Arithmetic and Logical Instructions

Lecture 26: Updating NZCV bit flags

Lecture 27: Branch Instructions

Lecture 28: Conditional Execution

Lecture 29: Calling a subroutine

Lecture 30: Passing Arguments to a Subroutine

Lecture 31: Preserving registers in a Subroutine

Lecture 32: Mixing C and Assembly