Embedded System Design and Application Teaching Materials

Embedded System Design and Application Teaching Materials

Embedded System Design and ApplicationCourse Teaching Outline

01

Course Description

Course Name (Chinese):Embedded System Design and Application(B)

Credits:2

Course Name (English):The Design and Application of Embedded System

Total Hours:Total 48 hours (Theory: 38 hours, Practice: 10 hours)

02

Course Nature and Introduction

“Embedded System Design and Application” is a required foundational course for undergraduate students majoring in Computer Science and Technology, Electronic Information Engineering, and Internet of Things Engineering, offered in the second semester of the sophomore year. It is a comprehensive application development course that combines embedded chips, electronic technology, C language, and communication technology, playing an important role in cultivating students’ engineering application abilities.

This course focuses on theoretical teaching, with some experimental teaching included, to better integrate theory and practice. Through this course, students will understand the basic principles and design methods of embedded systems, initially master the process of embedded system development, the use of development tools, and common basic theoretical knowledge, such as cross-compilation, file processing, process management, serial communication, network communication, and embedded device drivers, providing students with a systematic knowledge support for embedded system development, enabling them to quickly engage in embedded-related work development.

03

Course Objectives

Expected Quality Acquisition: Discovering students’ interests, planning for future careers, participating in discussions in the embedded field, and being able to rationally and positively focus on problem-solving. Encouraging students to innovate through experimentation.
Expected Ability Acquisition: Learning the basic theory and applications of embedded systems, understanding the composition and application of embedded systems; cultivating the basic abilities to analyze and design embedded systems. Developing self-learning, problem analysis and solving abilities, as well as a responsible work attitude and meticulous work style.
Expected Knowledge Acquisition: 1. Familiarity with the basic concepts of embedded systems; mastering the basic knowledge of ARM microprocessor architecture. 2. Mastering the basic analysis and design methods of embedded systems, capable of analyzing and designing typical embedded systems. 3. Familiarity with the basic knowledge of real-time operating systems. 4. Mastering embedded programming techniques, capable of program design in typical embedded system environments.

04

Course Requirements

Have a certain foundation in program development, familiar with C language programming, and understand the Linux operating system.

05

Teaching Hour Distribution (32 hours outline)

Session

Hours

Teaching Content

Assignments

(including preview arrangements, exercises, and knowledge expansion)

Points of Reflection

1

2

1. Embedded System Basics

1. Introduction to Embedded Systems;

2. Development and Application Fields of Embedded Systems;

3. Embedded Operating Systems;

4. The Development Process of Embedded Systems (Key Point);

5. Application Solutions of Embedded Systems.

What applications of embedded systems are there in daily life?

2,3

4

2. Embedded System Hardware Architecture 1. Related Basic Knowledge;

2. Embedded System Hardware Platform (Key Point, Difficulty);

3. ARM Microprocessor Architecture (Key Point);

4. Microprocessor Structure.

Exercise: Explain the composition of embedded systems;

Knowledge Expansion: ARM Processor Architecture;

Preview: Linux System

4

2

3. Embedded Linux Operating System 1. Basic Concepts of Linux;

2. Embedded Linux File System (Key Point, Difficulty);

3. Common Linux Operating Commands (Key Point);

4. Linux File Editor;

5. Linux Boot Process.

Exercise: Usage of various Linux commands.

5,6

4

4. Basics of Embedded Linux Program Development

1. Embedded Linux Compiler;

2. “File Inclusion” Processing (Key Point);

3. Make Command and Makefile Project Management (Key Point, Difficulty);

4. Embedded Linux Assembly Language Program Design.

Exercise: What is the process of compiling a Linux program?

7

2

5. Basic Operations of Embedded Linux Development

1. Understanding the actual process of Make and Makefile (Key Point);

2. Writing Makefile documents to achieve automatic compilation.

Requirements:

1. Write basic functional programs;

2. Write project documents according to Makefile implicit requirements;

3. Run programs and check.

Exercise: Applications of Make and Makefile

8

2

6. Embedded Linux Program Development Shell and Bit Operations (Practice 2 hours)

1. Embedded Linux Shell Programming (Key Point);

2. Bit Operation Program Writing (Key Point).

Exercise: Shell programming and bit operations.

9,10

4

7. Establishing Embedded Development Environment

(1) Theoretical Teaching

1. Establishing Host Development Environment (Key Point);

2. Configuring Super Terminal Minicom;

3. Establishing Data Sharing Service;

4. Writing Methods for Embedded System Development Board.

How to make the written hello.c program run successfully on the development board?

11

2

(2) Practical Teaching (Practice 2 hours)

1. Connection between Virtual Machine and Development Board;

2. Writing application programs, cross-compiling, and writing to the development board.

12

2

8. File Processing

(1) Theoretical Teaching

1. File Processing in Embedded Linux;

2. Usage of Open, Close, Read, Write, and Lseek Functions (Key Point).

Exercise: What file processing functions are there? What are their prototypes?

13

2

(2) Practical Teaching (Practice 2 hours)

File operation experiment:

Requirements: Write a program that includes 2 functionalities:

(1) Input information for 10 students in 2 courses, including student ID, name, course name, and grades; store this information in a file.

(2) Grade inquiry: Query course grades based on name, student ID, and course name.

14

2

9. Process and Control

1. Concept of Process

2. Pipe Communication;

3. Shared Memory (Key Point, Difficulty).

Exercise: Communication methods and principles between processes;

Preview: Serial Communication.

15

2

10. Serial Communication

1. Principles of Embedded Serial Communication;

2. Embedded Linux Serial Communication Technology (Key Point).

16

2

11. Embedded Network Application Development

1. Basic Knowledge of Network Programming (Key Point);

2. Socket Network Programming (Key Point, Difficulty);

Exercise: Common functions and prototype descriptions in Socket communication

17

2

12. Embedded Network Application Development (Practice 2 hours)

Socket network communication experiment.

Requirements:

1. Write a program that sends information through Socket;

2. Write a program that receives information through Socket;

3. Run separately on the virtual machine and the experimental box.

What is the working principle of the common Linux network application program Apache?

18

2

13. Design of Embedded Character Device Driver Program

(1) Theoretical Teaching

1. Basics of Embedded Device Driver Programs (Key Point);

2. Design of Character Device Driver Programs (Key Point).

Exercise: Write a simple character device driver.

19

2

(2) Practical Teaching

Experiment on character device driver program design (Practice 2 hours)

1. Writing and compiling device driver programs

2. Writing and compiling user application programs

20,21

4

14. Example of Device Driver Program Development

1. GPIO Device Driver Program Design (Key Point);

2. Design of DC Motor Driver Program

Exercise: Design a GPIO control program.

22

2

16. Establishing Android System Development Environment

1. Creating Android Applications (Key Point);

2. Android Application Design Examples (Key Point).

23,24

4

17. Comprehensive Application Example: Remote Control of Devices through Cloud

1. Design Goals and System Structure

2. Program Design for Development Board Device Side (Key Point);

3. Program Design for Server Gateway Side (Key Point);

4. Program Design for Mobile Side (Key Point).

Exercise: Design a program to remotely control a motor through a mobile phone.

06

Accompanying Textbook

Embedded System Design and Application Teaching Materials

Embedded System Design and Application Teaching Materials

Scan to get discounts on books

07

Content Introduction

This book, based on the Cortex-A8 microprocessor, systematically introduces the basic concepts, principles, design principles, and methods of embedded system development and design. It briefly introduces the basic knowledge of embedded systems and the Linux operating system, and provides detailed explanations of establishing the embedded Linux development environment, C language program design and compilation methods in the Linux development environment, file I/O processing of embedded systems, device driver design, etc. Finally, it introduces the running examples of the Android mobile phone remote control embedded development board driver program. This book explains from basic concepts to specific applications, providing a large number of examples and illustrations for clarification, and detailed analysis and explanation of short typical cases, which will greatly assist readers in their learning.

08

Accompanying Video Demonstration

11

Directory

Scroll up and down to view

Chapter 1 Embedded System Basics

1.1 Introduction to Embedded Systems

1.1.1 Basic Concepts of Embedded Systems

1.1.2 Architecture of Embedded Systems

1.1.3 Characteristics of Embedded Systems

1.2 Development and Application Fields of Embedded Systems

1.2.1 Development History of Embedded Systems

1.2.2 Development Prospects and Trends of Embedded Systems

1.3 Embedded Operating Systems

1.3.1 Development of Embedded Operating Systems

1.3.2 Several Representative Embedded Operating Systems

1.4 Development Process of Embedded Systems

1.5 Application Solutions of Embedded Systems

1.5.1 Video Network Monitoring System Based on Embedded Systems

1.5.2 Boiler Control Scheme Based on Embedded Systems

1.5.3 Gateway Implementation Scheme Based on Embedded Systems

Chapter Summary

Exercises

Chapter 2 Embedded System Hardware Architecture

2.1 Related Basic Knowledge

2.1.1 Embedded Microprocessors

2.1.2 Pipeline Technology of Embedded Microprocessors

2.1.3 Registers and Memories

2.1.4 Buses

2.1.5 I/O Ports

2.1.6 Interrupts

2.1.7 Data Encoding

2.2 Embedded System Hardware Platforms

2.3 ARM Microprocessor Architecture

2.3.1 ARM Company and ARM Architecture

2.3.2 Introduction to ARM Series Microprocessors

2.4 Structure of Microprocessors

2.4.1 RISC Architecture and ARM Design Philosophy

2.4.2 Minimum System Design of ARM Cortex Microprocessor Structure

2.4.3 Structure of Cortex A8 Microprocessor

2.4.4 Storage Address Space of Cortex A8

2.4.5 GPIO Ports of Cortex A8

Chapter Summary

Exercises

Chapter 3 Embedded Linux Operating System

3.1 Basic Concepts of Linux

3.2 Common Linux Operating Commands

3.2.1 File Directory Related Commands

3.2.2 Disk and System Operations

3.2.3 Packing and Compression Related Commands

3.2.4 Network Related Commands

3.3 Text Editors in Linux

3.3.1 Vi Text Editor

3.3.2 gedit Text Editor

3.4 Linux Boot Process

3.4.1 Boot Process of Linux System

3.4.2 ARM Linux Operating System

3.5 Data Sharing and Data Transmission

3.5.1 Application of Serial Communication Protocol to Transmit Data

3.5.2 Setting Data Sharing between Windows and Linux Systems in VMware Virtual Machine

Chapter Summary

Exercises

Chapter 4 Basics of Embedded Linux Program Development

4.1 Embedded Linux Compiler

4.1.1 C Language Compilation Process under Linux

4.1.2 GCC Compiler and Basic Usage

4.2 “File Inclusion” Processing

4.3 Make Command and Makefile Project Management

4.3.1 Understanding Make

4.3.2 Makefile Variables

4.3.3 Makefile Rules

4.3.4 Usage of Make Command

4.4 Embedded Linux Assembly Language Program Design

4.4.1 Embedded Linux Assembly Language Format

4.4.2 Examples of Embedded Linux Assembly Programs

4.4.3 Compiling Embedded Linux Assembly Programs

4.5 Embedded Linux Shell Programming

4.5.1 Basic Syntax of Shell

4.5.2 Control Statements in Shell

4.5.3 Examples of Shell Programming

4.6 Bit Operations

4.6.1 Bit Operators

4.6.2 Bit Expressions

4.6.3 Application Examples of Bit Operations in Register Settings

Chapter Summary

Exercises

Chapter 5 Establishing Embedded System Development Environment

5.1 Establishing Host Development Environment

5.1.1 Cross-compilation

5.1.2 Establishing Cross-compilation Development Environment

5.2 Configuring Super Terminal Minicom

5.3 Compiling Embedded Linux System Kernel

5.3.1 Kernel Trimming Configuration

5.3.2 Kernel Compilation

5.4 Making File Systems

5.5 Writing Methods for Embedded System Development Board

5.5.1 Bootloader

5.5.2 Writing for ARM Cortex A8 Kernel Development Board

Chapter Summary

Exercises

Chapter 6 Embedded Linux File Processing and Process Control

6.1 File Processing in Embedded Linux

6.1.1 File Descriptors and File Processing

6.1.2 open and close Functions

6.1.3 read, write, and lseek Functions

6.2 Processes and Process Control

6.2.1 Processes

6.2.2 Process Control

6.3 Inter-process Communication

6.3.1 Communication Methods between Processes

6.3.2 Pipes

6.3.3 Shared Memory

6.4 Embedded Linux Serial Communication Technology

6.4.1 Basics of Embedded Linux Serial Communication

6.4.2 Detailed Explanation of Embedded Linux Serial Settings

6.4.3 RS232C Standard

6.4.4 Serial Driver Program Design

Chapter Summary

Exercises

Chapter 7 Embedded Linux Network Application Development

7.1 Basic Knowledge of Network Programming

7.1.1 IP Addresses and Port Numbers

7.1.2 Sockets

7.2 Socket Network Programming

7.2.1 Socket Network Functions

7.2.2 Examples of Socket Network Programming

7.3 Web Server Program Design for Embedded Systems

7.3.1 Web Servers

7.3.2 Program Design of Web Servers

7.4 Developing New TCP Communication Protocols

Chapter Summary

Exercises

Chapter 8 Embedded Device Driver Program Design

8.1 Basics of Embedded Device Driver Programs

8.1.1 Overview of Device Driver Programs

8.1.2 Framework of Device Driver Programs

8.1.3 Dynamic Loading Process of Device Driver Programs

8.1.4 Functional Interface Function Module of Device Driver Programs

8.1.5 Important Data Structures of Device Driver Programs

8.2 Character Device Driver Program Design

8.2.1 Character Device Driver Programs

8.2.2 User Calls to Device Driver Programs

8.3 Simple Character Driver Program Design Example

8.4 Block Device Driver Program Design

8.4.1 Basic Concepts of Block Devices

8.4.2 Important Data Structures of Block Devices

8.4.3 Methods for Designing Block Device Driver Programs

Chapter Summary

Exercises

Chapter 9 Application Design Examples of Device Driver Programs

9.1 General I/O Interface Driver Program Design

9.1.1 Virtual Address Mapping of GPIO Devices

9.1.2 Writing LED Device Driver Programs

9.2 Keyboard Driver Program Design

9.2.1 Introduction to Keyboard Principles

9.2.2 Analysis of Keyboard Driver Program Design Ideas

9.2.3 Design of Keyboard Driver Programs

9.2.4 Design of Keyboard User Application Programs

9.2.5 Compiling and Running Keyboard Programs

9.3 DC Motor Driver Program Design

9.3.1 Design of DC Motor Control Circuit

9.3.2 DC Motor Driver Program

9.3.3 DC Motor User Application Program

9.3.4 Compiling and Running Programs

Chapter Summary

Exercises

Chapter 10 Establishing Android System Development Environment

10.1 Establishing Android System Development Environment on Host Side

10.1.1 Necessary Preparations Before Installing Android SDK

10.1.2 Installing Android SDK

10.1.3 Setting Environment Variables

10.1.4 Installing ADT Plugin

10.2 Creating Android Application Framework

10.2.1 Generating Android Application Framework

10.2.2 Writing MainActivity.java Code

10.2.3 Configuring Application Running Parameters

10.2.4 Running Application in Emulator

10.3 Structure of Android Applications

10.3.1 Directory Structure

10.3.2 Analysis of Android Application Architecture

10.4 Examples of Android Application Design

10.5 Compiling Android System Kernel and Making File System

10.5.1 Installing System and Tools

10.5.2 Compiling Kernel and Making File System Image

Chapter Summary

Exercises

Chapter 11 Comprehensive Application Example – Remote Control of Devices through Cloud

11.1 Design Goals and System Structure

11.1.1 Design Goals

11.1.2 Overall Structure of the System

11.2 Program Design for Development Board Device Side

11.2.1 Functionality and Program Structure of Development Board Device Side

11.2.2 Design of Development Board Device Driver Programs and User Application Programs

11.3 Program Design for Server Gateway Side

11.3.1 Functionality and Structure of Server Gateway Program

11.3.2 Preparatory Knowledge for Gateway Programs

11.3.3 Gateway Program for Sending Control Commands

11.4 Program Design for Mobile Side

11.4.1 Functionality and Program Structure of Mobile Side

11.4.2 Design of Mobile Side Programs

Chapter Summary

Exercises

Leave a Comment