How embedded Linux learns

Source: Internet
Author: User

As the saying goes, everything starts hard (then the middle is hard, and finally hard? , at the beginning of the time, you do not know how to start, online search data by a heap of new term do not find the north, to the library to read a book is not find the direction? is arm, Linux, and Uboot head are big. Do not know where the hell I started?

How embedded Linux learns

Simply put, from arm basics to bare-metal programming, from Ucosii to Linux, from Linux-based commands to shell programming, from U-boot to file systems, and finally to Linux drivers today. From simple to complex, from basic to advanced Basic is to follow this.

First stage: Embedded hardware foundation and bare Metal program development

1. Knowledge Points:

(1) ARM processor basics, operating modes, registers, interrupts and exceptions, addressing methods, assembly instruction set

(2) Be familiar with ADS integrated development environment to prepare for bare metal program development

(3) Bare-metal program development: LED, Serial, LCD, touch screen, NANDFLASH,IIC,IIS,DMA, etc.

2. Process and Purpose:

This stage of learning is mainly familiar with embedded hardware, for the future Linux driver laying the groundwork. Because the embedded main processor architecture is arm, so for arm to learn. Learn the basics first and then master them by practicing on the Development Board. The information used in this phase is mainly:

(1) "Arm embedded Basic Tutorial" this book mainly look at the knowledge of ARM Foundation. This book is about ARM7, but arm's basic instruction set and model are the same.

(2) "Embedded Linux Application Development Complete Handbook" This book mainly looks at the s3c2410 interface module, the experiment bare metal needs hardware knowledge.

3. Time taken: approximately two months.

  

Phase II: Linux Fundamentals and Shell programming

1. Knowledge points

(1) Basic Linux knowledge

(2) Linux installation and use

(3) Common Linux commands

(4) VI use

(5) Simple shell programming

2. Process and Purpose:

This stage of learning is mainly familiar with Linux, will install Linux, understand the basic knowledge of Linux, will be simple to operate. Just start installing Linux or install on the virtual machine is better, install the Development Board recommended FEDORA9, follow the Development Board supporting instructions step by step installation, and then practice the various commands above. This stage mainly depends on "bird brother's Linux private cuisine Basic Learning article", the book has an electronic version, do not look at all, mainly to see the previous description of the basic knowledge of Linux, as well as basic commands. Command just understand, so many remember also can not remember, later time of re-check. The main purpose of this phase is to have an overall understanding of Linux, at least to know some basic concepts, there will be some basic operations.

3. Time: Approximately one months

  

Phase III: Linux Application Foundation Development

1. Knowledge Points:

(1) Gcc,gdb,make Foundation

(2) file, time programming

(3) Multi-process, multithreaded programming

(4) Inter-process communication

2. Process and Purpose:

This phase of the study is mainly to understand the Linux application writing debugging, is also the basic knowledge, the main purpose is also familiar with Linux. Familiarize yourself with some of the concepts of the application, laying the groundwork for the future. This phase mainly looked at the "Embedded Linux application Development Standard Tutorial", this book on the Linux application writing is very detailed, and not difficult, the most classic "UNIX Advanced environment Programming," said the more deep, just beginning to look a bit difficult, everything begins difficult or simple beginning. Learning application programming is not necessarily the application, the embedded Linux industry people, this is the basic skills necessary.

3. Time: Approximately one months

  

Stage four: Ucosii Operating system learning

1. Knowledge Points:

(1) The concept and basic knowledge of embedded real-time operating system

(2) ucosii operating system source code reading

(3) Transplant ucosii

(4) Ucosii operating system application programming

2. Process and Purpose:

This stage of learning is primarily about understanding the basics of embedded RTOs, because ucosii is open source and can study his code. It has an intuitive understanding of the task scheduling and resource management of the operating system. and reading his source code can improve their programming ability and despite the friends to standardize their own programming habits. The arm of Goodness provides a ucosii version of the transplant. But the actual transplant can have a deeper understanding. This operating system is relatively simple, so the application is very important to write, the implementation of several functions on the above is helpful to understand the system. This stage is mainly to look at Shaoxing Beibei translation of the ucosii author of the "embedded real-time operating system Ucos-ii", inside the operating system of the source code has this detailed analysis. After reading through this book, you will have a deep understanding of ucosii. The main purpose of this phase is to understand the knowledge of the operating system, such as task scheduling, concurrency and race. One more goal is to exercise your programming skills. Because if you look at the introduction of operating system principles of the book is more boring, I feel that reading an operating system of the source than the 1000 of the introduction of the principle of books to more affordable.

3. Time: Approximately one months

  

Fifth stage: bootloader study

1. Knowledge Points:

(1) bootloader basic knowledge

(2) U-boot Foundation and command

(3) U-boot transplant

2. Process and Purpose:

Bootloader is an integral part of a Linux embedded system. This stage of learning is mainly to understand the role of bootloader, as well as general bootloader---u-boot knowledge, just began to learn to use the u-boot of various commands. Then analyze the startup process of U-boot and makefile and u-boot load kernel process. Then follow the others step by step porting the kernel, do a few more to familiarize yourself with the process. Then, on the basis of familiarity with the entire u-boot, complete the u-boot transplant alone and add your own modifications. The main reference for this phase is the CD-ROM u-boot porting reference manual and a number of articles on the web. The personal feeling u-boot transplant this aspect of network resources is quite rich.

3. Time: Approximately one months

  

Sixth stage: File system learning

1. Knowledge Points:

(1) Types and functions of Linux file systems

(2) familiar with the use of BusyBox, as well as the Linux system startup process

(3) Build your own root file system

2. Process and Purpose:

The file system is also an integral part of a Linux embedded system, which is primarily familiar with the role of the root file system and the basics. and build your own root file system. At this stage, there is the book "Building Embedded Linux systems," which explains all the elements of embedded Linux, including the file system. Here's the main file system. I also refer to some articles on the Internet. First of all, you should be familiar with some basic Linux file systems, then learn the use of BusyBox and Linux startup process, and finally refer to the other people's step-by-step to build their own file system.

3. Time: About half a month

  

Seventh stage: GUI for embedded graphical interface

1. Knowledge Points:

(1) Types and features of GUI for embedded graphical interface

(2) Minigui basic knowledge

(3) Minigui Transplant and program writing

2. Process and Purpose:

Embedded graphical interface GUI as an embedded system of the thing also need to know, here I only learned Minigui, because QT is the knowledge of C + +, and I did not learn C + +. So I only read the relevant knowledge of Minigui. The purpose of this phase is to familiarize yourself with the development process of the embedded graphical interface, since it is not intended to be used in the future. Just familiarize yourself with some aspects of the embedded composition. As long as the Minigui transplanted to the board can run Hello program on it. The rest doesn't have to be understood in depth. By porting Minigui to the software and function libraries running on Linux, the compiler will have a new understanding of how the program works.

3 time: About half a month

  

Eighth stage: Linux driver basics

1. Knowledge Points:

(1) After reading "Linux device driver" In addition to network drivers, TTY drivers, block drivers these chapters do not look, the others are to be read.

(2) All the examples in the experimental book, to carefully analyze the results, understand the relevant knowledge points.

(3) As an example, program programming habits must be unified, the document must be standardized.

2. Process and Purpose

The purpose of this phase is to lay the groundwork for Linux drivers, "Linux device Driver" (third edition) is what everyone said Ldd3, is the most classic of a Linux-driven book, it must look and see a few more times. It's hard to see it for the first time and it's hard to understand. But to see a few more times will be enlightened by the feeling. After reading the book, then there is an example in the experimental book.

3. Time: Approximately two months

  

Nineth stage: Linux driver combat

1. Knowledge Points:

(1) Understand the registration and implementation of miscellaneous character devices through led driver, and master the MINI2440 IO operation process.

(2) Master the basic Interrupt implementation method through the button driver.

(3) Mastering the PWM driver.

(4) The realization of input device model is mastered by touch screen driver.

(5) Mastering the design of the ADC driver

(6) Mastering the design of the watchdog, RTC Driver

(7) The realization of platform device model is analyzed through LCD driver.

2. Process and Purpose:

This stage of learning is mainly to master the actual simple driver implementation and LDD3 differences, and analysis of some Linux subsystems. Through this phase of learning, you can have a deeper understanding of Linux drivers. and exercise your ability to read massive amounts of code. The main work at this stage is to look at the code, experiment, look at the code, experiment, learning through the phenomenon of knowledge.

3. Time: Approximately one months

  

Tenth stage: In-depth understanding of Linux kernel and USB subsystem

The first nine stages are complete, and I feel that embedded Linux should be a starter. So we're going to start planning the tenth phase. This stage is basically to determine their future direction of development. Because now the standard interface of embedded system has USB, so learning USB knowledge is very competitive. The driver should have a certain understanding of the kernel, so "in-depth understanding of the Linux kernel" is still necessary. This phase is mainly to learn the USB protocol, read the Linux USB subsystem all the code, read the code to deepen the understanding of USB, then is familiar with various USB class protocols, writing and porting USB driver. USB is my definite direction, because I want to do anything to be exclusive, what all do, what also is not good. So I decided to learn USB. decided to work on the embedded USB in the future. This phase of learning is in progress and is now roaming through the vast code of the Linux USB subsystem.

How embedded Linux learns

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.