The Essential First Step in Embedded Design

The Essential First Step in Embedded Design

Many friends who are new to embedded systems often ask these questions:

——Why learn embedded systems?

——What are the applications of embedded systems?

To understand these, we must first know what embedded systems are. Embedded systems are technologies used to control, monitor, or assist in operating machines and devices. With the development of society, many high-tech products require embedded systems for research and development. Currently, there is a shortage of embedded system developers, especially those with strong capabilities. A research project often requires many developers’ participation, which may take months or even years to complete. However, once developed, it can lead us to a new stage and bring many conveniences to our lives.

When learning embedded systems, you need to understand how each part of the system function layer works in detail. You will also explore technical directions in system integration such as object-oriented programming, GUI, databases, and network services. Embedded systems can be said to be small yet comprehensive; although they are not as complex as PCs and servers, they are not lacking in various components of computer systems.

In fact, the boundaries between embedded systems, PCs, and servers have become increasingly blurred. Previously, embedded systems were just microcontrollers that could only perform simple calculations. Nowadays, many embedded processors outperform older Pentium processors, and they can handle gaming and video playback without issues. Who can say they are not PCs? Moreover, some dedicated embedded systems have already taken on server functions, and clustering technology can combine many inexpensive processors to perform the role of large servers. As embedded systems are increasingly applied to home appliances, automobiles, and various control facilities, they are ubiquitous and show a trend of integration with PCs and servers. Therefore, the prospects for the embedded industry are exceptionally bright.

The Essential First Step in Embedded Design

1

So, why is there a shortage of embedded talent?

According to statistics, the talent gap in the embedded industry has reached 300,000 to 500,000. This phenomenon can be attributed to two main reasons: First, the barriers to entry in the embedded industry are relatively high, with stricter theoretical and skill requirements for practitioners, as well as the need for a certain experimental environment and professional guidance; second, the current computer education in Chinese universities focuses on application software, with few courses covering embedded technology, which creates a significant gap from the practical embedded talent needed by enterprises.

In fact, learning embedded systems is essentially learning computer systems; there is nothing particularly unique about the technologies exclusive to embedded systems. When we say there is a shortage of embedded talent, we are essentially saying that there are few truly knowledgeable computer professionals.

Many so-called “software colleges” in schools train software talents who are short-sighted: they only understand J2EE and .NET, and even if they have learned C and assembly, they do not consider them core courses; they can only call library functions like sort() and are completely ignorant of various sorting algorithms; they can talk eloquently about design patterns and software engineering but fail to realize that good software still relies on talented individuals and intelligence.

Learning embedded systems has many advantages: first, you don’t have to worry about employment issues; second, you don’t need to worry about not achieving anything. As long as your abilities are present, you will be needed wherever you go, and your abilities will determine your achievements. Many people are learning embedded systems now, but there are not many outstanding talents, which requires personal effort.

Netizen 1

I have encountered many university students who are about to graduate and are looking for jobs. However, after searching for a long time, they find that after four years of university, they have learned nothing. When they see the job requirements on recruitment posters, they realize they completely don’t understand, making it impossible to find a high-paying job. At this point, someone says that embedded systems are developing well and that salaries are high, so they take embedded systems as a lifeline, thinking that as long as they enter this industry, they will not have to worry in the future.

However, many beginners have no idea what they can do after learning embedded systems, their future development, and positioning; they only see high salaries as a goal for studying embedded systems. Learning embedded systems requires first understanding what this field is, what its applications are, and what knowledge areas need to be studied. Only then can you find a suitable direction for your development and grasp your learning path.

In simple terms, embedded systems are divided into software and hardware components. The hardware part mainly involves learning ARM; on one hand, it involves learning interface circuit design, and on the other hand, it involves learning assembly and C language board-level programming. From the software aspect, it involves learning driver development, porting, and application programming based on ARM processors.

The Essential First Step in Embedded Design

These are essential for beginners to clarify. You must either start learning from hardware or from becoming familiar with the operating system to application development. Regardless of which aspect you start from, both software and hardware must be learned, just with different personal focuses. Therefore, for those involved in the hardware layer and driver programming of embedded systems, it is necessary to master ARM interface circuit design, ARM C language, and assembly language programming, as well as the debugging development environment. For those involved in application development and system layer development, they need to be familiar with the Linux operating system, proficient in C/C++, and understand databases and data structures.

Thus, for beginners, it is essential to be realistic and not assume that high salaries in driver layers mean it should be their direction. It should be combined with personal characteristics and interests. There are experts at every level of embedded systems; as long as you study diligently and acquire certain technical knowledge, high salaries will naturally follow.

Netizen 2

For those with no foundation, how to start learning embedded systems? If you are from an electronics or computer major, it will be relatively easier to get started. For those not from electronics or computer majors, you should start with basic circuits and C language programming.

2

Learning embedded systems can start from the following aspects.

1. Analog/Digital Circuits, C Language Programming

Analog circuits are relatively difficult to learn; you can choose to watch some video tutorials and look at the most basic textbooks. If you have time, you can do some simulation experiments on Multisim. Digital circuits are relatively easier to learn; just learning video tutorials is sufficient. Regardless of whether you are developing embedded software or hardware, mastering C language is essential, especially for those who aim to develop embedded software in the future, as most development is done using C language. Once you complete these preparations, the groundwork will be laid.

2. Microcontrollers

Master Proteus simulation; you can learn without buying hardware. When learning microcontrollers, one must master the various resources of microcontrollers and common components and buses.

3. Embedded Operating Systems

Learning embedded systems, such as programming under Linux, will be very helpful for future application programming. You should have an understanding of operating systems, as this will greatly aid your understanding of hardware and software. You should grasp system management concepts, such as processes, threads, how the system allocates resources, and how it manages hardware, etc.

4. ARM Learning

By studying the UBOOT source code in conjunction with ARM chip manuals, you can understand the minimum system development, which will be very helpful for your overall embedded development. If possible, you can also study the Linux source code, starting with early versions like 0.12; if you read through it, you will have basically entered the field.

The Essential First Step in Embedded Design

1. Differences between ARM Cortex-M processors from a performance perspective

2. What are the embedded experts who earn 500,000 a year doing?

3. The watchdog function is becoming increasingly important in MCU applications

4. Some say quantum computer programming is more suitable for electronic engineers

5. You must know these 8 working modes of GPIO in STM32!

6. Common development tools and processes for ARM embedded systems

The Essential First Step in Embedded Design

Disclaimer: This article is a network reprint, and the copyright belongs to the original author. If there are any copyright issues, please contact us, and we will confirm the copyright based on the copyright certificate you provide and pay the remuneration or delete the content accordingly.

Leave a Comment