Deep analysis: The Metamorphosis from rookie to embedded engineer

Source: Internet
Author: User

embedded can be easily divided into hardware and software, but the knowledge of the system is unusually large, which is also a lot of novice discourage a reason, that how to become an embedded big coffee? Today and everyone talk about embedded learning route, roughly divided into three stages: basic, advanced, big coffee.

First, the basic article

This stage is mainly the pre-entry process, mainly for the new recruits. In fact, there is no shortcut to success, so the foundation is the key to play well. It consists of the following 3 main aspects:

1: C language

Embedded Linux engineers need to have a certain C language Foundation, C language is the most important and main programming language in the embedded field, through a large number of programming examples to focus on understanding the basic programming of C language and advanced programming knowledge. Includes: basic data types, arrays, pointers, structs, linked lists, file operations, queues, stacks, and so on.

2:linux Foundation

Linux operating system concepts, installation methods, detailed understanding of the directory structure under Linux, basic commands, editor VI, compiler GCC, debugger GDB and make project management tools, Shell makefile scripting knowledge, embedded development environment to build.

3:linux System Programming

Focus on learning standard I/O library, multi-process and multi-threading in Linux multitasking, and interprocess communication (pipe, FIFO, message queue, shared memory, signal, semaphore, etc.), synchronization and mutual exclusion on the access control of shared resources, It mainly improves the understanding of Linux application development and the ability of code debugging.

Second, advanced article

After the first stage of learning, you can already work on embedded development, but there is still a lot of knowledge to be advanced, and this stage will be the first watershed, so that excellent embedded engineers to stand out. Although this stage is only three, but the knowledge involved is very broad, it takes a lot of effort to learn well.

1:linux Network Programming

Computer network is widely used in the application and development of embedded Linux system, through the development of Linux Network, TCP/IP protocol, socket programming, TCP network programming, UDP network programming, web programming development, and so on, to fully understand the development of Linux network applications. Focus on learning Network programming related APIs, master the TCP protocol server programming method and the implementation of concurrent server, understand the HTTP protocol and its implementation methods, familiar with the principle of UDP broadcast, multicast and programming methods, Master mixed C/S Architecture network communication system design, familiar with HTML, Java and other Web programming techniques and implementation methods.

2: Data Structures and algorithms

The data structure and algorithm will be used in the embedded low-level driver, communication protocol, and various engine development, which directly influence the efficiency, simplicity and robustness of the program. This stage of learning to focus on understanding of the basic data structure and algorithms, including sequential tables, linked lists, queues, stacks, trees, graphs, hash tables, various search sorting algorithms and other applications and C language implementation process.

3:c++, QT

C + + is one of the main languages of Linux application development, this stage focuses on the basic idea of object-oriented programming and the important content of C + +. Graphic interface programming is a very important part of embedded development. Because QT has a cross-platform, object-oriented, rich API, support 2d/3d rendering, support XML, multi-lingual and other powerful features, in the embedded field of GUI development has been widely used, in this stage through the QT Graphics Library-based learning so that learners can skillfully write GUI program, and porting the QT application to the CORTEX-A8 platform. Includes IDE usage, QT component and Layout manager, application of information and slot mechanism, mouse, keyboard and drawing event processing and file processing.

Three, Big coffee articles

Learning the first two stages of knowledge, you can be competent for most of the embedded work, but there is still a certain gap from the big coffee, in fact, has reached the second watershed. This part is more about the system level, the lack of a full range of knowledge will be difficult to start.

1:cortex A8, Linux Platform development

Learn the basic reading skills of chip manuals based on ARM cortex-a8 processing s5pv210, Master s5pv210 system resources, clock controllers, power management, abnormal interrupt controllers, NAND flash controllers and other modules to prepare for the underlying platform setup. Linux platforms include kernel cut, kernel porting, cross-compiling, GNU tool usage, kernel debugging, Bootloader Introduction, authoring and rationale analysis, root file system authoring, and adding your own modules to the kernel, and running your own Linux system on the S5PV210 lab platform. Integrate the entire process of deploying Linux systems. Also learn about the Android operating system development process. The Android system is an open-source operating system based on the Linux platform, which consists of operating system, middleware, user interface and application software, is the first truly open and complete mobile software for mobile terminals, and its application is no longer limited to mobile terminals, but also includes data TV, set-top box, PDA and other consumer electronics products.

2: Drive Development

Driver design is an important part of the embedded Linux development work, and it is also a difficult part. This stage of learning should be familiar with Linux kernel mechanism, driver and user-level application interface, master the system to the device concurrency. Familiar with the working principle of hardware development, with the basic knowledge of ARM hardware interface, familiar with arm CORTEX-A8 processor s5pv210 Each resource, Master Linux device driving principle frame, familiar with the common Linux Advanced character device, block device, network device, USB device and other driving development , in the work can be independently competent for the development of the bottom drive.

When you get to this position, you can say that you are a life winner, and the real learning process is like a long practice, in this process, there must be a variety of difficulties. Of course, embedded work more needs to practice and accumulation of experience, I believe that the cloud open to see the moon, you can also become an excellent embedded engineer.

More content can also be concerned: huaqing vision. At the same time with 100,000 program Master to make friends, you can also get 399 Yuan gift package Oh.

Deep analysis: The Metamorphosis from rookie to embedded engineer

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.