Yifeng Zhu
Embedded Systems with ARM Cortex-M Microcontrollers
in Assembly Language and C (Third Edition)
ISBN-13: 978-0-9826926-6-0, Publisher: E-Man Press LLC; 3rd edition (July 2017)
Available from Amazon
Home / Introduction / Adoptions / Instructor Site / Sample Labs / Lab Kit / Tutorials / FAQ

If you are an instructor and wish to receive an examination copy for your course, please contact me directly (yifeng.zhu at maine.edu).

Errata of the Third Edition

  • Errata of the first printing (July, 2017) (pdf)

Errata of the Second Edition

  • Errata of the second printing (May, 2016) (pdf)
  • Errata of the first printing (October, 2015) (pdf)

Errata of the First Edition

  • Errata of the third printing (May, 2015) (pdf)
  • Errata of the second printing (March, 2015) (pdf)
  • Errata of the first printing (August, 2014) (pdf)

Table of Contents (pdf)

1. See a Program Running
2. Data Representation
3. ARM Instruction Set Architecture
4. Arithmetic and Logic
5. Load and Store
6. Branch and Conditional Execution
7. Structured Programming
8. Subroutines
9. 64-bit Data Processing
10. Mixing C and Assembly
11. Interrupt
12. Fixed-point and Floating-point Arithmetic
13. Instruction Encoding and Decoding
14. General-purpose I/O
15. General-purpose Timers
16. Stepper Motor Control
17. Liquid-crystal Display (LCD)


18. Real-time Clock (RTC)
19. Direct Memory Access (DMA)
20. Analog-to-Digital Converter (ADC)
21. Digital-to-Analog Converter (DAC)
22. Serial Communication Protocols
23. Multitasking
24. Digital Signal Processing
Appendix A: GNU Compiler
Appendix B: Cortex-M3/M4 Instructions
Appendix C: Floating-point Instructions (Optional on Cortex-M4 and Cortex-M7)
Appendix D: DSP Instructions on Cortex-M4 and Cortex-M7
Appendix E: Cortex-M0/M0+/M1 Instructions
Appendix F: Cortex-M3 16-bit Thumb-2 Instruction Encoding
Appendix G: Cortex-M3 32-bit Thumb-2 Instruction Encoding
Appendix H: HID Codes of a Keyboard
Appendix I: GPIO Alternate Functions (STM32L4)

Keyword Index (pdf)