If you have learned about embedded technology and are considering developing in the direction of embedded engineers, the first thing you need to understand is “What is Embedded?” Embedded development is the use of technical means to achieve embedded systems or devices that meet specific needs. An embedded system, or Embedded System, refers to a “computer system” that has a specific function and real-time computing performance. Therefore, the foundation of an embedded system is a computer hardware and software system, but it generally requires custom development and enhanced capabilities.
The technology to implement embedded systems is generally divided into “embedded software technology” and “embedded hardware technology,” while the ultimate carriers of embedded systems are thousands of types of specialized or intelligent devices across various industries.
History of Embedded Development
Fields of Embedded Applications
In fact, there are very few job postings for “embedded engineers” on the market; instead, they are divided into more detailed categories. The knowledge involved in embedded systems is very broad, so there is a significant difference between experienced embedded engineers and novice engineers:
Below is a research report based on thousands of embedded engineers with an average work experience of 19 years, which gives a rough idea of the specific work that embedded engineers are primarily engaged in:
Of course, the above is from a personal growth perspective, which gives a rough idea of the main abilities that current embedded engineers need to possess. However, many times, embedded engineers should not work alone, and given the strong “customization” nature of the embedded industry and projects, it is suitable to form small but complete embedded technology teams, typically around 20 members, including:
Team Member Functions |
Number (Average of Many Teams) |
Software Engineer |
4.3 |
Firmware Engineer |
3.7 |
Hardware Engineer |
3.4 |
QA or Testing Engineer |
3 |
Other Types of Engineers (including design, structure, etc.) |
2.8 |
System/Integration/Project Management Engineer |
2.8 |
If the above job content still seems unclear, you can first understand “What is Embedded”.
The concept of an embedded system is relative to general-purpose computers; it is a dedicated computer system and device used to achieve specific functions: an embedded system is application-centered, based on computer technology, and with customizable hardware and software, suitable for application systems with strict requirements on functionality, reliability, cost, size, and power consumption
In contrast, general-purpose computers are multifunctional devices, such as computers, phones, and tablets:
An embedded system is “user-oriented, product-oriented, and application-oriented” and must be closely integrated with specific application scenarios to be more advantageous. Embedded systems are tightly coupled with applications, have strong specificity, and must be reasonably tailored and utilized according to actual system requirements.
An embedded system is a product of the combination of “computer technology”, “semiconductor technology”, “electronic technology”, and specific applications in various industries. It is a technology-intensive, capital-intensive, highly decentralized, and continuously innovative knowledge integration system.
Here are embedded-related characteristics listed from multiple dimensions:
Dimension |
Embedded Technology |
Technical Goals |
Must be application-oriented, designing hardware circuit systems and embedded software systems |
Technical Content |
Hardware architecture design and implementation, software architecture design, operating system porting, driver development, application program development, system integration, system debugging, system optimization, specialized technical stacks, etc. |
Application Fields |
Automobiles, smart homes, communications, medical, industrial, consumer electronics, security, medical devices, etc. |
Future Development |
Application development is relatively easy, while system development is more challenging. It requires knowledge of manufacturing processes, circuit design, verification testing, embedded software development, operating system porting, and many foundational areas, as well as proficiency in specialized knowledge in application fields, which has a high threshold and significant market demand for talent. |
Product Capabilities |
Design capabilities of electronic products, structural functions, software module customization, and flexible customization |
The prototype of embedded systems is generally considered to be the Apollo Guidance Computer developed by Charles Stark Draper at MIT Instrumentation Laboratory. In its early development, it was considered the riskiest part because it used the latest single-chip integrated circuits to minimize size.
The first truly mass-produced embedded device was the “D-17 Automatic Guidance Computer” inside the Minuteman I missile in 1961. Therefore, embedded systems initially appeared to meet military needs, and subsequently, more civilian embedded devices gradually emerged. In fact, many significant technological advancements in human history have been driven by the needs of war and military innovation.
In the 1960s, the application of embedded systems gradually promoted, significantly reducing overall prices while greatly enhancing processing capabilities and functions. Then came the first microcontroller “Intel 4004”, which was designed for small systems like calculators. By 1978, the National Engineering Manufacturers Association released a “programmable microcontroller” standard, covering computer-based controllers such as single-board computers and CNC devices.
By the early 1980s, memory, IO components, etc., were integrated into processors, and microcontrollers became more common, replacing the costly applications that used general-purpose computers. Lower-cost microcontrollers could replace many standalone components, making embedded systems more complex than previous solutions, but the complexity was inherent to the design of embedded systems, which brought significant advantages in terms of size and cost for the final product. In the early 1980s, Intel further improved the 8048 and successfully developed the 8051, which is undoubtedly an important milestone in the history of embedded development. Even today, the 51 series of microcontrollers are still used in many products. At that time, microcontrollers were generally 8-bit CPUs and lacked operating system support, with most programming done in assembly language.
In the 1980s, an embedded system based on embedded CPUs and centered on simple operating systems gradually formed. The operating systems at that time were real-time kernels, which included many features of general-purpose operating systems, including task management, inter-task communication, synchronization and mutual exclusion, interrupt support, memory management, etc., with well-known examples like VxWorks and QNX. Additionally, higher-level embedded CPUs emerged, with stronger performance and lower power consumption. Embedded CPUs and simple operating systems developed rapidly, forming a certain degree of compatibility and expandability, with small system overhead, compact and customizable kernels, and portability. These new developments greatly improved the efficiency of embedded application software development, although the user interface of embedded systems at this stage was still not friendly enough.
After the 1990s, as real-time requirements increased and software scales continued to rise, real-time kernels gradually evolved into real-time multitasking operating systems (RTOS) and became the mainstream international embedded system software platform. At this time, more companies recognized the vast development prospects of embedded systems and began to vigorously develop their own embedded operating systems. In addition to the established companies mentioned above, new players such as Palm OS, WinCE, Embedded Linux, Lynx, Nucleux, etc., emerged. Of course, nowadays, more common are FreeRTOS, uC-OS, RT-Thread. Meanwhile, embedded CPUs have also developed rapidly, with ARM series CPUs, which focus on mobility and low power consumption, dominating the mobile field, and most embedded systems adopting ARM series CPUs. In recent years, RISC-V has also gained significant momentum.
Today, the connection between embedded systems and the internet is becoming increasingly close. The advent of the information age and digital age has brought tremendous opportunities for the development of embedded systems. As the integration of internet technology with home appliances, industrial control, and other technologies becomes increasingly close, the combination of embedded systems and network technology is also remarkably close, with more and more embedded devices integrating network connectivity capabilities. In addition to network technology integration, achieving edge AI capabilities in embedded systems is also one of the current development trends.
After understanding what embedded systems are, their development history, and the specific work content that embedded engineers are engaged in, let’s finally look at the fields and products where embedded technology can be applied, and how it ultimately serves the needs of human life. The following is a survey that shows the main application fields that embedded development work focuses on (the larger the font, the more widespread and core the application):
Although the knowledge required for embedded development is very broad, covering almost all aspects of people’s lives, do not be intimidated by it, as most projects can achieve “function reuse”. Only about 45% of projects require completely new architecture development, while the remaining approximately 55% of projects are maintenance upgrades based on existing projects. Moreover, even for completely new projects, with the maturity of programming languages and ecosystems, it is not entirely “starting from scratch,” and tools like Copilot can assist in accelerating the development of project modules.
For maintenance upgrades based on existing projects, the following capabilities are primarily updated:
Do the above situations regarding embedded development align with what you have learned? Feel free to leave comments to supplement.
Trends in Embedded Development for 2024