This article mainly introduces the embedded system development learning experience and experience summary, first introduced the three key points of embedded system development, then recommended the embedded system development must-read books, and finally introduced the learning of embedded system development Experience and summary of experience.
Embedded System Development IntroductionEmbedded system development is the development of operating systems for all electronic devices other than computers. Development targets include cell phones, handheld computers, electromechanical systems, etc., which are generally composed of embedded microprocessors, peripheral hardware devices, embedded operating systems, and users. The application consists of four parts.
Embedded system is an application-centric, computer-based technology, and software and hardware can be tailored to a dedicated computer system that has strict requirements on functionality, reliability, cost, size, and power consumption of the application system. It is generally composed of four parts: an embedded microprocessor, peripheral hardware devices, an embedded operating system, and a user's application program. It is used to implement functions such as control, monitoring, or management of other devices.
Embedded systems generally refer to non-PC systems, which include hardware and software. Hardware includes processors/microprocessors, memory and peripheral devices and I/O ports, graphics controllers, and more. The software section includes operating system software (OS) (requires real-time and multitasking operations) and application programming. Sometimes designers combine these two kinds of software together. The application controls the operation and behavior of the system; the operating system controls the interaction between application programming and hardware.
Three key points in the development of embedded systems1, the embedded system is relative to the PC platform, the use of the platform is generally aimed at ARM, PPC, DSP and other non-PC platforms, so the compiler and debugging tools used are not VC6.0, but different platforms need special Compiler development tools, cross-compilation is an embedded unique concept;
2. Embedded systems often refer to systems with operating systems. Previously simple systems can be developed directly on bare metal (such as 51 SCMs). Now that OS has become a basic feature of embedded systems, there are various real-time kernels or full-featured devices. OS, so the programmer's requirements are higher;
3, the embedded system often includes two parts of software and hardware, the software developer often also needs to know the knowledge of the hardware, only know the characteristic of the hardware to develop the high-performance procedure. Also do not want to develop on the PC, the driver program has been in the embedded system due to the complexity of the peripherals connected, often need to write their own driver, the result is generally required to see the hardware manual before the program development.
Where does embedded system development come from?This is a problem that beginners would like to know, but it is also a difficult question to answer. It was the same when I was a beginner. Learning embedded can not be anxious, I think the most important thing is to lay a good foundation, starting from simple. The basic skills include:
1. Microcomputer principle and interface should be familiar with, at least know an assembly language, do not want you to remember instructions, but to understand the process of processor execution and the operation of commonly used instructions to perform;
2, familiar with the common architecture. ARM architecture processor is more and more widely used, it is worth studying, of course, there are many architectures, development process and then look at the hardware manual this process is to train their ability to read manuals and query manuals, manuals are long, often only know a . Details need to be queried when used;
3, C language programming: C language everyone will use, I know when learning in the school are based on PC, basically will not use C language program to access registers or peripherals, and in embedded development you will find there are many places need to be careful For example, a global variable that a general interrupt service routine needs to access requires a volatile declaration.
Embedded system development must read books recommended1, for entry-level teaching materials
The National Computer Rank Examination for Higher Education Press is recommended to be a three-level tutorial (Embedded System Development Technology). This book is good for the overall understanding of embedded systems. The book's compilation instructions are also very good, although this The book does not mention linux knowledge, there is almost no u-boot content, but each section is concise, the book is about 314 pages, there is not much code, so that there is no basis for you, when reading does not drown In the ocean of code, this book strongly recommends that freshmen directly use, self-study, and participate in the computer third-level examinations, have a profile of the embedded system.
2. Read the reference materials at the same time as the first book
Embedded System Basics Tutorial (Yu Jianxin, Wang Jian, Song Jianjian) This book is a computer textbook for key universities in China. It has the same characteristics and is thin. However, this book is more precise than the first one. It contrasts the DRAM and SRAM. Content, you can know the book author's intentions, if you do not examine the computer grade examination, you can directly look at this entry, and this book is very rich, so that you do not fall into the code, do not fall into the text, more accurate understanding Knowledge points.
3, use the linux operating system
"Bird Brother's Linux Private Kitchen", Wen Dongge's "Utility Tutorial for Linux Operating System" and Liu Yizhi "Linux from Getting Started to Proficient".
4, the famous Wei Dongshan teaching materials
"Embedded linux application development complete manual", this book must read, irreplaceable, not one, under the influence of the first two, you will begin to wonder how the embedded system works, then you into the code, Can already begin to swim in the code, in particular, Wei teacher write very detailed, not only make a detailed comment on the code, but also comment on it, believe that combined code, your hardware architecture of the embedded system, special function register configuration, Interrupted architecture will have a deeper understanding. The book adopts case teaching and does not develop some very detailed knowledge points. Therefore, you need to read more specialized teaching materials for corresponding knowledge, such as makefile, arm assembly, shell programming, etc. They are all reflected in case studies and are not fully listed, but this does not affect the book's status as a top-level textbook for the embedded industry.
5, linux program design
Xu Cheng recommended "Linux environment C program design" compiled by teacher Li Lin of the University of Electronic Science and Technology, "linux programming practice" and Neil Matthew's "linux programming."
6, linux kernel
Good textbooks include: "Analysis of the arm linux kernel source code" written by Koreans and "In-depth linux kernel architecture" written by the Germans. Both are translations.
7, Linux driver
The best textbooks in China: Song Baohua's “Linux Device Driver Development Explained: Based on the Latest Linux 4.0 Kernelâ€, the Linux device driver written by the Americans (Chinese Version 3rd Edition) is also a classic textbook.
8, "programmer's self-cultivation - link, loading and library."
9, "a simple way to understand the embedded software development"
10, "ARM + LINUX entry and practice"
11, "Embedded Linux system engineer standard training materials"
Embedded system development learning experience experienceThe following is mainly about the embedded development and application of the stage, some attention to the details and some habits, I believe that my embedded development learning experience will help you.
They all speak the same language, but as an embedded engineer, the habit of programming can also reflect its level. Each engineer will have his own programming style and logic, so he wants to become a qualified embedded engineer. It is very necessary to form good programming habits. If the program that was written is of reasonable structure, clear, easy to implement, and easy to debug and maintain, it will not only be understood by oneself but also understood by others. What? The following is a simple to understand the basic programming habits need to pay attention to several points, that is, my embedded development learning experience.
1. Modular program structure programming habits.
The modular design simply means that the program is written with the main program, subroutines, and sub-processes to describe the main structure and flow of the software. At the same time, the input and output link relationships between the various frameworks are defined and debugged, through some columns. The algorithmic description of the function block as a unit is designed to make the procedure complexity, programming, debugging, and maintenance more simple.
Here I am reminded of some of the experiences of learning practical projects, if you want to design a microcontroller controller, the controller receives the text message sent from the serial port, displayed on the 128X64 monochrome LCD screen. Through the agreed protocol, the font, size, text content, etc. of the text will be displayed, and what kind of information will be displayed in the end. According to the modular programming concept, the program code is distributed in the four modules of the serial data transceiver module, the data protocol analyzer module, the LCD text display processing module, and the main program module. After simple analysis and design ideas, each module has a program code with a clear purpose and a single function. Then each module passes the header file and exports the interface functions, global variables, and structures in the module. The final system function will be well implemented.
2, clear moving naming conventions programming habits
The naming rule is an indispensable role for embedded engineers in their work. For the general things, we can know a series of information related to it by name. In the process of writing the program, we also You can also achieve the readability of the written program through simple naming, but in the naming process, we must pay attention to these functions, variables, constants and other elements in the program can not be named, if you simply naively named The readability of the program is greatly reduced, and of course, the maintainability of the program is also greatly reduced.
Speaking of the relevant content of the naming rules, you may wish to learn about a case that explains the visionary instructor of Hua Qing. After a simple understanding, you will surely benefit a lot from the simple use of named pipes.
3, concise annotation method programming habits
The comments are very necessary during the process of writing the program. Appropriate comments can clearly describe the program module. Of course, during the process of writing the program, the complex algorithm needs to add the process description. The functional role of the function can be described very specific, and it is also very helpful to clearly and concretely identify the important variables and their use.
4, clear and easy to read text formatting programming habits
No rules can be found in a circle. The format written by the program code can give you an idea of ​​your program's quality. The program code is not just piled on you. It must be neatly formatted. When the program is written, it must be indented, and each statement must be wrapped. By properly reading the nested relationship of the code can be clearly understood. The program is the most complicated thing. It is an intellectual product that needs to be grasped by intelligence. Good format can make the program structure clear, help you and others to understand it, help your thinking, but also help you find the abnormal places in the program, make the mistakes in the program easier to find.
Embedded system development experience1. The goal must be clear, don't get past it, and don't chase the hot stuff. At any time, you must have your own beliefs and ideals, and don't be left to other things.
2. Start with interest and competition because this is where you generate power. When learning something, let yourself like it first, and learn to enjoy the time of learning it. Like Joe knows, Joe's most frequent sentence is to enjoy the time of the game. Because only if you like it and enjoy it, it will not be overwhelmed by the pressure it produces. Do not produce a disgusted mentality. And the mentality is to be adjusted. Don't blindly learn and die. If you don't have any interest in learning, you can play for a few days, turn around, or switch in other ways.
3, to hold a decade can only wear a sword of the psychological, solid foundation from the beginning, do not be confused by some of the phenomena of high-speed development, those are just the software. I personally think that it is very important to engage in programming. English and mathematics are important. Everyone must grasp it from time to time. It is another matter how to grasp it. Of course, other knowledge must be learned, and you can touch astronomy, geography, and humanities. To supplement yourself.
GP5800 is highly integrated, medium-capacity GPON OLT for operators, ISPs, enterprises and park applications.The product follows the ITU-T G.984/G.988 technical standard,The communication industry standard of the People's Republic of China "Access Network Technical Requirements - Gigabit Passive Optical Network (GPON)" and China Telecom's GPON equipment technical requirements CTC2.0 standard, can be compatible with G/XG/XGS three modes at the same time. Among them, the asymmetric system (2.5Gbps uplink, 10Gbps downlink) is called XGPON, and the symmetrical system (10Gbps uplink, 10Gbps downlink) is called XGSPON. The product has good openness, strong compatibility, high reliability, complete software functions, and cooperates with the optical network unit (ONU) to provide users with access to various integrated services such as broadband, voice, video, and monitoring. It can be widely used in the construction of access networks such as operator FTTH/C access, VPN, government and enterprise park access, campus network access, etc., to meet the rapidly growing business needs. XG(S)-PON OLT provides higher bandwidth, application scenarios, business configuration and operation and maintenance are fully synchronized and inherited from GPON. GP5810 OLT is only 1U in height, easy to install and maintain, and saves space. The equipment adopts the industry's advanced technology to provide customers with reliable solutions, with efficient bandwidth utilization and Ethernet service support capabilities, helping operators to provide users with reliable service quality. Supporting mixed networking of different types of ONUs can save a lot of costs for operators.
XG(S)-PON OLT
Shenzhen GL-COM Technology CO.,LTD. , https://www.szglcom.com