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 study. 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, you must have very solid theoretical knowledge, and at the same time, you must also 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 about 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 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 

这一阶段主要学习带有操作系统的嵌入式系统的构建,包括系统的启动流程、Bootloader的工作流程、UBOOT的编译、裁剪与移植、嵌入式Linux内核的裁剪、移植与编译,嵌入式根文件系统的定制、BootLoader、内核和根文件系统的烧写。 这一阶段的主要目的是掌握带有操作系统的嵌入式系统的构建和烧写过程,以及对嵌入式系统软件的总体构成有个整体认识,为我们接下来学习嵌入式应用和驱动开发打下坚实的基础。 这一阶段推荐的书籍如下:《构建嵌入式Linux核心软件系统实战


4、学习嵌入式Linux应用程序开发 

这一阶段主要学习上层的嵌入式Linux应用程序开发,包括基于Linux多进程、多线程、网络、文件与目录和QT编程。掌握嵌入式Linux环境下应用程序开发技术。这一阶段推荐的书籍有: 《UNIX环境高级编程》, 《Unix网络编程》,《Qt Creator快速入门》, 《精通Qt4编程》


5、学习嵌入式Linux驱动程序开发 

这一阶段主要学习底层嵌入式Linux设备驱动程序开发设计,包括常用的字符设备驱动、块设备驱动、LCD设备驱动、触摸屏设备驱动以及驱动程序开发中的核心技术。这一阶段推荐的参考书籍有:《Linux设备驱动程序》,《Linux设备驱动开发详解》 


6、完成一个综合项目 

嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识来解决实际开发中的问题,我们需要来完成一个综合的嵌入式实训项目,例如: 基于嵌入式Linux平台实现的飞行器、 基于嵌入式Linux平台实现的智能机器人等,这些项目都综合应用了嵌入式开发当中的应用,驱动和QT开发技术

以上就是我建议的比较系统的嵌入式学习路线。系统学习并能灵活应用以上知识后,嵌入式基本上就算入门了,具备企业项目的嵌入式研发能力了,这时候去应聘企业的嵌入式研发工程师岗位就不会有什么问题了。

Guess you like

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