Wednesday, January 17, 2018

Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C Third Edition


The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding. The book also gives detailed examples of interfacing peripherals, such as general purpose I/O (GPIO), LCD driver, keypad interaction, stepper motor control, PWM output, timer input capture, DAC, ADC, real-time clock (RTC), and serial communication (USART, I2C, SPI, and USB).

Significant changes in the third edition include updated serial communication description (UART, SPI, and I2C), new serial communication examples, incorporation of GNU gcc compiler, low power modes, modification of example programs from STM32L1 (Cortex-M3) to STM32L4 (Cortex-M4).

Paperback: 738 pages
Publisher: E-Man Press LLC (July 1, 2017)
Language: English
Product Dimensions: 7.4 x 1.5 x 9.7 inches
Shipping Weight: 2.7 pounds

Reviews
"Excellent reference for introduction to ARM Assembly and C programming. Many useful examples and labs as well as exercises. Highly recommend this book."
- Dalton Binette

"It's a great book, has many examples and has a excellent explanations and comments of codes. Has a very good entry to architecture and most basic things of embedded systems and many more things. Really it's a great book."
- Eduardo

"I found this book to be highly resourceful and it offered an easy understanding of the ARM processor. The book does a great job of simplifying the ARM programming process by offering extremely practical and cool examples that allow the Micro-controller to be programmed in C and Assembly. The book is written very well and allows you to hit the ground running! I definitely recommend this book."
- Rickey D.

"The above comment with the contents of the book is incomplete, below is the correct table of contents.

Chapter 1. See a Program Running
Chapter 2. Data Representation
Chapter 3. ARM Instruction Set Architecture
Chapter 4. Arithmetic and Logic
Chapter 5. Load and Store
Chapter 6. Branch and Conditional Execution
Chapter 7. Structured Programming
Chapter 8. Subroutines
Chapter 9. 64-bit Data Processing
Chapter 10. Mixing C and Assembly
Chapter 11. Fixed-point and Floating-point Arithmetic
Chapter 12. Interrupt
Chapter 13. Instruction Encoding and Decoding
Chapter 14. Generic-purpose I/O
Chapter 15. General-purpose Timers
Chapter 16. Stepper Motor Control
Chapter 17. Liquid-crystal Display (LCD)
Chapter 18. Real-time Clock (RTC)
Chapter 19. Direct Memory Access (DMA)
Chapter 20. Analog-to-Digital Converter
Chapter 21. Digital-to-Analog Converter
Chapter 22. Serial Communication Protocols
Chapter 23. Multitasking
Appendix A: Cortex-M3 16-bit Thumb-2 Instruction Encoding
Appendix B: Cortex-M3 32-bit Thumb-2 Instruction Encoding
Appendix C: HID Codes of a Keyboard
Bibliography
Index"
- Chris Santos

"Excellent book for beginners to learn embedded systems, particularly on ARM assembly programming. This book provides many C programs with side-by-side assemblies, making me understand assembly codes better.

All codes do NOT use ARM CMSIS and the standard API libraries. The programs interface peripherals directly by controlling and accessing peripheral registers. This enables deeper understanding how a microprocessor works.

I enjoyed the lab-in-a-box platform (32L152CDISCOVERY Discovery Kit) very much. It is very convenient to program and debug the kit. All I need is an USB cable. The kit replaces the STM32L Discovery Kit. However, they are exactly the same except that 32L152CDISCOVERY has larger flash memory.

While the book covers Cortex-M3, all assembly programs of the book can run on Cortex-M4 without any modification. In a simple word, Cortex-M4 = Cortex-M3 + DSP + Optional FPU."
- Hengshanli

...

About the Author
Yifeng Zhu is Professor of Electrical and Computer Engineering at the University of Maine (UMaine). He received his Ph.D and M.S. in Computer Science from the University of Nebraska, and B.S. in Electrical Engineering from Huazhong University of Science and Technology (HUST). His current research interests include computer architecture and systems, data storage systems, energy-efficient memory systems, cloud computing, parallel and distributed computing, and wireless sensor networks. He has published more than 60 peer-reviewed conference and journal papers.

No comments:

Post a Comment