Click below【Learn Embedded Together】 to follow, learn together, and grow together
To answer this question, let’s first look at what embedded applications and embedded BSP (Board Support Package) each do.
Embedded applications, on the surface, seem to involve software development, but essentially, they involve business work. The software developed is determined by the company’s business or project goals.
A good business can promote the application software to become increasingly complex, deeper, with better technology, and a stronger team.
However, a poorly thought-out project with a trial-and-error development approach is not meaningful. In the end, if the project fails, reflecting on what has been done in the project may reveal a lot of if…else and switch…case statements.
The upper and lower limits of embedded applications depend on the business they implement and rely on the market behind the business. The biggest advantage of doing applications is directly undertaking business, with many positions and high demand, always encountering new technologies and even continuously engaging with new industries, making the work relatively fresh.
Conversely, being closely tied to business is a double-edged sword. Consider who holds the business? Both the business and logic belong to the boss; engineers are merely tools, making it hard to have initiative.
If a business fails, switching to another business may involve a completely new language and technology stack, leading to a feeling of lacking accumulation and a sense of emptiness.
If one is in a good industry and the business being developed is stable, then working on application layer development will definitely be more fulfilling and enjoyable. However, the opposite can feel quite empty.
Embedded BSP, on the surface, also seems to involve software development, but essentially, it involves infrastructure work.
The scope of BSP development varies significantly between different companies and teams. Broadly speaking, BSP can include: booting, startup, drivers, operating system kernels, middleware, communication protocol stacks, virtual machines, and so on.
I personally feel that doing BSP development is not very enjoyable; frankly, it’s just infrastructure work.
For example, if you see a city’s new landmark, a uniquely shaped skyscraper covered in glass, and you randomly ask a construction worker which part they worked on?
-
They might say they are the high-altitude worker applying glass to the facade. You’d know, okay, that’s an application software engineer.
-
They could say they installed a huge 3D LED display in the most visible part of the building. That’s an application software developer.
-
They might say they decorated the model room. That’s an application software role.
-
They might say they were reinforcing steel. Oh, that’s BSP.
-
-
Installing pipelines and wires? BSP, BSP.
-
A worker might say they built a toilet on the construction site, and there hasn’t been a blockage in eight months. Haha, a typical BSP expert, respect.
Many times, the work done by BSP is just reinventing the wheel. However, the embedded industry is challenging because of its poor platform and generality, which requires people to repeatedly reinvent the wheel.
Moreover, the embedded industry is limited by its commercial nature, where different companies cannot share the wheels they create, so they all build their own behind closed doors.
Thus, although the demand is not high, BSP technicians are always needed. When someone working on BSP changes businesses or jobs, they are likely to switch environments and continue reinventing the wheel. It may seem a bit dull, but over time, they will feel a sense of technical accumulation and stability.
Overall, I feel that the development prospects of both directions are roughly similar. What matters more is personal choice and the persistence in that choice afterward.
Application development greatly challenges the ability to choose a business; I admit there is an element of gambling in it, but once a good business is developed, the material and psychological satisfaction gained will be quite considerable.
BSP development places great importance on platforms, and larger platforms require more sophisticated wheels, attracting more skilled craftsmen, leading to a growing sense of craftsmanship over time and the solidity that comes from the accumulation of time. However, one must also endure loneliness.
Original:https://www.zhihu.com/question/584774293/answer/2904983629
The source is from the internet, and the copyright belongs to the original author. If there is any infringement, please contact for removal.

Explaining All Aspects of Embedded Linux Driver Development
How to Learn Embedded Systems
Follow me 【Learn Embedded Together】, to learn and grow together.
If you find the article good, click “Share”, “Like”, or “View”!