


Table of Contents
Chapter 1 Overview of Embedded Systems
Micro-course video: 158 minutes, 6 episodes
1.1 Introduction to Embedded Systems
1.1.1 Emergence of Embedded Systems
1.1.2 Definition, Characteristics, and Classification of Embedded Systems
1.1.3 Typical Components of Embedded Systems
1.2 Embedded Microprocessors
1.2.1 Introduction to Embedded Microprocessors
1.2.2 Mainstream Embedded Microprocessors
1.3 Embedded Operating Systems
1.3.1 Embedded Linux
1.3.2 Windows CE
1.3.3 Android
1.3.4 μC/OS-Ⅱ
1.3.5 VxWorks
1.3.6 Huawei LiteOS
1.4 Application Areas and Development Trends of Embedded Systems
1.4.1 Application Areas of Embedded Systems
1.4.2 Development Trends of Embedded Systems
1.5 Chapter Summary
Exercises
Chapter 2 ARM Processor Architecture
Micro-course video: 39 minutes, 4 episodes
2.1 Overview of ARM Processors
2.1.1 Introduction to ARM Processors
2.1.2 Development of ARM Architecture
2.1.3 Main Products of ARM Processor Series
2.1.4 Introduction to ARM Development Tools
2.2 Cortex-A8 Processor Architecture
2.3 Cortex-A8 Processor Operating Modes and States
2.3.1 Cortex-A8 Processor Operating Modes
2.3.2 Cortex-A8 Processor States
2.4 Cortex-A8 Memory Management
2.4.1 Basic Data Types of ARM
2.4.2 Floating Point Data Types
2.4.3 Big/Little Endian Storage Modes
2.4.4 Register Groups
2.4.5 Cortex-A8 Storage System
2.5 Cortex-A8 Exception Handling
2.5.1 Exception Vectors and Priorities
2.5.2 Exception Response Process
2.5.3 Exception Return Process
2.5.4 Cortex-A8 Processor S5PC100 Interrupt Mechanism
2.6 Chapter Summary
Exercises
Chapter 3 ARM Instruction Set
Micro-course video: 98 minutes, 9 episodes
3.1 Overview of ARM Instruction Set
3.1.1 Instruction Format
3.1.2 Condition Codes of Instructions
3.2 Addressing Modes of ARM Instructions
3.2.1 Immediate Addressing
3.2.2 Register Addressing
3.2.3 Register Indirect Addressing
3.2.4 Register Shift Addressing
3.2.5 Indexed Addressing
3.2.6 Multiple Register Addressing
3.2.7 Relative Addressing
3.2.8 Stack Addressing
3.2.9 Block Copy Addressing
3.3 Introduction to ARM Instruction Set
3.3.1 Jump Instructions
3.3.2 Data Processing Instructions
3.3.3 Program Status Register Processing Instructions
3.3.4 Load/Store Instructions
3.3.5 Co-Processor Instructions
3.3.6 Exception Generation Instructions
3.4 Introduction to Thumb Instruction Set
3.5 Introduction to ARM Assembly Language Programming
3.5.1 Pseudo-Operations
3.5.2 Pseudo-Instructions
3.5.3 Assembly Statement Format
3.5.4 Program Structure of Assembly Language
3.6 Mixed Programming in C Language and Assembly Language
3.6.1 Inline Assembly in C Programs
3.6.2 Accessing C Language Program Variables in Assembly
3.6.3 Calling Assembly and C Language Functions in ARM
3.7 Chapter Summary
Exercises
Chapter 4 S5PV210 Microprocessor and Interface
Micro-course video: 10 minutes, 1 episode
4.1 Hardware Platform Architecture Based on S5PV210 Microprocessor
4.1.1 Introduction to S5PV210 Processor
4.1.2 Introduction to Internal Modules of S5PV210
4.2 Storage System
4.2.1 Address Space of S5PV210
4.2.2 Boot Process of S5PV210
4.3 Clock System
4.3.1 Overview of S5PV210 Clock
4.3.2 Clock Structure of S5PV210
4.4 GPIO Interface
4.4.1 Overview of GPIO
4.4.2 GPIO Registers
4.4.3 Steps for GPIO Operation
4.4.4 Example of an LED Light
4.5 Serial Communication Interface
4.5.1 Serial Communication Methods
4.5.2 RS-232C Serial Interface
4.5.3 Asynchronous Serial Communication of S5PV210
4.5.4 UART Registers of S5PV210
4.5.5 UART Communication Example
4.6 A/D Converter
4.7 Chapter Summary
Exercises
Chapter 5 ARM-Linux Kernel
Micro-course video: 87 minutes, 9 episodes
5.1 Overview of ARM-Linux
5.1.1 Basic Architecture of GNU/Linux Operating System
5.1.2 Characteristics of ARM-Linux Kernel Versions
5.1.3 Main Architecture and Functions of ARM-Linux Kernel
5.1.4 Directory Structure of Linux Kernel Source Code
5.2 Process Management in ARM-Linux
5.2.1 Representation and Switching of Processes
5.2.2 Processes, Threads, and Kernel Threads
5.2.3 Special Fields of Process Descriptor task_struct
5.2.4 do_fork() Function
5.2.5 Creation of Processes
5.2.6 Creation of Threads and Kernel Threads
5.2.7 Execution of Processes – exec Function Family
5.2.8 Termination of Processes
5.2.9 Scheduling of Processes
5.3 Memory Management in ARM-Linux
5.3.1 Overview of Memory Management in ARM-Linux
5.3.2 Virtual Memory Space and Distribution of ARM-Linux
5.3.3 Process Space Description
5.3.4 Physical Memory Management
5.3.5 Management Techniques Based on Slab Allocator
5.3.6 Non-contiguous Memory Allocation in Kernel (vmalloc)
5.3.7 Brief Overview of Page Reclamation
5.4 ARM_Linux Modules
5.4.1 Writing and Compiling LKM
5.4.2 Comparison of LKM Version Differences
5.4.3 Loading and Unloading Modules
5.4.4 Toolset module-init-tools
5.5 Interrupt Management in ARM-Linux
5.5.1 Basic Concepts of ARM_Linux Interrupts
5.5.2 Initialization of Kernel Exception Vector Table
5.5.3 Interrupt Handling in Linux
5.5.4 Changes to Interrupt Handling System after Kernel Version 2.6.38 – General Interrupt Subsystem
5.6 System Calls in ARM-Linux
5.7 Chapter Summary
Exercises
Chapter 6 Embedded Linux File System
Micro-course video: 15 minutes, 2 episodes
6.1 Basics of Linux File System
6.1.1 Overview
6.1.2 ext2 File System
6.1.3 ext3 and ext4 File Systems
6.2 Embedded File Systems
6.2.1 Overview
6.2.2 JFFS2 Embedded File System
6.3 Introduction to YAFFS and YAFFS2 File Systems
6.3.1 YAFFS File System
6.3.2 Introduction to YAFFS2 File System
6.4 Root File System
6.4.1 Overview of Root File System
6.4.2 Tools for Creating Root File System – BusyBox
6.4.3 Creation of YAFFS2 File System
6.5 Chapter Summary
Exercises
Chapter 7 Porting and Debugging Embedded Linux System
Micro-course video: 122 minutes, 8 episodes
7.1 Basic Concepts and Typical Structure of BootLoader
7.1.1 Basic Concepts of BootLoader
7.1.2 Operating Modes of BootLoader
7.1.3 Typical Structure of BootLoader
7.1.4 Common BootLoaders
7.2 U-Boot
7.2.1 Overview of U-Boot
7.2.2 General Process of U-Boot Startup
7.2.3 U-Boot Environment Variables
7.2.4 U-Boot Commands
7.3 Establishing Cross Development Environment
7.4 Cross Compilation Toolchain
7.4.1 Overview of Cross Compilation Toolchain
7.4.2 Methods for Building Toolchain
7.4.3 Main Tools of Cross Compilation Toolchain
7.4.4 Makefile
7.5 Porting Process of Embedded Linux System
7.5.1 Porting U-Boot
7.5.2 Configuration, Compilation, and Porting of Kernel
7.6 GDB Debugger
7.7 Remote Debugging
7.7.1 Composition of Remote Debugging Tools
7.7.2 Communication Protocol – RSP
7.7.3 Implementation Methods and Settings for Remote Debugging
7.7.4 Application Examples of Remote Debugging
7.8 Kernel Debugging
7.8.1 printk()
7.8.2 KDB
7.8.3 Kprobes
7.8.4 KGDB
7.9 Chapter Summary
Exercises
Chapter 8 Device Driver Design
Micro-course video: 65 minutes, 6 episodes
8.1 Overview of Device Driver Development
8.1.1 Classification of Linux Device Drivers
8.1.2 Processing Flow of Drivers
8.1.3 Framework of Device Drivers
8.1.4 Loading of Drivers
8.2 Kernel Device Model
8.2.1 Functions of Device Model
8.2.2 sysfs
8.2.3 Implementation Mechanism of sysfs kobject
8.2.4 Organization of Device Model – platform Bus
8.3 Character Device Driver Design Framework
8.3.1 Important Data Structures of Character Devices
8.3.2 Framework of Character Device Driver
8.4 Overview of GPIO Driver
8.4.1 Key Data Structures of gpiolib
8.4.2 Requesting and Registering GPIO
8.5 I2C Bus Driver Design
8.5.1 Overview of I2C Bus
8.5.2 I2C Driver Framework
8.5.3 Key Data Structures
8.5.4 Core Interface Functions of I2C
8.5.5 General Methods for I2C Device Driver
8.6 Overview of Block Device Driver Design
8.6.1 Overall Framework of Block Device Driver
8.6.2 Key Data Structures
8.6.3 Request Queue Operations of Block Devices
8.7 Embedded Network Device Driver Design
8.7.1 Framework of Network Device Driver
8.7.2 Key Data Structures of Network Device Driver
8.7.3 Overview of Network Device Driver Design Methods
8.7.4 Example of Network Device Driver – Analysis of DM9000 Network Card Driver
8.9 Chapter Summary
Exercises
Chapter 9 Basics of Qt Graphical User Interface Application Development
Micro-course video: 14 minutes, 2 episodes
9.1 Introduction to Qt
9.2 Overview of Qt 5
9.2.1 Introduction to Qt 5
9.2.2 Understanding the Components of Qt 5 through the “Help” Menu – Modules
9.2.3 Installation and Integration of Qt Development Environment under Linux
9.2.4 Functions and Features of Qt Creator
9.3 Signal and Slot Mechanism
9.4 Qt Programming
9.4.1 Hello World Program
9.4.2 Multi-window Applications
9.5 Qt Database Applications
9.5.1 Database Drivers
9.5.2 Connection between Qt and SQLite Database
9.5.3 SQL Model
9.6 Chapter Summary
Exercises
Chapter 10 SQLite Database
Micro-course video: 63 minutes, 6 episodes
10.1 Overview of SQLite Database
10.1.1 Overview of Embedded Database Based on Linux Platform
10.1.2 Characteristics of SQLite
10.1.3 Architecture of SQLite
10.2 Installation of SQLite
10.3 Common Commands of SQLite
10.4 Data Types of SQLite
10.5 API Functions of SQLite
10.5.1 Core C API Functions
10.5.2 Extended C API Functions
10.6 SQLite Database Management Tools
10.7 Chapter Summary
Exercises
Chapter 11 Case Studies in Embedded System Development and Design
Micro-course video: 32 minutes, 4 episodes
11.1 Introduction to Embedded System Design Methods
11.1.1 Traditional Embedded System Design Methods
11.1.2 Embedded System Design Methods based on the Concept of “Co-design”
11.2 Design Example of Embedded Web Server Based on ARM
11.2.1 System Environment Setup
11.2.2 Principle of Web Server
11.2.3 Design of Embedded Web Server
11.3 Design Example of IoT Gateway
11.3.1 Background Introduction – Overall Architecture of Environmental Monitoring System Platform
11.3.2 Hardware Design Scheme of Gateway Node
11.3.3 System Software Design
11.3.4 Database Construction
11.4 Design Example of Intelligent Unattended Laboratory Monitoring System
11.4.1 Overall Framework of the System
11.4.2 Student Course Selection Reservation
11.4.3 Access Control System
11.4.4 Network Topology and Routing Protocol of ZigBee Network
11.4.5 Use of Qt
11.5 Chapter Summary
References

Purchase Link
Lottery