Embedded Technology Learning Route

     Embedded technology is the core technology of various electronic products, as well as the core technology of emerging industries such as Industry 4.0, telemedicine, and 3D printing, and has broad development prospects. Many students majoring in computer and electronic information want to take embedded development as their career goal, but because the knowledge involved in embedded is too much, too complicated, and too broad, many embedded beginners are caught in the ocean of embedded knowledge. I learn a little from the east and a little from the west, but I can't find the direction of learning. As a past person, I would like to tell you about the correct embedded learning route for the reference of embedded beginners. I hope it will be helpful to everyone.

    Embedded engineers need to master a wide range of content, mainly including embedded software, embedded hardware, and professional knowledge of related industries and products. As embedded beginners, we can't and don't have so much energy to master all the knowledge. We must learn to grasp the key points, learn to choose and choose, and achieve the learning effect of doing everything with half the effort.

First of all, embedded technology is mainly divided into two major directions: embedded software and embedded hardware. 

Embedded hardware direction

    The main job responsibilities of an embedded hardware engineer are to design the hardware circuit schematic diagram for the product, design the hardware PCB board, select the appropriate components, weld and debug the hardware circuit board, and ensure the reliability, stability and anti-interference ability of the hardware circuit board. Because integrated circuits are developing rapidly now, most integrated circuit manufacturers will provide reference circuits, so the design of hardware circuit schematics is relatively simple, and the gold content of hardware engineers' work is mainly reflected in the reliability and stability design of products, and electromagnetic compatibility. Design, this is the gold content of hardware design engineers. The annual salary of a senior embedded hardware engineer is between 100,000 and 300,000. 

    It is quite difficult to become a senior embedded engineer. On the one hand, one must have very solid theoretical knowledge, and at the same time, one must have considerable experience in designing large, high-frequency CPUs and multi-layer PCB boards. The courses for embedded hardware engineers mainly include analog circuit design, digital circuit design, electromagnetic wave theory, etc. Familiar with commonly used amplifier circuit, filter circuit, power circuit design and analysis. 

Embedded software direction

    The responsibility of the embedded software engineer is mainly to design the software according to the functional requirements of the product and make the hardware work. Most of the hardware parts of embedded electronic products are the same, the core is composed of CPU, RAM and FLASH, and the software is very different. The specific functions of the product are realized by software. Generally speaking, the workload of software design is 4 to 5 times that of hardware design for the realization of a product. Therefore, under normal circumstances, the number of software engineers in a company is 4 to 5 times that of hardware and hardware engineers. The demand for embedded software engineers is much larger than that of hardware engineers. At the same time, compared with hardware engineers, embedded software engineers are relatively easy to learn. Therefore, Here I focus on talking with you about the learning route of embedded software engineering.

Embedded Software Engineer Learning Route

1. Lay a solid foundation for embedded software programming 

This stage focuses on laying a solid foundation for embedded software programming, including learning the basic applications of Linux systems, common Linux commands, basic C language programming, and commonly used data structures.

Especially the understanding and application of pointers in C language. The main purpose of this stage is to learn programming languages , development environments, and develop their own programming thinking, so as to lay a good foundation for further learning of embedded development. The recommended embedded learning books at this stage are as follows: "C Programming Language", "C Language Core Technology", "Data Structure and Algorithm Analysis - C Language Description", "C and Pointers", "C Traps and Defects" , "C++ Primer" 


2. Learn ARM architecture programming 

This stage is the real embedded programming. First of all, we have to choose an embedded CPU and an embedded development platform. At present, the ARM embedded CPU is the most widely used. The focus of this stage is to learn the bare metal programming of the embedded CPU. Familiar with the hardware working principles of common embedded peripherals such as interrupts, timers, serial ports, NAND FLASH, network controllers, LCD screens, and touch screens , and how to use C language to program and control these hardware . In this stage, in addition to learning hardware programming, you also need to learn the knowledge of embedded hardware, but for embedded software engineers, the focus is to learn the working principle of the hardware. On the basis of mastering the working principle of the hardware, the hardware Programmatic control. This is different from the focus of hardware engineer learning. The corresponding school courses at this stage mainly include analog circuits, digital circuits, microcomputer principles and single-chip microcomputers . At this stage, the focus is to look at the chip manual of the CPU , and most of the reference books are also translations of the chip manual. The recommended reference books are as follows: " ARM Embedded System Development--

Software Design and Optimization ", " Detailed ARM processor development and design based on ARM Cortex-A8 processor "


3. Learn about the construction of embedded systems 

This stage mainly learns the construction of embedded system with operating system, including system startup process, Bootloader workflow, UBOOT compilation, tailoring and transplantation, embedded Linux kernel tailoring, transplantation and compilation, embedded root file System customization, BootLoader, kernel and root file system programming . The main purpose of this stage is to master the construction and programming process of embedded systems with operating systems, and to have an overall understanding of the overall composition of embedded system software, so as to lay a solid foundation for us to learn embedded applications and driver development. basis . The recommended books at this stage are as follows: " Building Embedded Linux Core Software System Practice "


4. Learn embedded Linux application development 

This stage mainly learns the upper-level embedded Linux application development, including Linux-based multi-process, multi-thread, network, file and directory and QT programming . Master the application development technology in the embedded Linux environment. The recommended books at this stage are: " Advanced Programming in UNIX Environment", "Unix Network Programming", "Qt Creator Quick Start", "Proficient in Qt4 Programming"


5. Learn embedded Linux driver development 

This stage mainly learns the development and design of underlying embedded Linux device drivers, including commonly used character device drivers, block device drivers, LCD device drivers, touch screen device drivers and core technologies in driver development . The recommended reference books at this stage are: "Linux Device Drivers", "Detailed Explanation of Linux Device Driver Development" 


6. Complete a comprehensive project 

The key of embedded technology lies in the combination of theory and practice. It is necessary to be able to apply what you have learned. After completing all the above stages of knowledge learning, whether you have learned it, will you use it, and whether you can apply the knowledge you have learned to solve the problem in actual development. We need to complete a comprehensive embedded training project, such as:  aircraft based on embedded Linux platform, intelligent robot based on embedded Linux platform, etc. These  projects have comprehensively applied the applications in embedded development. , driver and QT development technology .

The above is the embedded learning route that I suggest to compare the system. After systematically learning and being able to apply the above knowledge flexibly, the embedded system is basically an entry-level and has the embedded research and development capabilities of enterprise projects. At this time, there will be no problem in applying for the position of embedded research and development engineer in the enterprise.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325917822&siteId=291194637