In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-04-01 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)06/03 Report--
What skills do you need to master embedded development? In order to solve this problem, the editor summarizes this article on embedded development today, hoping to help more friends who want to solve this problem to find a more simple and easy way.
Brief introduction of embedded operating system
Embedded system is undoubtedly one of the hottest and most promising IT application fields. Embedded systems are used in some special devices. Usually, the hardware resources (such as processors, memories, etc.) of these devices are very limited, and they are very sensitive to cost, and sometimes require high real-time response. Especially with the intelligence of consumer household appliances, embedded becomes more and more important.
Why learn embedded software development? What are the benefits?
(1) at present, people in this field are very scarce at home and abroad. Embedded talent is scarce, the price is naturally high, the more experienced, the higher the price. In fact, the fundamental reason for the scarcity of embedded talents may be that most people contact them unconditionally, which requires corresponding embedded development boards and software, as well as experienced people to guide the development process.
(2) different from enterprise computing and other application software, the work intensity of embedded talents is usually lower (but the income is not low). IT enterprises engaged in enterprise application software, this user's system is finished, and have to get the next user's, and each user's needs and completion time have to be changed according to customer requirements, often tired, repetitive work. In contrast, companies engaged in embedded systems have their own product plans and act at their own pace.
(3) if you want to start a business and develop your own products one day, then embedded is a good idea, which is not as easy to be pirated as applications.
Eight knowledge points of introduction to embedded system
1. C language
Embedded Linux engineers need to have a certain foundation of C language. C language is the most important and main programming language in embedded field. Through a large number of programming examples, we focus on understanding the basic programming and advanced programming knowledge of C language. Including: basic data types, arrays, pointers, structures, linked lists, file operations, queues, stacks and so on.
2. Linux Foundation
The concept and installation method of Linux operating system, the detailed knowledge of directory structure, basic commands, editor VI, compiler GCC, debugger GDB and Make project management tools, Shell Makefile scripting under Linux, and the construction of embedded development environment.
3. Linux system programming
Focus on learning the standard isign O library, multiprocess and multithreading in Linux multitasking programming, as well as inter-process communication (pipe, FIFO, message queue, shared memory, signal, semaphore, etc.), synchronization and mutual exclusion of shared resources access control and other important knowledge, mainly to improve the understanding of Linux application development and the ability of code debugging.
4. Linux network programming
Computer network is widely used in the application and development of embedded Linux system. Through the development of Linux network, TCP/IP protocol, socket programming, TCP network programming, UDP network programming, Web programming and other aspects, we have a comprehensive understanding of Linux network application development. Focus on learning API related to network programming, skillfully master the programming method of TCP protocol server and the implementation of concurrent server, understand HTTP protocol and its implementation method, be familiar with the principle and programming method of UDP broadcast and multicast, master the design of mixed Cmax S architecture network communication system, and be familiar with HTML,Javascript and other Web programming techniques and implementation methods.
5. Data structure and algorithm
Data structures and algorithms will be widely used in embedded underlying drivers, communication protocols, and various engine development, and their mastery will directly affect the efficiency, simplicity and robustness of the program. This stage of learning should focus on understanding the basic contents of data structures and algorithms, including sequential lists, linked lists, queues, stacks, trees, graphs, hash tables, various search and sorting algorithms and their C language implementation.
6 、 C++ 、 QT
C++ is one of the main languages of Linux application development. This stage focuses on mastering the basic ideas of object-oriented programming and the important contents of C++. Graphical interface programming is a very important link in embedded development. Because QT has powerful functions such as cross-platform, object-oriented, rich API, supporting 2D/3D rendering, supporting XML, multi-language and so on, it has been widely used in embedded GUI development. At this stage, students can skillfully write GUI programs through learning based on QT graphics library, and transplant QT applications to Cortex-A8 platform. It includes the use of IDE, QT components and layout manager, the application of information and slot mechanism, mouse, keyboard and drawing event processing and file processing applications.
7. Cortex A8, Linux platform development
Based on ARM Cortex-A8 processing s5pv210 to understand the basic reading skills of chip manual, master s5pv210 system resources, clock controller, power management, abnormal interrupt controller, nand flash controller and other modules, to prepare for the construction of the underlying platform. The Linux platform includes kernel reduction, kernel transplantation, cross-compilation, use of GNU tools, kernel debugging, Bootloader introduction, production and principle analysis, root file system creation and adding its own modules to the kernel. The Linux system made by ourselves is run on the s5pv210 experimental platform, and the whole process of deploying Linux system is integrated. At the same time, understand the Android operating system development process.
8. Driver development
Driver design is an important and difficult part of embedded Linux development. In this stage of study, we should be familiar with the kernel mechanism of Linux, the interface between drivers and user-level applications, and master the concurrent operation of the system to the device. Familiar with the working principle of the developed hardware, basic knowledge of ARM hardware interface, familiar with ARM Cortex-A8 processor s5pv210 resources, master Linux device driver principle framework, familiar with engineering Linux advanced character equipment, block equipment, network equipment, USB equipment and other driver development, can independently be competent for underlying driver development.
Embedded learning tricks that can't be learned in top ten textbooks
1. Leave the comfort zone
Getting out of the comfort zone, challenging yourself and learning things that you are not familiar with, including knowledge other than engineering, such as interaction with customers and colleagues, will gain a lot.
2. Learn to use search engines
Xin Yingda engineers believe that we should not work behind closed doors, but should make good use of the information of the open source world. in fact, many common design problems can find the program code contributed by the elites in the same field through the Internet; embedded engineers should go out of their small world and embrace the community, communicate and help each other with other engineers in the same field, and this is also the spirit of the open source world.
3. Learn the technologies that make the Internet possible.
Most embedded engineers know how to write C or C++ language programs, but sometimes such skills are not enough. He suggested that embedded engineers learn Internet-related technologies, which will have a bonus effect on their career development. For example, he is currently responsible for several development projects that embed virtual (virtual) XML into embedded systems, so that some small networking devices can have a "plug and play" mode of operation.
4. Be familiar with real-time operating system (RTOS)
At present, there is a high demand in the industry for engineers who are familiar with RTOS and are willing to offer higher salaries, so he encourages embedded engineers who have not been exposed to RTOS to start with some smaller systems and accumulate relevant technical experience. In addition, he also found that there is a lot of demand for embedded Linux talents in the industry, mainly because the operating system has greater design flexibility.
5. Learn about the latest processors
In addition to in-depth understanding of basic programming languages such as C or C++, it is sometimes necessary to understand some popular new programming languages to meet special design needs, but it is more important to understand the latest processor technology; processors are the essence of embedded systems. Because our system resources are limited, we need to know what resources are available.
6. cultivate diversified skills and system view.
Engineers who originally worked on smaller system architectures (such as MCU) can begin to familiarize themselves with larger systems (such as Linux drivers) and vice versa. Trying to develop mobile applications, or learning related technologies on back-end servers, can open up a completely different point of view. He also advises engineers to familiarize themselves with open hardware, and there are many ready-made development boards on the market that allow engineers to focus on learning unique algorithms.
7. Be familiar with open source software
Customers often ask to integrate a lot of software into the system, so all embedded engineers need to be familiar with all kinds of software; he advises engineers to avoid specializing in a single area, as that may hinder your growth. It is a very valuable value for embedded engineers to make sure that they have a good understanding of software and hardware technology.
8. Establish system-level engineering thinking.
It is important for embedded engineers to have system-oriented thinking, and many development projects encounter problems because projects such as benchmarks, verification strategies and compatibility verification plans are not fully considered at the initial stage of development. in addition, every embedded engineer should have excellent project management skills and strive to complete the responsible project on time. The ability to respond to technical and project risks wisely will be very helpful to career development.
9. Learn wireless connection technology
Embedded engineers need to learn wireless connectivity technologies, especially Wi-Fi and Bluetooth low Power consumption (BLE), in the next 1-3 years. Because the main (or only) way for embedded devices (at least all kinds of consumer electronics) to connect with users' smartphones is through these wireless technologies, although Wi-Fi and BLE may not necessarily be standard equipment for embedded systems, familiarity with these technologies will be very practical for embedded engineers.
10. Be able to express your ideas and opinions clearly through words or drawings
After reading the above, do you have a general understanding of embedded development? If you want to know more about the content of the article, welcome to follow the industry information channel, thank you for reading!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.