How to start and deepen embedded system development and learning?

Source: Internet
Author: User

Many new users learn embedded systems, but do not know the knowledge and reference books in many directions. When I started, I lost my direction when I learned what to do first. Here is the answer you want to give you some advice.

This is the outline of the course I found on the ITjob training network. I think that as a learning step for embedded system development, I will implement and learn it step by step, it is a good learning method :) It is of great value even as a reference!

With the rapid development of information technology in modern society, embedded systems are widely used in military, household, industrial, commercial, office, medical, and other aspects of society, showing great investment value. From an international perspective, as the core of digital electronic information products, the current market for Embedded Systems in hardware and software development tools has exceeded 200 billion US dollars, the annual output value of the global industry brought about by the embedded system has reached 1 trillion US dollars. With the sustained growth of the global economy and the accelerated development of information technology, the embedded system market will inevitably grow further.

This course is designed to meet the rapidly developing embedded Linux requirements. The course aims to enable students to meet the basic qualities of embedded application software development, embedded system development, or embedded driver development. The course gradually leads you to the world of embedded development, using the most widely used software and hardware development platform Linux and Arm), to ensure that you are as close as possible to the current business needs.

Follow these steps:

1. Linux Basics

Install Linux

Linux File System

Common Linux commands

Linux Startup Process details

Familiar with Linux services, able to install Linux operating systems independently

Familiar with basic Linux commands

Understand Common Services of Linux system install Linux OS

Linux basic command practices

Set Linux environment variables

Customized Linux service Shell programming basics use vi to edit files

Use Emacs to edit an object

Use other editors

2. Shell programming Basics

Shell Introduction

Recognize background programs

Bash programming familiar with the editing environment in Linux

Familiar with Linux Shell

Familiar with basic vi operations through shell programming

Familiar with basic Emacs operations

Compare the differences between different shells

Compile a shell script program to test whether the server is connected

Compile a shell script program to check whether a process exists

Compile a shell script program with cyclic statements

3. C Programming basics in Linux

Linux C language environment overview

Gcc usage

Gdb debugging technology

Autoconf

Automake

Makefile

Code optimization: familiar with the development environment in Linux

Familiar with Gcc compiler

Familiar with Makefile rules writing Hello and World programs

Use the make command to compile the program

Compile a program with a loop

Debug a problematic program

4. Embedded System Development Basics

Embedded System Overview

Cross-Compilation

Configure the TFTP service

Configure NFS service

Download Bootloader and Kernel

Embedded Linux application software development process

Familiar with embedded system concepts and development processes

Build an embedded system development environment and create a cross_gcc tool chain

Compile and download U-boot

Compile and download the Linux Kernel

Compile and download Linux applications

Embedded System Transplantation

Linux Kernel code

Platform-related code analysis

ARM platform Introduction

Key Technologies for platform migration

Port the Linux kernel to the ARM platform to understand the concept of porting.

Port the Linux kernel to the arm9-development Board

5. Serial Communication in Embedded Linux

Basic concepts of serial I/O

Embedded Linux application software development process

Linux Files and devices

File-related system calls

Configure the Super Terminal and MiniCOM to be familiar with Serial Communication

Familiar with file I/O writing Serial Communication Programs

Write multi-serial communication program

6. Embedded System multi-process Program Design

Linux Process Overview

Embedded System Process Features

Process operations

Daemon

Measure the test taker's knowledge about the concept of processes in Linux.

Ability to Write multi-process programs

Write a daemon program

Sleep System Call task management, synchronization and communication Linux task Overview

Task Scheduling

MPs queue

Signal

Shared Memory

Task Management API to understand the task management mechanism in Linux

Familiar with several methods of inter-process communication

Familiar with synchronization and communication between tasks in Embedded Linux

Write a simple pipeline program for File Transfer

Write a program using shared memory

7. multi-thread programming in Embedded Systems

Basic thread knowledge

Multi-Thread Programming Method

Synchronization issues in thread applications understand the concept of threads

Ability to write a simple multi-threaded program to write a multi-threaded Program

8. Embedded Linux Network Programming

Basic network knowledge

TCP/IP network structure in Embedded Linux

Socket programming

Common API functions

Analysis of Ping command implementation

Basic UDP Interface Programming

License Management

PPP protocol

GPRS understand the network architecture of Embedded Linux

Capable of socket programming in an embedded Linux environment

Familiar with UDP and PPP protocols

Familiar with GPRS using socket to write proxy servers

Use socket to write a router

Compile a License Server

Advantages and disadvantages of TCP and UDP

Write a web Server

Compile a network player running on the ARM platform

9. GUI Program Development

GUI Basics

Embedded System GUI type

Compile QT

Perform QT development to familiarize yourself with common guis in Embedded Systems

Ability to program QT and use QT to compile the "Hello, World" program

Debug an instance with signals/Slots

Handle events using the reload QWidget Class Method

10. Linux character Device Driver

Basic device driver knowledge

Linux system module

Character Device Driver Analysis

Fs_operation Structure

Load drivers understand the concept of Device Drivers

Understand the driver structure of Linux character Devices

Write character device drivers and Skull drivers

Write a keyboard driver

Write an I/O Driver

Analyze a dog driver

Differences between the Linux 2.4 kernel and the kernel character device drivers

Linux block device drivers working principle

Typical block Device Driver Analysis

Read/write request queues of Block devices understand the structure of Linux block Device Drivers

Ability to compile simple block device drivers to compare the similarities and differences between character devices and block Devices

Write mmccard driver

Analyze a File System

The differences between Linux 2.4 kernel and kernel block Device Drivers

11. File System

Virtual File System

File System Creation

Ramfs memory File System

Proc file system

Devfs File System

MTD technology Overview

MTD block device Initialization

Read/write operations on MTD Block devices

Measure the test taker's understanding about the file system of embedded Linux.

Understand MTD Technology

Able to write a simple file system and add mtd support for the arm9-development Board

Port JFFS2 File System

Modify operating system parameters through proc file system

Analyze the source code of the romfs File System

Create a cramfs File System

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.