“So You Wanna Be an Embedded Engineer” by Lewin A.R.W. Edwards is a book that offers practical guidance to aspiring embedded engineers. In the introduction, the author notes that many people are interested in becoming embedded engineers, and he questions the reasons behind this trend. He also explores the moral dilemma of whether to steer people away from the field or welcome them into it.
Chapter 1: What is an Embedded System?
The first chapter defines what an embedded system is and its importance in modern society. The author explains that an embedded system is a computer system that is designed to perform a specific function within a larger system. He also highlights the differences between embedded systems and general-purpose computer systems. The chapter also discusses the history and evolution of embedded systems, which provides context for the rest of the book.
Chapter 2: The Embedded Engineer’s Toolkit
Chapter 2 covers the tools and skills required to be an embedded engineer. The author stresses the importance of having a strong foundation in computer science, mathematics, and physics. He also discusses the various hardware and software tools that an embedded engineer must be familiar with, such as microcontrollers, compilers, debuggers, and oscilloscopes. The chapter provides practical advice on how to learn these skills and tools.
Chapter 3: Designing Embedded Systems
Chapter 3 focuses on the process of designing embedded systems. The author outlines the steps involved in designing an embedded system, including requirements gathering, system architecture, hardware design, software design, and testing. He provides practical examples of how to apply these steps in real-world scenarios. The chapter also covers design patterns and best practices that can be used to improve the efficiency and reliability of embedded systems.
Chapter 4: Building Embedded Systems
Chapter 4 delves into the details of building embedded systems. The author explains the various components that make up an embedded system, such as sensors, actuators, power supplies, and communication interfaces. He also discusses the challenges and considerations involved in selecting and integrating these components. The chapter includes practical examples of building embedded systems and testing them.
Chapter 5: Programming Embedded Systems
Chapter 5 covers the programming aspects of embedded systems. The author explains the basics of programming languages used in embedded systems, such as C and Assembly. He also discusses programming techniques specific to embedded systems, such as interrupt handlers, timers, and low-level I/O. The chapter includes practical examples of programming embedded systems using popular microcontrollers.
Chapter 6: Debugging Embedded Systems
Chapter 6 focuses on the challenging task of debugging embedded systems. The author outlines the various types of bugs that can occur in embedded systems, such as timing issues, memory leaks, and hardware failures. He also discusses the tools and techniques that can be used to debug embedded systems, such as debuggers, logic analyzers, and oscilloscopes. The chapter includes practical advice on how to identify and resolve bugs in embedded systems.
Chapter 7: Real-time Operating Systems
Chapter 7 covers real-time operating systems (RTOS) and their use in embedded systems. The author explains the differences between general-purpose operating systems and RTOS, and the benefits of using an RTOS in embedded systems. He also discusses the common features of RTOS, such as task scheduling, interrupts, and memory management. The chapter includes practical examples of using RTOS in embedded systems.
“So You Wanna Be an Embedded Engineer” is a practical guide to becoming an embedded engineer. The author provides comprehensive coverage of the skills, tools, and techniques required to design, build, program, and debug embedded systems. The book is well-structured, and each chapter builds upon the previous ones.