How to learn embedded systems (hardware), including 51 single-chip microcomputer learning materials
[Copy link]
Before learning embedded systems, we need to understand what embedded systems are. (Official statement) An embedded system is a special-purpose computer system that is part of a device or equipment. The definition of embedded systems generally recognized in China is: a special-purpose computer system that is application-centric, based on computer technology, with tailorable software and hardware to meet the strict requirements of application systems for functions, reliability, cost, volume, power consumption, etc. For example, mobile phones, electronic clocks, intelligent alarm devices, automatic monitors, taxi meters, etc. are all embedded systems. Embedded systems are a combination of hardware and software. Hardware: 1. Basic circuit knowledge Embedded hardware also requires many circuits to be built. Before learning embedded systems, you must have a certain foundation in basic circuit knowledge. Understand the commonly used basic components, the use of basic instruments, and have a certain ability to analyze circuits. Only in this way can you understand the hardware circuit diagram of the embedded system and lay the foundation for subsequent development. 2. Basic language knowledge Embedded driver programming requires the use of C language, so before learning embedded, you must be proficient in the basic syntax of C language and be able to write some ordinary program codes. System learning penguin meaning 气呜呜吧久零就易, Here we need to remind you to develop standardized programming habits when learning C language, such as adding comments, paying attention to typesetting, etc., which will have a great impact on the accuracy of future programs. 3. Single-chip microcomputer (51 single-chip microcomputer) The first embedded processor for beginners is usually the 51 single-chip microcomputer. The 51 single-chip microcomputer is relatively simple to get started with and has a high degree of versatility. You can buy a development board to learn by hand. For example, learn to write simple programs such as running lights, key scanning, digital tubes, LCD displays, AD/DA sampling, etc. 4. Self-design of electronic systems based on single-chip microcomputers With the previous learning experience, you can design and draw circuit diagrams by yourself without the development board, weld or produce PCB boards by yourself, and design small electronic systems. For example, design a line-finding car, temperature collection, clock display and other embedded systems. 5. 430, STM32, Cortex-M3 (optional) 430 MCU, STM32 and Cortex-M3 processors are the transition stage before learning embedded operating systems. You can choose to learn them by yourself. Why do you need to use them for transition? Because 51 MCU has few internal registers, there is no need to configure the GPIO port when writing a program. The default is input or output. When the processor is powerful, one GPIO can often realize multiple functions, such as USB function, IIC function, and UART function. When using this GPIO, it must be configured first to meet the needs. Therefore, before learning the operating system later, students who have time can transition from these MCUs, so that they will not be confused in subsequent learning. 6. ARM9/ARM11 bare metal learning Bare metal programming, that is, programming without an operating system, is similar to the above 430 MCU. The purpose is to familiarize yourself with the ARM architecture and have a deep understanding of ARM registers, which will greatly facilitate the writing of future drivers. Similarly, bare metal programming learning can be done like the 51 MCU, by purchasing a development board and performing some interrupt, GPIO, and UART operations on the development board. 7. Linux system transplantation & BOOTLOADER The most important and difficult part of embedded system learning is Linux system transplantation. The transplantation and tailoring of the system are the difficulties in learning. It is also troublesome to build an embedded operating system development environment, that is, a cross-compilation environment, so you must practice step by step during the learning process. BOOTLOADER is a piece of code that performs hardware initialization and builds the operating system environment before the operating system starts. It is somewhat similar to the BIOS program of a PC. BOOTLOADER is mainly related to hardware and requires a good understanding of processor registers. Therefore, you can refer to U-boot and other learning methods in the initial learning. 8. Writing low-level drivers based on Linux After learning Linux system transplantation, you can write low-level drivers. Compile and download the driver to the target board through the cross-compilation environment, and write a small test program to verify the correctness of the driver. For example, implement a running light and key functions under Linux. 9. Electronic design based on operating system After learning this step, you can be called an embedded hardware expert, because you already have the ability to design embedded systems on your own. Now let's try your hand. You can design some camera drivers, button drivers, infrared drivers, etc. based on the operating system.
|