Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers (example files)
Volume 3, fourth edition, January 2017, now covers MSP432, TM4C123 and TM4C1294
Jonathan Valvano (home page)  Detailed Table of Contents 
ISBN: 978-1466468863 Available on Amazon  Available on CreateSpace

Advantages of using this book as the textbook

This book is the third in a series of three books that teach the fundamentals of embedded systems as applied to the ARM Cortex-M family of microcontrollers. This third volume is primarily written for senior undergraduate or first-year graduate electrical and computer engineering students. It could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. The first book Embedded Systems: Introduction to ARM Cortex-M Microcontrollers is an introduction to computers and interfacing focusing on assembly language and C programming. The second book Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontrollers focuses on interfacing and the design of embedded systems. There are also MSP432 versions of the first two volumes. This third book is an advanced book focusing on operating systems, high-speed interfacing, control systems, Bluetooth, and robotics.

An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. This book presents components, interfaces and methodologies for building systems. Specific topics include microcontrollers, design, verification, hardware/software synchronization, interfacing devices to the computer, timing diagrams, real-time operating systems, data collection and processing, motor control, analog filters, digital filters, and real-time signal processing.

In general, the area of embedded systems is an important and growing discipline within electrical and computer engineering. In the past, the educational market of embedded systems has been dominated by simple microcontrollers like the PIC, the 9S12, and the 8051. This is because of their market share, low cost, and historical dominance. However, as problems become more complex, so must the systems that solve them. A number of embedded system paradigms must shift in order to accommodate this growth in complexity. First, the number of calculations per second will increase from millions/sec to billions/sec. Similarly, the number of lines of software code will also increase from thousands to millions. Thirdly, systems will involve multiple microcontrollers supporting many simultaneous operations. Lastly, the need for system verification will continue to grow as these systems are deployed into safety critical applications. These changes are more than a simple growth in size and bandwidth. These systems must employ parallel programming, high-speed synchronization, real-time operating systems, fault tolerant design, priority interrupt handling, and networking. Consequently, it will be important to provide our students with these types of design experiences. The ARM platform is both low cost and provides the high performance features required in future embedded systems. Although the ARM market share is large and will continue to grow. Furthermore, students trained on the ARM will be equipped to design systems across the complete spectrum from simple to complex. The purpose of writing these three books at this time is to bring engineering education into the 21st century.

This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework provides more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the web. Specifically for Volume 1, look at the lab assignments for EE319K. For Volume 2 refer to the EE445L labs, and for this volume, look at the lab assignments for EE445M/EE380L.6.

There is a web site accompanying this book http://users.ece.utexas.edu/~valvano/arm . Posted here are ARM Keil uVision and Texas Instruments Code Composer Studio projects for each of the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book.

The book will cover embedded systems for ARM Cortex-M microcontrollers with specific details on the MSP432, TM4C123, and TM4C1294. Most of the topics can be run on the low-cost MSP432, TM4C123 or TM4C1294 LaunchPad. Although the solutions are specific for the MSP432 and TM4C families, it will be possible to use these books for other ARM derivatives.


1. Computer Architecture    

2. Microcontroller Input/Output       

3. Thread Management Design      

4. Time Management Design      

5. Real-Time Systems          

6. Digital Signal Processing      

7. High-Speed Interfacing        

8. File system management       

9. Communication Systems         

10. Robotic Systems    

Appendix 1. Glossary  

Appendix 2. Solutions to Checkpoints  


Reference Material      

Available on Amazon  Available on CreateSpace

Last updated January 4, 2017, Send comments to: Jonathan W. Valvano .