Falling deep understands the sorrow of Song Yu, elegant and graceful is also my teacher.
—— Tang Dynasty · Du Fu “Ode to Ancient Sites Five Poems · No. 2”
Chapter 1 Introduction to Embedded Systems
1.1 Concept of Embedded Systems
1.2 Components of Embedded Systems
1.2.1 Structure of Embedded Systems
1.2.2 Embedded Microprocessors
1.2.3 Embedded Operating Systems
1.3 Design Process of Embedded Systems
1.4 Development of Embedded Systems
1.5 Content Arrangement of This Book
1.6 Exercises
Chapter 2 Microprocessor Architecture
2.1 Embedded Microprocessor Architecture
2.1.1 Von Neumann Architecture and Harvard Architecture
2.1.2 Complex Instruction Set and Reduced Instruction Set Computers
2.1.3 Types of Embedded Microprocessors
2.2 ARM Microprocessor Architecture
2.2.1 Programmable Modes
2.2.2 Special Registers
2.3 Interrupt Mechanism
2.4 Embedded Assembly Language
2.4.1 Structure of Assembly Programs
2.4.2 Instruction Format and Addressing Modes
2.4.3 Common Instructions
2.4.4 Design of Assembly Programs
2.5 Pipelining Technology
2.5.1 Types of Pipelining
2.5.2 Three-stage Pipeline of Cortex-M4
2.5.3 Factors Affecting Pipeline Performance
2.6 Summary of This Chapter
2.7 Exercises
Chapter 3 Embedded Bus Technology
3.1 Overview of System Bus
3.2 Bus Structure and Protocols
3.2.1 Structure of CPU Bus
3.2.2 Organization and Evolution of Buses
3.2.3 Typical Buses and Protocols
3.2.4 Support for Buses in STM32F4 Series Chips
3.3 DMA
3.3.1 Definition and Function
3.3.2 DMA Controller Structure and Characteristics of STM32F4 Series Chips
3.3.3 DMA Setup
3.3.4 Status of DMA Transfers
3.3.5 Arbitration of DMA Requests
3.3.6 DMA Latency Performance
3.4 Bus Structure of ARM CPU
3.4.1 Development of ARM CPU Buses
3.4.2 ARM Bus Structure
3.4.3 Multi-layer Bus Matrix Structure
3.4.4 Bus Access Priority of the Matrix
3.5 Performance Analysis of Buses
3.6 Summary of This Chapter
3.7 Exercises
Chapter 4 Memory System
4.1 Overview of Memory Systems
4.2 Classification of Embedded System Memory and Performance Analysis
4.2.1 Classification by Memory Usage
4.2.2 Classification by Information Access Method
4.2.3 Main Technical Indicators of Memory
4.3 ARM Memory Management
4.3.1 Memory Mapping
4.3.2 Memory Format
4.3.3 Working Principles
4.3.4 Startup Configuration
4.3.5 Support for Embedded Flash Memory
4.3.6 Elastic Static Memory Controller
4.3.7 Elastic Memory Controller
4.4 New Types of Memory
4.4.1 MRAM
4.4.2 PRAM
4.4.3 RRAM
4.5 Memory Protection and Verification Technologies
4.5.1 Memory Protection
4.5.2 Verification Technologies
4.6 Summary of This Chapter
4.7 Exercises
Chapter 5 Interface of Embedded Input/Output Devices
5.1 I/O Interfaces
5.1.1 Interface Structure
5.1.2 Composition of I/O Interfaces
5.1.3 Data Transmission of I/O Interfaces
5.2 GPIO
5.2.1 Overview of GPIO
5.2.2 Features of GPIO
5.2.3 GPIO Input/Output Modes
5.2.4 GPIO Pin Multiplexing
5.2.5 GPIO Configuration
5.3 External Interrupts/Events
5.3.1 Overview of External Interrupts/Events
5.3.2 Structure of EXTI and Response Process of External Interrupts/Events
5.3.3 Configuration of External Interrupts/Events
5.4 Communication Interfaces
5.4.1 Overview of Communication Interfaces
5.4.2 Serial Communication
5.4.3 SPI
5.4.4 I2C
5.5 Human-Computer Interaction
5.5.1 Overview of LCD
5.5.2 Control Methods for LCD Display
5.5.3 Introduction to Instructions
5.6 ADC/DAC
5.6.1 Overview of ADC/DAC
5.6.2 Internal Structure of ADC Interface
5.6.3 Functions of ADC
5.6.4 Internal Structure of DAC Interface
5.6.5 Functions of DAC
5.7 Summary of This Chapter
5.8 Exercises
Chapter 6 Program Design and Analysis
6.1 Embedded Program Design
6.1.1 Methods of Embedded Program Design
6.1.2 Embedded Program Models
6.2 Embedded C Language Programming
6.2.1 Methods of Embedded C Language Programming
6.2.2 Elements in Embedded C Language
6.3 Compilation and Optimization Techniques
6.3.1 Translation Process of Compilation
6.3.2 Code Optimization during Compilation
6.4 Program Performance Analysis and Optimization
6.4.1 Methods for Analyzing Program Execution Time Performance
6.4.2 Machine Independent Performance Optimization
6.4.3 Machine Dependent Performance Optimization
6.4.4 Program Power Consumption Analysis and Optimization
6.4.5 Program Size Analysis and Optimization
6.5 Summary of This Chapter
6.6 Exercises
Chapter 7 Construction of Embedded Minimum System
7.1 Embedded Minimum System
7.2 STM32 Embedded Microcontroller
7.2.1 Power System
7.2.2 Clock System
7.2.3 Reset System
7.2.4 External Interfaces
7.3 Construction of Minimum System Based on STM32 Microcontroller
7.3.1 Hardware Design of Minimum System
7.3.2 Setting Up Programming Environment for Minimum System
7.3.3 Program Design for Minimum System
7.4 Summary of This Chapter
7.5 Exercises
Chapter 8 Real-Time Operating Systems
8.1 Overview
8.1.1 Concept of Real-Time Systems
8.1.2 Basic Characteristics of Real-Time Operating Systems
8.1.3 Performance Metrics for Real-Time Operating Systems
8.1.4 Classification of Real-Time Operating Systems
8.1.5 POSIX Standards
8.1.6 Typical Applications of Real-Time Operating Systems
8.1.7 Several Classic Real-Time Operating Systems
8.2 Processes and Tasks
8.2.1 Real-Time Task Models
8.2.2 Classification of Real-Time Tasks
8.2.3 Task Models
8.2.4 Management of Real-Time Tasks
8.3 Real-Time Scheduling
8.3.1 Kernel and Scheduling
8.3.2 Real-Time Scheduling Strategies
8.3.3 Schedulability Analysis
8.4 Common Scheduling Algorithms
8.4.1 Rate Monotonic Scheduling Algorithm
8.4.2 Earliest Deadline First Scheduling Algorithm
8.4.3 Least Laxity First Scheduling Algorithm
8.4.4 Response Time Analysis Methods
8.5 Inter-Process Communication Mechanisms
8.5.1 Communication Methods for Processes
8.5.2 Process Synchronization and Mutual Exclusion
8.6 Summary of This Chapter
8.7 Exercises
Chapter 9 mC/OS Operating System
9.1 Overview of mC/OS III
9.2 Task Management
9.2.1 Execution of Real-Time Kernel
9.2.2 States and Transitions of Tasks
9.2.3 System Services for Task Management
9.2.4 Task Scheduling
9.3 Interrupt Management
9.4 Time Management
9.5 Memory Management
9.6 Synchronization and Message Passing
9.6.1 Semaphores
9.6.2 Event Flags
9.6.3 Message Queues
9.7 Porting of mC/OS
9.8 Summary of This Chapter
9.9 Exercises
Chapter 10 Debugging, Testing, and Validation Methods for Embedded Systems
10.1 Debugging of Embedded Systems
10.1.1 Debugging Techniques for Embedded Systems
10.1.2 Debugging Tools
10.2 Testing of Embedded Software
10.2.1 Testing Process for Embedded Systems
10.2.2 Development Standards and Testing Metrics for Embedded Software
10.2.3 Testing Methods
10.3 Automated Verification Technology for Embedded Software – Model Checking
10.3.1 Model Checking Process
10.3.2 State Explosion Problem
10.3.3 Model Checking Tools
10.4 Summary of This Chapter
10.5 Exercises
Chapter 11 Multi-Core Embedded Microprocessors
11.1 Multi-Core Embedded Systems
11.1.1 Multi-Core Processors
11.1.2 Multi-Core Software Environments
11.2 ARM Multi-Core Processors
11.2.1 ARM MPcore Multi-Processor Structure
11.2.2 Interrupt Management in ARM Multi-Core Processors
11.2.3 big.LITTLE Technology
11.2.4 Startup Process of Multi-Core Processors
11.3 Real-Time Scheduling Algorithms for Multi-Core Processors
11.4 Application Development for Multi-Core Processors
11.4.1 Program Development for Homogeneous Multi-Core Processors
11.4.2 Program Development for Heterogeneous Multi-Core Processors
11.5 Summary of This Chapter
11.6 Exercises
Appendix A Sample Code
A.1 stm32fxx.h File
A.2 Main.c File with Pins as Output
A.3 usart.h File
A.4 usart.c File
A.5 stm32f4xx_it.c File
A.6 Main.c File of USART Project
A.7 Main.c File of Circular Buffer
References
Leave a Comment
Your email address will not be published. Required fields are marked *