Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to learn Linux embedded Development for beginners

2025-03-30 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly explains "how beginners learn Linux embedded development". Interested friends may wish to have a look. The method introduced in this paper is simple, fast and practical. Now let the editor take you to learn "how beginners learn Linux embedded development"!

The first stage: embedded hardware foundation and bare metal program development.

1. Knowledge points:

(1) basic knowledge of arm processor, working mode, register, interrupt and exception, addressing mode, 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 port, LCD, touch screen, NANDFLASH,IIC,IIS,DMA, etc.

two。 Process and purpose:

The main purpose of this stage of learning is to be familiar with embedded hardware and lay the foundation for future linux drivers. Because the embedded main processor architecture is arm, so learn for arm. Learn the basics first, and then master them through exercises on the development board. The main materials used at this stage are:

(1) the book "ARM embedded Foundation course" mainly focuses on the basic knowledge of arm. This book is about arm7, but the basic instruction set and model of arm are the same.

(2) the complete manual of embedded linux application development mainly focuses on the introduction of s3c2410 interface module. Hardware knowledge is needed when testing bare metal.

3. Time: about two months.

The second stage: linux fundamentals and shell programming

1. Knowledge points:

(1) basic knowledge of linux

(2) installation and use of linux

(3) linux common commands

(4) use of vi

(5) simple shell programming

two。 Process and purpose:

This stage of learning is mainly familiar with linux, will install linux, understand the basics of Linux, will be simple to operate. At the beginning, it is better to install linux on a virtual machine. Install the Fedora9 recommended by the development board, install it step by step according to the instructions for the development board, and then practice various commands above.

At this stage, we should mainly read "Brother Bird's basic study of linux Private Cuisine". This book is available electronically, and you don't need to read it all. It mainly focuses on the description of the basic knowledge of Linux and the basic commands. The order is only understood, but I can't write it down even if I write it down. I'll check it later when I use it. The main purpose of this stage is to have an overall understanding of linux, at least some basic concepts and some basic operations.

3. Time: about a month.

Phase III: basic development of linux applications

1. Knowledge points:

(1) GCC,GDB,Make Foundation

(2) File, time programming

(3) multiprocess and multithreaded programming

(4) Inter-process communication

two。 Process and purpose:

This stage of learning is mainly to understand the writing and debugging of linux applications, but also the basic knowledge, the main purpose is to be familiar with Linux. Be familiar with some of the concepts related to the application to lay the foundation for the future. This stage mainly read the "embedded Linux application development standard tutorial", this book on the linux application programming is very detailed, and is not very difficult, the most classic "UNIX advanced environment programming" is more in-depth, it is a bit difficult at the beginning, everything is difficult to start from a simple start. After learning application programming is not necessarily engaged in applications, people engaged in the embedded linux industry, this is a necessary basic skill.

3. Time: about a month

The fourth stage: learning the uCOSII operating system

1. Knowledge points:

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

(2) read the source code of uCOSII operating system

(3) Transplant uCOSII

(4) uCOSII operating system application programming

two。 Process and purpose:

This stage of learning is mainly to understand the basis of embedded real-time operating system, because uCOSII is open source, you can study its code. Intuitive understanding of task scheduling and resource management of the operating system. And reading his source code can improve his programming ability and standardize his programming habits. Although a transplant version of uCOSII is provided, you can have a deeper understanding of the actual migration.

This operating system is relatively simple, so the writing of the application is very important, and the implementation of several functions above is still helpful to the understanding of the system. This stage mainly looks at the "embedded real-time operating system uCOS-II" written by Shao Beibei's uCOSII author, in which there is a detailed analysis of the source code of the operating system. After reading this book, you will have an in-depth understanding of uCOSII. The main purpose of this stage is to understand the knowledge of the operating system, such as task scheduling, concurrency and competition. Another goal is to exercise your programming skills. Because it would be boring to read a book about the principle of the operating system, I think it is much cheaper to read the source code of an operating system than to read a thousand books about the principle.

3. Time: about a month

The fifth stage: bootloader learning

1. Knowledge points:

(1) basic knowledge of bootloader

(2) u-boot Foundation and Command

(3) u-boot transplantation

two。 Process and purpose:

Bootloader is an indispensable part of an linux embedded system. The main purpose of this stage of learning is to understand the role of bootloader, as well as the knowledge of general bootloader-u-boot, and just began to learn to use various commands of u-boot. Then analyze the startup process of u-boot and the kernel loading process of Makefile and u-boot. Then follow others' steps to migrate the kernel step by step, and do it several times to familiarize yourself with the process. Then, on the basis of being familiar with the whole u-boot, complete the migration of u-boot alone and add your own modifications. The main reference materials at this stage are the u-boot migration reference manual that comes with the CD and some articles on the network. Personally, I feel that the network resources of u-boot transplantation are quite rich.

3. Time: about a month

Phase 6: file system learning

1. Knowledge points:

(1) the types and functions of linux file system

(2) be familiar with the use of busybox and the startup process of linux system

(3) build your own root file system

two。 Process and purpose:

File system is also an indispensable part of an linux embedded system. The main purpose of this stage of learning is to be familiar with the role and basic knowledge of the root file system, and to build your own root file system. The book I read at this stage is "Building an embedded linux system," which explains in detail all the elements of embedded linux, including the file system. Here we mainly look at the file system. I also referred 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 the startup process of linux, and finally refer to others' step-by-step steps to build your own file system.

3. Time: about half a month

Phase 7: embedded graphical interface GUI

1. Knowledge points:

(1) the types and characteristics of embedded graphical interface GUI

(2) basic knowledge of minigui

(3) minigui porting and programming

two。 Process and purpose:

Embedded graphical interface GUI as an embedded upper system thing is also need to understand, here I only learned minigui, because QT needs the knowledge of C++, and I have not learned Cobalt, so I only read the relevant knowledge of minigui. The main purpose of this stage is to be familiar with the development process of embedded graphical interface, because I do not intend to engage in application in the future.

Just familiarize yourself with some aspects of embedded composition. Here, as long as the minigui is transplanted to the board, you can run hello programs. You don't need to know anything else. By transplanting minigui, we will have a new understanding of the software running on linux, the function library, the principle of program operation, and the compiler.

3 time: about half a month

Phase 8: linux driver basics

1. Knowledge points:

(1) after reading "LINUX device driver", except for network driver, tty driver and block driver, you have to finish all the other chapters.

(2) all routines in the experimental book should be carefully analyzed to understand the relevant knowledge points.

(3) even if it is an example, the programming habits must be unified and the documentation must be standardized.

two。 Process and purpose

The purpose of this stage is to lay the foundation for linux driver. "LINUX device driver" (third edition), also known as ldd3, is the most classic book about linux driver. Be sure to read it and read it several times. It was hard to see it for the first time, and I felt that it was obscure and difficult to understand. But watch it a few more times and you will suddenly feel enlightened. After reading the book, there are examples from the experimental book.

3. Time: about two months

Stage 9: linux-driven actual combat

1. Knowledge points:

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

(2) to master the basic interrupt realization method through the button driver.

(3) master PWM driver.

(4) grasp the realization of input device model through the touch screen driver.

(5) master the design of ADC driver

(6) master the design of watchdog and rtc driver

(7) analyze the implementation of platform device model through LCD driver.

two。 Process and purpose:

The main purpose of this stage of learning is to grasp the differences between the actual simple driver implementation and ldd3, and to analyze some linux subsystems. Through this stage of study, we can have a deeper understanding of the linux driver. And exercise your ability to read a lot of code. The main work at this stage is to look at the code, experiment, look at the code, experiment, through the phenomenon to learn knowledge.

3. Time: about a month

Phase 10: in-depth understanding of linux kernel and USB subsystem research

The first nine stages of ‌ have been completed, and I feel that embedded Linux should be regarded as getting started. So it's time to start planning the tenth phase. At this stage, we basically have to determine the direction of our future development. Because all the standard interfaces of embedded systems have USB, it is very competitive to learn the relevant knowledge of USB. Drivers should have some knowledge of the kernel, so "in-depth understanding of the Linux kernel" is necessary.

At this point, I believe that "beginners how to learn Linux embedded development" have a deeper understanding, might as well come to the actual operation of it! Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report