New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

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”

New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

New Book Recommendation | Fundamentals and Applications of Embedded System Design Based on ARM Cortex-M4 Microprocessor

Book Directory

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 *