Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

XuetangX

Embedded Software Design

East China University of Science and Technology via XuetangX

Overview

Through the study of this course, students can master the basic process, basic knowledge, development environment, software architecture and programming skills of embedded software design, and lay a good foundation for the future embedded learning and embedded system development.

There are maily 12 chapters, and the main contents of each chapter are as follows.

1. Overview: Give an overview of the course content.

2. Overview of Embedded C Programming: This chapter describes how to write embedded programs in C on a platform without an operating system.

3. ARM C Program Optimization: Through the analysis of ARM assembly program to understand how to write efficient C program.

4. The Linux Operating System: Introduction to the history, features and basic operations of the Linux operating system.

5. Linux C Programming Toolchain and Makefile: Introduction to tools for editing, compiling and debugging C programs in Linux environment, and how to write Makefile.

6. Construction of Embedded Software Platform: Introduction to the composition and construction of embedded software platform, and the application design process.

7. File Directory and Memory: File, directory, and memory operations based on Linux C.

8. Processes and Threads: The concepts and basic usage methods of process and thread.

9. Signals: The concepts and basic usage methods of signal.

10. Interprocess communication: Four basic ways to use interprocess communication.

11. Sockets: The concepts and basic usage methods of socket.

12. Module and Driver and the Example of Driver: This chapter describes how to write kernel modules and drivers, as well as code analysis for three actual hardware drivers.

Course resources include 79 teaching videos and extended learning videos, 79 non video materials, 14 sets of exercises, 1 set of final tests, as well as code resources corresponding to all chapters. This course is designed according to 2 classes per week and 2 class hours each. Complete 32 class hours of the course in 8 weeks. It can also be flexibly adjusted to 48 class hours by the teacher.

Syllabus

  • Chapter 1 Overview
    • 1.1 The Overview of Embedded System
    • 1.2 The Overview of Embedded Software Design
  • Chapter 2 Overview of Embedded C Programming
    • 2.1 Software Architecture
    • 2.2 The Object Orientation of C
    • 2.3 Chinese Character Processing
    • 2.4 Screen Operation
    • 2.5 Input Event
  • Chapter 3 ARM C Program Optimization
    • 3.1 The Thought of Code Optimization
    • 3.2 Data Type Selection for Variable
    • 3.3 Optimizing a Loop Executed in a Fixed Number of Times
    • 3.4 Optimizing a Loop Executed in an Unfixed Number of Times
    • 3.5 Loop Unrolling
    • 3.6 Pointer Aliasing
    • 3.7 Struct
  • Chapter 4 The Linux Operating System
    • 4.1 The Introduction to Linux
    • 4.2 The shell of Linux
    • 4.3 The Basic Operations of Linux
    • 4.4 The Network Commands of Linux
  • Chapter 5-1 Linux C Programming Toolchain
    • 5.1 The Overview of the Toolchain
    • 5.2 Editor vi
    • 5.3 The Overview of gcc
    • 5.4 The Usage of gcc
    • 5.5 The Introduction to gdb
  • Chapter 5-2 Makefile
    • 5.6 The Working Principle of Makefile
    • 5.7 Makefile Instance Analysis
    • 5.8 Makefile Design
    • 5.9 A Comprehensive Instance of Makefile
  • Chapter 6 Construction of Embedded Software Platform
    • 6.1 Linux-based Embedded Platform
    • 6.2 BootLoader
    • 6.3 Application Design Process
  • Chapter 7-1 File Director
    • 7.1 The Attributes of Files
    • 7.2 File Operation
    • 7.3 Examples of File Operation
    • 7.4 The Operations on Directories
    • 7.5 Obtaining a Directory List
  • Chapter 7-2 Memory
    • 7.6 Memory Mapping
    • 7.7 An Example of Memory Mapping
  • Chapter 8-1 Processes
    • 8.1 Process Creation
    • 8.2 The Way to Start a Program in a Process
    • 8.3 Waiting for a Process to End
  • Chapter 8-2 Threads
    • 8.4 The Introduction to Threads
    • 8.5 An Example of Multithreading Programming
    • 8.6 Thread Synchronization
    • 8.7 The Attribute of a Thread
  • Chapter 9 Signals
    • 9.1 The Introduction of Signals
    • 9.2 Sending and Capturing Signals
    • 9.3 A More Robust Signal Programming Interface
    • 9.4 Signal Set Processing
  • Chapter 10 Interprocess communication
    • 10.1 Unnamed Pipe
    • 10.2 Named Pipe
    • 10.3 Semaphore Introduction
    • 10.4 An Example of Semaphores
    • 10.5 The Introduction to Shared Memory
    • 10.6 An Example of Shared Memory
    • 10.7 The Introduction to Message Queues
    • 10.8 An Example of Message Queue
  • Chapter 11 Sockets
    • 11.1 Socket Introduction
    • 11.2 A Socket Programming Example
    • 11.3 The Interface Functions of Sockets
    • 11.4 Network Socket
    • 11.5 Access the System Service
    • 11.6 Multi-Client Programming
  • Chapter 12-1 Module and Driver
    • 12.1 The Introduction to Kernel Modules
    • 12.2 The Design of Kernel Modules
    • 12.3 The Introduction to Linux Device Drivers
    • 12.4 The Important Data Structures of Drivers
    • 12.5 An Instance of a Virtual Character Device Driver
  • Chapter 12-2 The Example of Driver
    • Final exam

      Taught by

      Xiaochen Lai, Hui Liu, and JIanjian Shen

      Tags

      Reviews

      Start your review of Embedded Software Design

      Never Stop Learning.

      Get personalized course recommendations, track subjects and courses with reminders, and more.

      Someone learning on their laptop while sitting on the floor.