Article Catalog
I. Preface
blogger to learn Linux has a few months, here for the majority of friends to organize the embedded linux learning knowledge, I hope to help you, of course, the blogger is just a beginner into the field of embedded beginners, there are problems where I hope you point out that we wish you all the best of luck with your studies.
Learning Preparation:
- needC language foundation
- ubuntu14.04 under VMware (Linux Basics – Networking), blogger is using ubuntu18.04
- Huaqing Yuanxin FS4412 development board (ARM chapter – Linux driver chapter) – can be in the
Taobao Buy
Or, in the case ofHuaqing Foresight official website for leasing
Study recommendations:
- This series of basic chapter – network chapter general, ARM chapter – driver chapter can be applied to different development boards according to the tutorial methodology
- You can watch instructional videos about Linux before coming to this series
- There is a lot to learn about Linux, and any one of these aspects can serve as a lifelong learning experience, and it is recommended that the learning of the
Overall first and then segmented
,Run in principle first
。
Second, Linux basic chapter
This article explains the common operations of the linux system and the use of commands, through the following five sections can have a preliminary grasp of the linux system as well as the application.
Linux] Basics of the first – linux system common commands
Linux: The Basics II-Package Management and Shell Commands
Linux: The Basics III – linux shell commands
Linux] Basic Part IV – Shell Script Programming
Linux] Basics V – linux C Advanced Programming
Linux] Basic Part VI – Makefile
After studying the six articles above, linux learning is considered to be introductory.
III. Fundamentals of data structures and algorithms
Before learning linux applications, you need to have a basic grasp of data structures and algorithms, not only for the improvement of the C language, because the later learning also uses data structures and algorithms related knowledge, of course, if you are a master in this area you can skip this down to learn.
[Data Structures and Algorithms] Inside Repair of Programs
Linux applications
This article explains the knowledge of the upper layers of Linux, after studying this article can have a preliminary understanding of the upper layers of Linux application production.
Linux] Application Part I – Standard IO
Linux] Application Part II – Standard IO Character Input and Output
Linux] Application Part III – Stream Refresh Positioning and Formatting Input and Output
Linux] Application Part IV – File IO
Linux] Application Part V – Catalogs and Libraries
Linux] Application Part VI – Process Creation and Recycling
Linux] Application Chapter VII – exec function family and daemon process
Linux] Application Part VIII – Thread Creation and Recycling
Linux] Application Part IX – Thread Cancellation and Mutual Exclusion
LInux] Application 10 – Conditional Variables and Thread Pools
Linux] Application 11 – Inter-process communication
Linux] Application Part XII – Shared Memory
Linux] Application XIII – Signal Mechanisms
Linux] Application Part XIV-Message Queues and Signal Lights
It is recommended that when studying this piece, you use moreman manual
, focusing on knowledge of IO, processes, and threads.
Fourth, Linux network chapter
One of the important role of the linux system is to help us realize the TCP, IP, MAC and other network protocols, we do not have to implement specific protocols, but according to the linux system provides a function of the interface to the network development, which greatly reduces the difficulty of development.
Linux] Networking I – Networking Basics
Linux] Networking II – TCP Programming
Linux] Networking III – UDP Programming
Linux] Networking Part IV – IO Multiplexing
Linux] Networking Part V – Programming Extensions
Above is the programming on the linux system application.
V. ARM
Before learning about linux drivers, you need to know about ARM hardware asoperating systemIt is required to be attached to hardware, and in this post, one can learn about embedded hardware.
Linux] ARM Part I-Computer Basics and RAM Processor Introduction
Linux] ARM Part II – Register Organization and Exception Handling
Linux] ARM Part III – Assembly Basics
Linux] ARM Part IV – Simple use of assembly to light up LEDs
Linux] ARM Part V – C language register packaging and running light experiments
Linux] ARM Part VI – UART serial communication experiments
Linux] ARM Part VII – WDT Watchdog Experiments
Linux] ARM Part VIII-Interrupt Experiments
Linux] ARM Part IX-ADC Experiments
Linux] ARM Part X – RTC Experiments
Linux] ARM Part XI-PWM Experiments
The point I want to make here is that a lot of things about chip hardware are universal, and it’s a lot easier to learn this one and then go on to learn stm32 or learn stm32 and then come back to learn this one.
Linux system porting
This is the driver equivalent of the short version of the driver chapter, which focuses on how to get the linux kernel up and running on hardware.
Linux] System Porting I – Introduction to Linux System Porting
Linux] System Porting Part II-Uboot Burning and Use
Linux] System Porting Part III – Kernel Installation and Loading and Cross-Compilation Toolchain
Linux] System Porting Part IV – UBoot Porting
Linux] System Porting Part V – Kernel, Device, and Root File System Porting
Linux driver
Many people say that the drive is difficult to learn, the early learning is indeed somewhat difficult, but to the back can be found, many places are the same set, so learning to have an in-depth practice of the configuration template, after the same place can be directly copy and paste.
Linux] Kernel Driver Part I – Compilation Methods
Linux] Kernel Driver Part II – Parameters and Dependencies
Linux] Kernel Driver Part III – Character Device Driver Basics
Linux] Kernel Driver Part IV – IO Models
Kernel Driver Part V-Resource Sharing and Synchronization
Kernel Driver Part VI – Kernel Timers and Memory Management
Linux] Kernel Driver Part VII – Device Tree
Kernel Driver Part VIII – Interrupt Handling
Linux] Kernel Driver Part IX – Device Models
Linux] Kernel Driver Part X-Platform Bus Driver Development
Linux] Kernel Driver Part XI – I2C Bus Driver Development
Linux] Kernel Driver Part XII – input subsystem
VIII. Linux Special
Linux] Special – GTK Interface Design
Linux] Special – sqlite3 database use
Nine, Linux project chapter
linux online dictionary project
FTP server project under linux