1. C language
C language is the main programming language in the embedded field. Focus on understanding basic programming and advanced programming knowledge of C language, including: basic data types, arrays, pointers, structures, linked lists, file operations, queues, stacks, etc.
2. Linux Basics
Learn more about the directory structure, basic commands, editor VI, compiler GCC, debugger GDB and Make project management tools under Linux, Shell Makefile script writing, etc. knowledge, and the establishment of an embedded development environment.
3. Linux system programming
Focus on learning the standard I/O library, multi-process and multi-threading in Linux multi-task programming, and inter-process communication (pipe, FIFO, message queue, sharing Memory, signal, semaphore, etc.), synchronization and mutual exclusion, shared resource access control and other important knowledge, mainly to improve the understanding of Linux application development and code debugging capabilities.
(Recommended video tutorial: linux video tutorial)
4. Linux network programming
Focus on learning network programming related APIs, and be proficient in TCP protocol servers Programming methods and the implementation of concurrent servers, understand the HTTP protocol and its implementation methods, be familiar with the principles and programming methods of UDP broadcast and multicast, master the design of hybrid C/S architecture network communication systems, be familiar with HTML, Java and other Web programming technologies and Implementation.
5. Data Structures and Algorithms
The focus of learning at this stage is to understand the basic content of data structures and algorithms, including sequence lists, linked lists, queues, stacks, trees, graphs, and hash tables. , various search and sorting algorithms and other applications and their C language implementation process.
6. C, QT
This stage focuses on mastering the basic ideas of object-oriented programming and the important contents of C. Graphical interface programming is a very important link in embedded development. Because QT has powerful functions such as cross-platform, object-oriented, rich API, support for 2D/3D rendering, support for XML, and multiple languages, it has been widely used in GUI development in the embedded field. At this stage, it is based on the QT graphics library The learning enables students to skillfully write GUI programs and transplant QT applications to the Cortex-A8 platform. Including the use of IDE, QT components and layout manager, application of information and slot mechanism, application of mouse, keyboard and drawing event processing and file processing.
7. Cortex A8, Linux platform development
Learn the basic reading skills of the chip manual by processing s5pv210 based on ARM Cortex-A8, and master the s5pv210 system resources, clock controller, power management, and abnormal interrupts Controller, nand flash controller and other modules are prepared for the construction of the underlying platform.
Linux platform includes kernel reduction, kernel transplantation, cross-compilation, use of GNU tools, kernel debugging, Bootloader introduction, production and principle analysis, root file system production and adding your own modules to the kernel, and experimenting with s5pv210 Run your own Linux system on the platform and integrate the entire process of deploying the Linux system. At the same time, understand the Android operating system development process.
8. Driver development
At this stage of study, you need to be familiar with the Linux kernel mechanism, the interface between drivers and user-level applications, and master the concurrent operations of the system on devices. Be familiar with the working principle of the developed hardware, have basic knowledge of ARM hardware interfaces, be familiar with the resources of ARM Cortex-A8 processor s5pv210, master the Linux device driver principle framework, and be familiar with Linux advanced character devices, block devices, network devices, and USB commonly used in projects Device and other driver development, and be able to independently develop low-level drivers at work.
Recommended tutorial: linux tutorial
The above is the detailed content of What to learn about linux development. For more information, please follow other related articles on the PHP Chinese website!