Review
Alex Dean’s new textbook is a well-written starting point for students who have experience in electronics and are now moving into microcontroller based projects. It provides students of computer/electronics engineering with a clear understanding of how an embedded processor system works, and how to understand what is happening during software debugging sessions. With its coverage of commonly used microcontroller interfaces like ADC (Analog to Digital Converter) and serial communication interfaces (e.g. UART, SPI, I2C), this book is also a valuable resource for hobbyists who are learning microcontroller applications. Joseph Yiu, Senior Embedded Technology Manager, ARM Ltd.
Pundits predict hundreds of billions of Internet of Things (IoT) devices will appear on the market in coming years. But who will design those products? Dr. Dean’s book is the primer for IoT and embedded systems developers. Given a bit of knowledge about C, and even less about electronics, Embedded Systems Fundamentals will be your Baedeker to building embedded/IoT systems. Based on the hugely-popular Cortex M0+ processor, the book teaches about uniquely embedded subjects, like concurrency, analog and digital interfacing, communications, and much, much more. The illustrations dramatically get the ideas across. This is the book I will now recommend for beginners and practitioners alike. Highly recommended. Jack Ganssle, consultant, Ganssle.com
Alex has seen the real world of embedded system design as few other professors have, and gotten his hands dirty building real stuff. This book reflects that experience. It does an admirable job of covering the embedded computing design space, balancing the opposing forces of hardware vs. software, depth vs. breadth, and performance vs. constraints. The book uses the ARM Cortex-M0+ processor, which has a nice selection of peripherals while still giving the feel of a resource-constrained embedded system. Beyond that, the examples have a strong dose of Alex’s experience working in industry, and deal with many of the practical issues that arise in real products. Professor Phil Koopman, Carnegie Mellon University
Alex Dean’s Embedded Systems Fundamentals is a must-have book for every embedded engineer. It provides a seldom-seen balance among the disciplines of Electrical Engineering, Computer Engineering, and Computer Science. It moves far beyond the academic instructional space to include many real-world examples, and thought-provoking exercises of essential embedded systems technologies and tools. The book also balances the many constraints present in the embedded product space including speed, cost, flexibility, and robustness. I intend to keep an extra copy at all times to pass on to my colleagues within Emerson. William J. Trosky, Vice President Emerson Software Center of Excellence, Emerson Electric, Inc.
Microcontrollers are embedded into larger systems to provide benefits such as better performance, more features, better efficiency, lower costs and better dependability. This textbook introduces students to creating microcontroller-based embedded systems featuring an ARM Cortex-M CPU core.Chapter 1 introduces students to the concepts of MCU-based embedded systems, and how they differ from general-purpose computers. It then introduces the ARM Cortex-M0+ CPU, the Kinetis KL25Z MCU, and the low cost FRDM-KL25Z MCU development board.Chapter 2 presents the general purpose I/O peripheral to provide an early, hands-on experience with reading switches and lighting LEDs using C code. It also introduces the CMSIS hardware abstraction layer, which simplifies software access to peripherals.Chapter 3 introduces multitasking on the CPU, with the goals of improving responsiveness and software modularity while reducing CPU overhead. The interplay of interrupts, peripherals and schedulers (both cooperative and preemptive) is examined.Chapter 4 presents the ARM Cortex-M0+ processor core, including organization, registers, memory, and instruction set. It then discusses interrupts and exceptions, including CPU response and hardware configuration. Designing software for a system with interrupts is discussed, including program design (including partitioning work), interrupt configuration, writing handlers in C, and sharing data safely given preemption.Chapter 5 first gives an overview of tool-chain which translates a program from C source code to executable object code. It then shows side-by-side the source code and the object code the tool-chain has generated to implement it. Topics covered include functions, arguments, return values, activation records, exception handlers, control flow constructs for loops and selection, memory allocation and use, and accessing data in memory.Chapter 6 presents analog interfacing, starting with theory and ending with practical implementations. Quantization and sampling are presented as a foundation for digital to analog conversion, and analog to digital conversion. The DAC, ADC and analog comparator peripherals are presented and used.Chapter 7 presents timer peripherals and their use for generating a periodic interrupt or a pulse-width modulated signal, or for measuring elapsed time or a signal’s frequency. Watchdog timers, used to detect and reset an out-of-control program, are also discussed. The SysTick, PIT, TPM and COP timers are examined.Chapter 8 discusses serial communications, starting with the fundamentals of data serialization, framing, error detection, media access control and addressing. Software queues are introduced to show how to buffer data between communication ISRs and other parts of the program. Three protocols and their supporting peripherals are investigated next: SPI, asynchronous serial (UART) and I2C. UART communication is demonstrated using the FRDM-KL25Z’s debug MCU as a serial port bridge over USB to the PC. I2C communication is demonstrated using the FRDM-KL25Z’s built-in 3 axis accelerometer with I2C interface.Chapter 9 introduces the direct memory access peripheral and its ability to transfer data autonomously, offloading work from the CPU and offering dramatically improved performance. Examples include using DMA for bulk data copying, and for DAC-based analog waveform generation with precise timing.An appendix covers how to measure the power and energy use on the FRDM-KL25Z board, including disconnecting the debug MCU to reduce power. Energy measurement using an ultracapacitor is also presented.For use in ECE, EE, and CS departments.
[amz_corss_sell asin=”1911531034″]
Reviews
There are no reviews yet.