At present, the society’s understanding of embedded is the concept hyped by businesses: embedded = arm + Linux. However, as an electronics major, I can find that many things belong to embedded: MP3, mobile phone, ATM, easy to remember star and so on. Why do you want to learn ARM + Linux when learning embedded? It’s also difficult! You may not find a job yet!

What are the challenges faced by embedded

Let’s start with hardware:

It’s not easy for hardware to make a product. We should consider the selection of various schemes. Unlike mobile development, the selection of hardware schemes is not as simple as Android or IOS, Java or Delphi. Oh, what framework do you ask me to use? I also want to ask what framework means! Hardware engineers only have circuit diagrams! Schematic( OS: circuit diagram and schematic diagram are the same thing, okay.) And whether this circuit diagram has been implemented.

Well, I can see the circuit diagram. I have to make it for the boss, right? So you have to be able to weld. Embedded hardware is absolutely inseparable from the main control chip, otherwise what is it called embedded Engineer? Therefore, the smallest system of the chip should be welded.

If the minimum system is realized, various sensors can be overlapped and go in the direction of intelligent hardware; Or transplant an operating system and go in the direction of man-machine interface (UI).

Of course, you can stop here. Instead of making products, you can make various hardware modules or development boards, and then sell them. If I understand correctly, this is called a solution provider.

“Our company sells solutions.”—— A little engineer introduced his company.

Of course, some hardware companies sell their own chips and modules with their own SDK (software development kit). Our customers (users, engineers and secondary developers) call the hardware company the original factory (official), and the code is called the original factory code (or official code). Companies that sell chips are called chip suppliers.

What I want to say is that other companies use the original chip as the smallest system module and sell it to our secondary developers (tertiary developers)… For example, the companies that sell chips have the most embedded hardware engineers!

I like to divide embedded into four layers: hardware layer, driver layer, system layer and application layer. After talking about hardware, I will talk about software.

If someone has written the program of timer, nixie tube and temperature sensor on the single chip microcomputer, used UART, SPI, IIC, can and other communication methods, or even contacted the Bluetooth protocol stack or TCP / IP protocol stack, there should be nothing wrong with calling him a driver engineer? Are the underlying code, although difficult and easy.

System layer. Ordinary individuals or small companies can’t write it. I heard that a version of windows has been written by 300 people for 2 years. Only large companies will want to write their own systems. For example, in the recent news, Huawei pushed its main Internet of things operating system liteos, which is open to the world for free

What we can do is transplant the operating system to the chip.

In addition, add a knowledge point: an operating system generally has five things: memory management, process management, file system, device hardware interface and network communication. In the embedded field, the system layer may be cut according to different applications, such as cutting file system and network communication, leaving only memory, process and hardware interface.

If you are working now, the hardware layer is ARM chip and the system layer is Linux.

So it’s an arm + Linux embedded engineer, but do you think you want to do the above work? no

You just modify arm + Linux. The hardware and driver work mentioned above are handed over to other people or upstream companies, but those people can also be said to be doing embedded!

Then, isn’t Android Linux in essence? So if you are doing Android underlying development and android app development, you are essentially doing embedded! And isn’t Android often compared with IOS? So IOS development is also embedded development… It’s incredible!

In addition, in addition to arm + Linux / Android, there are other chip + systems, such as STM32 + UCOS and arm + wince.

According to the current social understanding of the word embedded, it may be within this scope. People like me who majored in electronics have a less narrow understanding of embedded.

I would also like to say that engineers in the driver layer and system layer do not need large-scale modifications, and the market demand is small, because they need to read a lot of code and have a lot of debugging experience.

In recent years, embedded is so popular, but it is still a concept hyped by training institutions! The most important thing is to go back to reality and what exactly you do! If you are an embedded Engineer in this company, you may not be an embedded Engineer in another company at all! So

The biggest embedded pit is the undefined one!

If the definition of embedded is unclear and hyped by businesses, a large number of people (including me) will flock to it. After contact, they find that it is not what they imagined. If they want to quit, they find that they can’t do anything except embedded. If they want to go to the Internet industry, they find that they don’t know HTML, CCS, JavaScript, PHP, Delphi and c# at all!

Internet as long as a computer + a server can make money, software or zero cost; And embedded, do you know what my mother said in the first sentence of my graduation project, Android mobile phone Bluetooth remote control tricolor lamp? Is this manufacturing?


Later, I thought about it. I can’t say the definition is unclear. It should be said that the definition is too broad.

The definition of embedded system in books is very clear and long, which can be found in an encyclopedia. My embedded teacher summed up the essence of embedded system in only three words: dedicated and tailorable computer system.

Embedded engineer is a combination of hardware engineer and software engineer! Don’t ask me what kind of Software Engineer I am. It’s not front-end, back-end, app, testing, operation and maintenance anyway. Don’t ask me what hardware engineer I am, power supply, MCU, high frequency, communication… You can do it! Give you the title of embedded engineer. You are a small expert in software and hardware, comparable to the full stack engineer.

Therefore, if you want to enter the embedded industry, please grasp your learning direction and don’t get lost by the hype of training institutions.

Source: China Electronics Network

Leave a Reply

Your email address will not be published. Required fields are marked *