
Embedded Engineer Textbook
Description
Book Introduction
From the basic principles of embedded systems to their various applications, everything is covered in one book!
Written in an accessible and user-friendly manner for those new to embedded technology or aspiring embedded engineers, "Embedded Textbook" explains embedded software technology, essential for the Internet of Things, mobile devices, and various electronic equipment.
In addition, it covers Arduino and Raspberry Pi, which are widely used in embedded development environments, and explains the essential guidelines and details that engineers participating in embedded system development should know based on the author's experience and software development principles.
Written in an accessible and user-friendly manner for those new to embedded technology or aspiring embedded engineers, "Embedded Textbook" explains embedded software technology, essential for the Internet of Things, mobile devices, and various electronic equipment.
In addition, it covers Arduino and Raspberry Pi, which are widely used in embedded development environments, and explains the essential guidelines and details that engineers participating in embedded system development should know based on the author's experience and software development principles.
- You can preview some of the book's contents.
Preview
index
CHAPTER 1 The Job of an Embedded Software Engineer 1
01 What is an Embedded System? 3
The Importance of Embedded Systems 3
What's the difference between embedded systems, PCs, and servers? 4
02 Features of Embedded Systems 5
Nature: Treating the Laws of Nature 6
Time: The Need for Real-Time 7
Constraint: Strict Constraint 8
Reliability: High reliability 9
Characteristics of Product-Specific NTCR Requirements 9
03 What is Embedded Software? 10
10 Types of Software
04 Embedded Software Engineer Duties 13
13 Organizations Embedded Software Engineers Belong to
Organizations Change as Embedded Software Scales 13
Professional service, not subcontracting 14
05 Job Types of Embedded Software Engineers 16
CHAPTER 2 Microcomputer Hardware 19
06 Embedded System Configuration 21
07 Embedded Microcomputer Configuration 23
Type 23 of hardware
CPU and Microcomputer 24
Memory 25
Type 27 of Memory
Bus configuration 29
Use of the main bus 29
Local Bus 31
Peripheral 34
Control method of peripheral devices 36
08 What is a CPU? 38
CPU instruction execution 40
Interrupt 43
CHAPTER 3 Embedded Software 47
09 Software for Embedded Systems 49
Types of Embedded Software 49
10 Embedded Software Development Flow 51
Check the actual build flow 53
11 What we can learn from assembly language 59
Startup Routine 61
Trace the flow until the main function is called 61
Memory Map 63
Stack 64
Stack and Interrupts 65
12 Test Environments for Embedded Software 68
ICE 68
13 C Language in Embedded Systems Programming 71
Advantages and Disadvantages of Optimization Options 71
volatile declaration 71
unsigned and signed 72
pragma 73
Pointers and Arrays 73
Interrupt Handler 74
CHAPTER 4 C Programming Using Embedded Systems 77
14 Checking Arduino Hardware 79
What is Arduino? 79
Arduino Uno Hardware Configuration 80
Examining Microcomputer Data Sheets 82
Matching the data sheet to the board 84
The internal structure of the ATmega328P and its relationship to connectors 88
Experiment 93: Turning an LED ON/OFF
LED Experiment Overview 93
LED connection 94
Writing a Flashing Program 96
Checking the Action 101
16 Understanding the LED Experiment Program 103
Register Control from the CPU's Perspective 103
Check 103 in assembler
17 Specifying the LED blink time 109
Using the Timer 111
CHAPTER 5 Real-Time Operating Systems 113
18 Operating Systems for Embedded Systems 115
What is an operating system? 115
Why You Need an Embedded Operating System 116
Disadvantages of Using Embedded Operating Systems 121
19 Trying Out an Embedded Operating System 123
Embedded Operating System Operation 123
20 Learning FreeRTOS Operations 128
FreeRTOS Configuration 128
Basic Operation of FreeRTOS 129
Actual behavior of the source code 131
21 History of Embedded Operating Systems 136
History of Embedded Operating Systems 136
Types and Historical Background of Embedded Operating Systems 138
22 How to Choose an Embedded Operating System 142
142 Points to Consider When Selecting an Embedded Operating System
CHAPTER 6 Smart Devices 145
23 Data-Driven Society 147
Data Utilization 147
24 Smart Devices 149
What is a smart device? 149
150 Examples of Smart Device Use
Smart Device Configuration 152
CHAPTER 7 Embedded Linux 161
25 Embedded Linux 163
163 Reasons to Use the Linux Operating System
Hardware configurations that run the Linux operating system 164
Software configuration that runs the Linux operating system 168
26 Overview of Embedded Linux Software 170
Process 170
Thread 171
IPC 171
Kernel 172
System Call Interface 175
27 Building and Starting Embedded Linux 179
Hardware to be used 179
Linux Distributions for the Raspberry Pi 3B+ 181
Step 183: Getting Yocto Running on a Raspberry Pi 3B+
Running a Build in Yocto 183
28 Verifying the operation of embedded Linux 187
Introduction of a custom development environment through Yocto rebuild 187
Using sysfs 196
Use of open source software 198
203 Points to Watch Out for in Embedded Linux Development
CHAPTER 8 Embedded Software Development Process 207
29 Embedded System Life Cycle 209
30 Embedded System Development Methods 211
Concurrent Development 211
Front loading 212
The V-Shaped Model of Embedded Software Development Process 213
Embedded Software Development Process 214
31 Defining System Requirements 216
32 System Architecture Design 218
33 Software Requirements Definition 223
34 Software Architecture Design 225
35 Software Detailed Design 228
36 Implementation, Unit Tests 229
37 Software Integration, Integration Testing 232
38 Software Validation Testing 235
39 System Integration, Integration Testing, and System Validation Testing 236
40 Product Shipments 237
CHAPTER 9: Embedded Software Development in the IoT/AI Era 239
41 The Industrial Revolution and Embedded Systems 241
The First Industrial Revolution 241
The Second Industrial Revolution 242
The Third Industrial Revolution 243
The Fourth Industrial Revolution 245
42 Embedded System Development in the DX Era 247
Changes in functional layout 247
43 Learning Methods for Embedded Engineers 253
Supari Theory 253
Learning Standard Development Methods 254
If you provide information yourself, other information will also be collected 255
APPENDIX A Installing Arduino IDE/Yocto 257
44 Installing Arduino IDE on Windows 10 259
Arduino IDE Acquisition 259
Installing the Arduino IDE 262
Verifying the operation of AVR commands 266
45 Preparing the Yocto Build Environment 267
Dash's Conversion 267
Installing packages required for build 267
268 When proxy settings are required
46 Setting up the Yocto environment on the Raspberry Pi 3 271
Yocto version 271
Setting up Yocto's environment 271
Setting up the Yocto environment 272
Search 276
01 What is an Embedded System? 3
The Importance of Embedded Systems 3
What's the difference between embedded systems, PCs, and servers? 4
02 Features of Embedded Systems 5
Nature: Treating the Laws of Nature 6
Time: The Need for Real-Time 7
Constraint: Strict Constraint 8
Reliability: High reliability 9
Characteristics of Product-Specific NTCR Requirements 9
03 What is Embedded Software? 10
10 Types of Software
04 Embedded Software Engineer Duties 13
13 Organizations Embedded Software Engineers Belong to
Organizations Change as Embedded Software Scales 13
Professional service, not subcontracting 14
05 Job Types of Embedded Software Engineers 16
CHAPTER 2 Microcomputer Hardware 19
06 Embedded System Configuration 21
07 Embedded Microcomputer Configuration 23
Type 23 of hardware
CPU and Microcomputer 24
Memory 25
Type 27 of Memory
Bus configuration 29
Use of the main bus 29
Local Bus 31
Peripheral 34
Control method of peripheral devices 36
08 What is a CPU? 38
CPU instruction execution 40
Interrupt 43
CHAPTER 3 Embedded Software 47
09 Software for Embedded Systems 49
Types of Embedded Software 49
10 Embedded Software Development Flow 51
Check the actual build flow 53
11 What we can learn from assembly language 59
Startup Routine 61
Trace the flow until the main function is called 61
Memory Map 63
Stack 64
Stack and Interrupts 65
12 Test Environments for Embedded Software 68
ICE 68
13 C Language in Embedded Systems Programming 71
Advantages and Disadvantages of Optimization Options 71
volatile declaration 71
unsigned and signed 72
pragma 73
Pointers and Arrays 73
Interrupt Handler 74
CHAPTER 4 C Programming Using Embedded Systems 77
14 Checking Arduino Hardware 79
What is Arduino? 79
Arduino Uno Hardware Configuration 80
Examining Microcomputer Data Sheets 82
Matching the data sheet to the board 84
The internal structure of the ATmega328P and its relationship to connectors 88
Experiment 93: Turning an LED ON/OFF
LED Experiment Overview 93
LED connection 94
Writing a Flashing Program 96
Checking the Action 101
16 Understanding the LED Experiment Program 103
Register Control from the CPU's Perspective 103
Check 103 in assembler
17 Specifying the LED blink time 109
Using the Timer 111
CHAPTER 5 Real-Time Operating Systems 113
18 Operating Systems for Embedded Systems 115
What is an operating system? 115
Why You Need an Embedded Operating System 116
Disadvantages of Using Embedded Operating Systems 121
19 Trying Out an Embedded Operating System 123
Embedded Operating System Operation 123
20 Learning FreeRTOS Operations 128
FreeRTOS Configuration 128
Basic Operation of FreeRTOS 129
Actual behavior of the source code 131
21 History of Embedded Operating Systems 136
History of Embedded Operating Systems 136
Types and Historical Background of Embedded Operating Systems 138
22 How to Choose an Embedded Operating System 142
142 Points to Consider When Selecting an Embedded Operating System
CHAPTER 6 Smart Devices 145
23 Data-Driven Society 147
Data Utilization 147
24 Smart Devices 149
What is a smart device? 149
150 Examples of Smart Device Use
Smart Device Configuration 152
CHAPTER 7 Embedded Linux 161
25 Embedded Linux 163
163 Reasons to Use the Linux Operating System
Hardware configurations that run the Linux operating system 164
Software configuration that runs the Linux operating system 168
26 Overview of Embedded Linux Software 170
Process 170
Thread 171
IPC 171
Kernel 172
System Call Interface 175
27 Building and Starting Embedded Linux 179
Hardware to be used 179
Linux Distributions for the Raspberry Pi 3B+ 181
Step 183: Getting Yocto Running on a Raspberry Pi 3B+
Running a Build in Yocto 183
28 Verifying the operation of embedded Linux 187
Introduction of a custom development environment through Yocto rebuild 187
Using sysfs 196
Use of open source software 198
203 Points to Watch Out for in Embedded Linux Development
CHAPTER 8 Embedded Software Development Process 207
29 Embedded System Life Cycle 209
30 Embedded System Development Methods 211
Concurrent Development 211
Front loading 212
The V-Shaped Model of Embedded Software Development Process 213
Embedded Software Development Process 214
31 Defining System Requirements 216
32 System Architecture Design 218
33 Software Requirements Definition 223
34 Software Architecture Design 225
35 Software Detailed Design 228
36 Implementation, Unit Tests 229
37 Software Integration, Integration Testing 232
38 Software Validation Testing 235
39 System Integration, Integration Testing, and System Validation Testing 236
40 Product Shipments 237
CHAPTER 9: Embedded Software Development in the IoT/AI Era 239
41 The Industrial Revolution and Embedded Systems 241
The First Industrial Revolution 241
The Second Industrial Revolution 242
The Third Industrial Revolution 243
The Fourth Industrial Revolution 245
42 Embedded System Development in the DX Era 247
Changes in functional layout 247
43 Learning Methods for Embedded Engineers 253
Supari Theory 253
Learning Standard Development Methods 254
If you provide information yourself, other information will also be collected 255
APPENDIX A Installing Arduino IDE/Yocto 257
44 Installing Arduino IDE on Windows 10 259
Arduino IDE Acquisition 259
Installing the Arduino IDE 262
Verifying the operation of AVR commands 266
45 Preparing the Yocto Build Environment 267
Dash's Conversion 267
Installing packages required for build 267
268 When proxy settings are required
46 Setting up the Yocto environment on the Raspberry Pi 3 271
Yocto version 271
Setting up Yocto's environment 271
Setting up the Yocto environment 272
Search 276
Detailed image

Into the book
Embedded systems detect changes in the external world (outside the system), process them with a microcomputer, and feed back the results to the external world.
This operation is also called IPO (Input, Processing, Output).
For example, the simplest system to think of is an automatic door.
Automatic doors use human detection sensors or distance sensors to detect when a person approaches, and the microcomputer activates an actuator to automatically open and close the door.
The automatic lights in the restrooms of office buildings are also a system that detects people with sensors and controls the lights to turn on and off.
--- p.16
Although the C language is a commonly used high-level language, there are several things to be aware of when programming embedded systems.
Most embedded systems have limitations such as limited memory (ROM/RAM) capacity or processing time, so programs must be optimized.
At this time, the compiler's optimization options are used to optimize the program structure to ensure that the constraints are met.
However, there are cases where the program behaves unintendedly depending on optimization during compilation.
--- p.71
FreeRTOS is a real-time operating system developed as open source.
FreeRTOS is compatible with a wide range of microcomputers, allowing users to learn how to use a specific microcomputer and leverage it on other microcomputers. Because it's designed with a limited set of basic RTOS functions, its code size is small and doesn't strain ROM capacity.
You can further reduce the code size by reducing unused functions as needed.
--- p.123
Embedded systems are used as products or systems in various fields.
Unlike the web or applications, these products and systems are sold, provided, and used as hardware.
The most significant characteristic of an embedded system is that there is a physical object called hardware and a computer is installed on it.
--- p.209
Embedded engineers must keep up with the latest technologies to keep up with their work.
However, even the latest technologies have underlying technologies, and the latest technologies are born by applying those underlying technologies.
Even the latest microcomputers are not entirely new.
Because it's based on a microcomputer, new features and performance improvements are possible. The GPU itself is fundamentally no different from previous GPUs.
The basic functions are the same as signal processing in DSP.
The latest communication module control is almost identical to the existing communication module.
I hope you don't fear new technologies, but rather enjoy the joy of using them.
This operation is also called IPO (Input, Processing, Output).
For example, the simplest system to think of is an automatic door.
Automatic doors use human detection sensors or distance sensors to detect when a person approaches, and the microcomputer activates an actuator to automatically open and close the door.
The automatic lights in the restrooms of office buildings are also a system that detects people with sensors and controls the lights to turn on and off.
--- p.16
Although the C language is a commonly used high-level language, there are several things to be aware of when programming embedded systems.
Most embedded systems have limitations such as limited memory (ROM/RAM) capacity or processing time, so programs must be optimized.
At this time, the compiler's optimization options are used to optimize the program structure to ensure that the constraints are met.
However, there are cases where the program behaves unintendedly depending on optimization during compilation.
--- p.71
FreeRTOS is a real-time operating system developed as open source.
FreeRTOS is compatible with a wide range of microcomputers, allowing users to learn how to use a specific microcomputer and leverage it on other microcomputers. Because it's designed with a limited set of basic RTOS functions, its code size is small and doesn't strain ROM capacity.
You can further reduce the code size by reducing unused functions as needed.
--- p.123
Embedded systems are used as products or systems in various fields.
Unlike the web or applications, these products and systems are sold, provided, and used as hardware.
The most significant characteristic of an embedded system is that there is a physical object called hardware and a computer is installed on it.
--- p.209
Embedded engineers must keep up with the latest technologies to keep up with their work.
However, even the latest technologies have underlying technologies, and the latest technologies are born by applying those underlying technologies.
Even the latest microcomputers are not entirely new.
Because it's based on a microcomputer, new features and performance improvements are possible. The GPU itself is fundamentally no different from previous GPUs.
The basic functions are the same as signal processing in DSP.
The latest communication module control is almost identical to the existing communication module.
I hope you don't fear new technologies, but rather enjoy the joy of using them.
--- p.253
Publisher's Review
Includes the latest practical techniques using Arduino and Raspberry Pi!
A must-read for anyone aiming to become an embedded engineer or a new embedded engineer!
This book covers hardware and software knowledge, an overview of embedded programming, real-time operating systems, the development process of embedded software, and even embedded software in the era of the Internet of Things and artificial intelligence.
Additionally, we've included essential information that engineers developing embedded systems in the future should know before joining the development environment.
In particular, it contains enough content to help you understand the structure and troubleshoot how a microcomputer board actually works, rather than being a simple black box.
There is a lot of information about Arduino and Raspberry Pi in other books and on the internet, but most of it only explains how to connect to sensors or set up servers.
However, this book aims to help readers understand microcomputers and operating systems as white boxes by utilizing Arduino, a small microcomputer that is readily available on the market, and Raspberry Pi, a high-performance microcomputer, and to apply them to everything from small microcomputers used in development environments to high-performance microcomputers.
A must-read for anyone aiming to become an embedded engineer or a new embedded engineer!
This book covers hardware and software knowledge, an overview of embedded programming, real-time operating systems, the development process of embedded software, and even embedded software in the era of the Internet of Things and artificial intelligence.
Additionally, we've included essential information that engineers developing embedded systems in the future should know before joining the development environment.
In particular, it contains enough content to help you understand the structure and troubleshoot how a microcomputer board actually works, rather than being a simple black box.
There is a lot of information about Arduino and Raspberry Pi in other books and on the internet, but most of it only explains how to connect to sensors or set up servers.
However, this book aims to help readers understand microcomputers and operating systems as white boxes by utilizing Arduino, a small microcomputer that is readily available on the market, and Raspberry Pi, a high-performance microcomputer, and to apply them to everything from small microcomputers used in development environments to high-performance microcomputers.
GOODS SPECIFICS
- Publication date: July 29, 2020
- Page count, weight, size: 304 pages | 565g | 170*225*17mm
- ISBN13: 9791190665407
- ISBN10: 1190665409
You may also like
카테고리
korean
korean