Embedded development to get started - system learning program

Embedded systems development learning - from entry to mastery

Many newcomers to learning embedded systems, not clear that so many directions rudder knowledge and reference books, where to start learning. Getting started, but what to learn first after learning what to lose direction. Here are the answers you want to help you point out the lost scriptures.

This is the course outline I found on the ITjob training website, and I think it's a good way to learn how to implement and learn step by step as a learning step for embedded system development:) Even as a reference, it's a good value!

With the acceleration of information technology in modern society, embedded systems are widely used in the military, household, industrial, commercial, office, medical and other aspects of society, showing a strong investment value. From an international perspective, as the core of digital electronic information products, embedded systems, hardware and software development tools market has exceeded 200 billion U.S. dollars, embedded systems to bring the global industrial annual output value is to reach one trillion U.S. dollars, with the sustained growth of the global economy and accelerated development of information technology, the embedded systems market is bound to grow further.

This course is designed to meet the needs of the rapidly growing embedded Linux market. The goal of the course is to enable students to achieve the basic qualities of embedded application software development, embedded system development, or embedded driver development. The course leads you step by step to the world of embedded development, using the most widely used hardware and software development platforms (Linux and Arm), which ensures that you are as close as possible to the current needs of enterprises.

Learning steps are as follows: (step by step to oh:)

1, Linux basic

Installation of the Linux operating system

Linux file system

Linux common commands

Linux startup process in detail

Familiar with the Linux service to be able to install independently. Linux operating system

Be able to use the basic commands of the Linux system

Acquaintance with the common services of the Linux system Installation of the Linux operating system

Practice of the basic commands of Linux

Set Linux environment variables

Customization of the services of Linux Shell programming basics use vi to edit files

Using Emacs to edit files

Using other editors

2. Shell Programming Basics

Introduction to Shell

Getting to Know the Backend Programs

Bash Programming Familiarize Yourself with the Editing Environment under Linux System

Familiarize Yourself with the Various Shell

Proficiency in shell programming Familiarity with the basic operation of vi

Familiarity with the basic operation of Emacs

Comparison of the differences between different shells

Write a shell script with a test to see if the server is connected

Write a shell script to see if a process exists

Writing a shell script with looping statements

3. C Programming Fundamentals for Linux

Overview of the linux C environment

Gcc usage

Gdb debugging techniques

Autoconf

Automake

Makefile

Code Optimization Familiarity with the Linux development environment

Familiarity with the Gcc compiler

Familiarity with Makefile rules for writing Hello,World programs

Compiling a program using the make command

Writing a program with a loop

Debugging Debugging a faulty program

4. Fundamentals of Embedded System Development

Overview of Embedded System

Cross-compilation

Configuring TFTP service

Configuring NFS service

Downloading Bootloader and Kernel

Embedded Linux application development process

Familiar with the concepts of embedded system as well as the development of embedded applications

Familiar with the concepts of embedded system as well as the development of embedded applications. p>Familiar with the concept of embedded systems and the development process

Establish the embedded system development environment to make cross_gcc toolchain

Compile and download the U-boot

Compile and download the Linux kernel

Compile and download the Linux application

5, Embedded system porting

Linux kernel code

Platform related code analysis

Introduction to ARM platform

Key techniques for platform porting

Porting Linux kernel to ARM platform Understanding the concept of porting

Being able to port Linux kernelPorting Linux 2.6 kernel to ARM9 development board

6, Serial Communication under Embedded Linux

Basic Concepts of Serial I/O

Embedded Linux Application Development Process

Files and Devices in Linux System

System Calls Related to Files

Configuring Hyperterminal and MiniCOM Being able to Familiarize with Conducting Serial Communication

Familiar with File I/O Write Serial Communication Programs

Write Multiple Serial Communication Programs

7. Multi-Process Programming in Embedded Systems

Overview of Processes in Linux

Process Characteristics of Embedded Systems

Process Operations

Daemon Processes

Related System Calls Understanding the Linux Concepts of Processes in the System

Ability to Write a Multi-Process Program Writing a Multi-Process Program

Writing a Daemon Program

Sleep System Calls Task Management, Synchronization, and Communication Overview of Linux Tasks

Task Scheduling

Pipelining

Signals

*** Enjoyment of Memory

< p>Task Management API Understanding the Linux system task management mechanism

Familiar with several ways of inter-process communication

Familiar with inter-task synchronization and communication in embedded Linux

Write a simple pipeline program to achieve the file transfer

Write a program that uses **** enjoyment of memory

8. Embedded Systems Multi-threaded programming in the

Threading basics

Multi-threaded programming methods

Threading applications in the synchronization of the understanding of the concept of threading

Able to write a simple multi-threaded program to write a multi-threaded program

9, Embedded Linux Networking

Network basics

TCP/IP network architecture in embedded Linux

socket programming

Commonly used API functions

Analysis of the implementation of the Ping command

Basic UDP socket programming

License management

PPP protocol

GPRS Understanding of Embedded Linux Network Architecture

Ability to program sockets in an embedded Linux environment

Familiarity with UDP protocol, PPP protocol

Familiarity with GPRS Write a proxy server using sockets

Write a router using sockets

Write a license server

State the Advantages and disadvantages of TCP and UDP

Write a web server

Write a network player running on ARM platform

10, GUI program development

GUI basics

Types of Embedded System GUI

Compile QT

QT development Familiar with embedded system Commonly used GUI

Ability to do QT programming Use QT to write a "Hello, World" program

Debugging an example of joining signals/slots

Handling events by overloading the QWidget class method

11. Linux Character Devices Drivers

Device Driver Basics

Modules for Linux Systems

Character Device Driver Analysis

fs_operation structure

Loading Drivers Understanding Device Driver Concepts

Understanding Linux Character Device Driver Structure

Be able to write a character device driverWrite a Skull driver

Write a keyboard driver

Write an I/O driver

Analyze a watchdog driver

Compare and contrast the differences between the character device driver in the Linux 2.6 kernel and the 2.4 kernel

Linux Block Device DriversBlock Device Drivers Work Principles

Analysis of a typical block device driver

Read and write request queues for block devices Understanding the Linux block device driver architecture

Ability to write a simple block device driver Comparing the differences and similarities between character and block devices

Writing an MMC card driver

Analysis of a file system

Compare and contrast Differences between block device drivers in the Linux 2.6 kernel and the 2.4 kernel

12. Filesystems

Virtual Filesystems

Building a Filesystem

Ramfs Memory Filesystem

Proc Filesystem

Devfs Filesystem

Introduction to MTD Technology

Introduction to MTD Technology

Managing MTD Technology

Monitoring MTD Technology

Introduction to MTD Technology <

MTD Block Device Initialization

Read and Write Operations on MTD Block Devices Understanding Linux Filesystems

Understanding Embedded Linux Filesystems

Understanding MTD Technology

Ability to Write Simple Filesystems to Add MTD Support to an ARM9 Board

Porting JFFS2 Filesystem

Modify operating system parameters via the proc filesystem

Analyze romfs filesystem source code

Create a cramfs filesystem