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 mechanismFamiliar 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