As a saying, I would like to give some suggestions to students eager to learn embedded systems:
(1) the software and hardware of embedded systems are closely related, so we must lay a solid foundation for software and hardware. In fact, as long as you find the correct method and work hard, any science and engineering students, or even non-science and engineering students, can learn embedded systems well.
(2) Select a chip and Hardware evaluation board (the entry chip should be simpler, for example, 8-bit MCU), and select a good book (it is better to have a standard example) find a good teacher (preferably experienced and enthusiastic ). The price of the hardware evaluation board must be less than 1000 yuan, not too expensive, it is best to have your own space. If you don't spend a minute on hardware, It's impractical to learn embedded systems well. This is a very practical discipline. A good book helps you avoid detours and will not be misled. You must know that some books may lead to misunderstandings. A good teacher can also be a senior who has worked on some practical projects (be sure to consult a senior or teacher who has worked on several successful projects for guidance; otherwise, lack of experience may also be misleading, the learning process is accelerated. (There is a term in the AI discipline called the instructor-less and instructor-less Guided Learning model. The instructor-less Guided Learning model is much more complicated than the instructor-less Guided Learning Model ).
(3) many people are afraid of hardware. In fact, the hardware of embedded systems is much better than that of electronic lines. As long as you have a deep understanding of the MCU's minimum hardware system, for I/O port, serial communication, keyboard, led, LCD, SPI, I2C, PWM, A/D (including some sensors) and D/. Then, you can build an actual small system, and the underlying hardware infrastructure will be ready. The compilation of drivers for each hardware module is essential for embedded systems. At the early stage of learning embedded systems, this process is necessary.
(4) As for the embedded real-time operating system RTOS, you must not learn it from the beginning. This will take a lot of detours and make you feel afraid of the embedded system. It is easy to understand when the software and hardware basics are ready. In fact, many embedded applications do not necessarily require an operating system. You can also learn from the actual project needs. Do not be misled by some training courses on migrating embedded real-time operating systems, but ignore the basic knowledge of embedded system software and hardware.
(5) to avoid one-sided understanding of embedded systems from the perspective of "electronics" or "Computer Software", embedded systems are closely related to hardware and are a combination of software and hardware, without an understanding of the hardware, it is impossible to write embedded software. without an understanding of the software, it is also impossible to design embedded hardware. Therefore, we need to gradually understand the hardware principles and underlying hardware driver programming methods from the minimum system of the MCU. It is necessary to understand the ideas of software engineering encapsulation and reusability through standardized examples. Through standardized programming, components are accumulated, that is, one module, but encapsulated and reusable.
(6) focus on practice. Here I separate practice from experiment. The experiment mainly involves the program or validation of others, with the aim of learning basic knowledge. Practice is self-designed with specific "product" goals. If you can make a small product with certain functions for about 500 yuan, you can say it's close to getting started.
(7) Selection of entry-level chips. Be sure not to make it too complex to go beyond the learning process. Instead of learning several chips at once, you can use a chip to get started and have a practical experience, and then select a chip as needed. Note that the microcontroller (MCU) is selected instead of the microprocessor (MPU ). The stability of MCU manufactured by different manufacturers varies greatly. The microprocessor is no longer directly used in the final product design of embedded systems.
(8) Operating System Selection. After you have some practice, you can select a simple and easy-to-understand principle to learn. Instead of learning several operating systems from the beginning, you can understand the basic principles, in practice, it is not too late to learn it. People always keep learning.
(9) The trade-off between Assembly and C language. With the MCU's support for C compilation optimization, you can understand only a few required statements for assembly and directly use C language programming. However, the first program must be used to understand the chip initialization process, interrupt mechanism, program storage, and other content different from PC programs.
This article also discusses the knowledge system and possible learning misunderstandings of embedded systems.
The above suggestions are for reference only.