Linux System Development Learning Path

A: embedded c language
  C language is the most important and the most important areas of embedded programming language, through a lot of programming examples focus on understanding the basis of C programming language and advanced programming knowledge. Comprising: a basic data types, arrays, pointers, structures, lists, file operations, queue, stack, and the like.
  Two: Linux basic
  concept of the Linux operating system, the installation method to learn more about the Linux directory structure, basic commands, editor VI, the compiler GCC, GDB debugger and Make project management tools, Shell Makefile and other scripting knowledge, embedded development built environment.
  Three: Linux System Programming
  focus on learning the standard IO library, multi-tasking between Linux programming multi-process and multi-threading, and interprocess communication (pipe, FIFO, message queues, shared memory, signal, semaphore, etc.), synchronization and mutual exclusion of share important knowledge resource access control, mainly to enhance the understanding and application development capabilities of the Linux code debugging.
  Four: Linux Network Programming
  computer networks for use in embedded Linux systems application development process is widely used by Linux network development, respect TCPIP protocol, socket programming, TCP network programming, UDP network programming, Web programming and other aspects of development, a comprehensive understanding of Linux network application development. Key learning network programming related API, to achieve proficiency in programming and concurrent server's TCP protocol server to understand the HTTP protocol and its implementation, familiar UDP broadcast, multicast programming principles and methods, how to design hybrid CS network communication system architecture familiar with HTML, Javascript and other Web programming and implementation.
  Five: Data Structures and Algorithms
  Data structures and algorithms embedded in the underlying drivers, communication protocols, and a variety of engine development will be a large number of applications available to it directly affects the efficiency, simplicity and robustness of the program. This phase of the study should focus on understanding the basics of data structures and algorithms, including the order form, linked lists, queues, stacks, trees, graphs, hash tables, look for a variety of applications such as sorting algorithms C language and its implementation.
  Six: C ++, QT
  C ++ language is one of the major Linux application development, an important part of this stage focus on mastering the basic idea of object-oriented programming as well as in C ++. GUI programming is very important to develop an embedded link.
  Since the QT cross-platform, object-oriented, rich API, supports 2D3D rendering, support for XML, multi-language and other powerful features, get a wide range of applications in the field of embedded GUI development by learning based on QT graphics library at this stage so that students can be proficient GUI Programming, and QT applications ported to the Cortex-A8 platform.
  Applications include use IDE, QT components and layout manager, application information and groove mechanism, a mouse, a keyboard and a graphics event processing and document processing.
  Seven: Cortex A8, Linux platform
  By basic reading skills based on ARM Cortex-A8 chip manual processing s5pv210 understand, master s5pv210 system resources, a clock controller, power management, exception interrupt controller, nand flash controller module, as the underlying platform to build ready. Linux platform includes kernel reduction, kernel porting, cross-compiler, GNU tools, kernel debugging, Bootloader introduction, production and principle analysis, the root file system to make and add your own modules to the kernel and runs its own production on s5pv210 experimental platform Linux system, the entire process integration deploy Linux systems. At the same time understand the Android operating system development process. Android system is based on Linux open source operating system platform, the platform by the operating system, middleware, user interface and application software, is the first mobile terminal to create a truly open and complete mobile software, currently its use is no longer confined the mobile terminal further comprises a digital television, a set top box, PDA and other consumer electronics products.
  Eight: driver development
  driver design is an important part of embedded Linux development work, but also the more difficult part. This phase of the study to be familiar with the Linux kernel mechanism, the driver interface program with the user-level application control system concurrent operation of the equipment. Familiar with the works of the hardware development, with basic knowledge of ARM hardware interface, familiar with the ARM Cortex-A8 processor s5pv210 various resources, grasp the principle of Linux device driver framework, familiar with Linux Advanced engineering common character devices, block devices, network devices, USB driven development equipment, in underlying work independently competent driver development.

Guess you like

Origin blog.51cto.com/14355585/2413192