Hello everyone, today I will share an article about the daily work of embedded engineering. The "I" in the article is the original author.
A friend of mine has been working in embedded systems for 2 years, but he has few friends in the embedded system industry and doesn't understand what other companies are doing.
He is maintaining a mature product of the company. He spends all day looking at the code and fixing bugs. He doesn't write much code himself and always feels that he will be left behind by the times.
What do embedded companies usually do? For example, what do those job descriptions that require familiarity with STM32 microcontrollers, Linux, or a certain interface usually do at work?
In fact, the work content of embedded engineers is relatively complex.
The life cycle of an embedded product includes
the development---testing/mass production---maintenance phase
. During this period, the work content of embedded development engineers seems to have not changed much, but in fact it is very different.
I will use the experience of participating in and being responsible for complete projects to integrate the situations and working status of these three parts.
1. Development stage:
For me, the work in the development stage can basically be summarized into a three-step cycle: learning knowledge - practical application of knowledge - demand realization/integration - overall debugging.
Because at the beginning of the design, the entire project was actually composed of a framework and a simple flow chart. For example, if the project required RTOS, I would port FreeRTOS, understand the API interface, implement the thread + message test code, and then complete the framework construction based on this part of the code.
I needed to implement an embedded server, so I studied the "
Authoritative Guide to HTTP
" and implemented the framework diagram (the picture below) by referring to the server process written by others on the Internet.
Later, I drew a flow chart and first implemented the server on the PC side using C+Socket. After the test passed, I ported it to the embedded platform and integrated the application test. Of course, for the convenience of web page testing, I also implemented a set using C#.
My work at this time was basically a process of constantly acquiring new knowledge and applying it. Since I had just started, and was responsible for such a complex project, the pressure was very high, but I was really passionate about it, and I could clearly feel my progress every once in a while.
2. Testing/mass production stage:
The work in the testing/mass production stage can be summarized as follows:
discover problems --- solve problems --- summarize problems
At this stage, the product has basically met the requirements in terms of functionality, but there are still many problems, such as long-term running stability, memory out-of-bounds triggered by certain branches, rationality of protocol resource allocation, and abnormalities in certain states of functional modules.
These problems may seem to be minor, but solving them requires detailed knowledge of every part of the entire system. Sometimes it is normal for the system to be stuck for 1-2 days, so this is also a systematic problem. At the same time, the entire development documentation must be improved, which is a process of in-depth summary and improvement.
3. Maintenance Phase
From a work perspective, this part basically involves maintaining demand changes and solving abnormal problems.
For products that have gone through the above process and are in mature mass production, there are generally not too many abnormal problems. The workload in the maintenance phase is not large, and the work is mainly focused on demand changes, such as replacing certain hardware components and adding functions. There will be basically no changes to the overall framework.
At that time, during the maintenance phase, I basically took the code of Class A products, modified some functions and parameters and promoted it to Class B, and then modified some function parameters and promoted it to Class C. That was basically all the work.
I resigned after working for half a year at this stage. On the one hand, I was not satisfied with the salary, but more importantly, I didn’t feel that my work was improving, which was a huge waste of my life.
The environment you are currently in is the embedded maintenance stage. To be honest, unless you have a clear plan for yourself, it is easy to lose your will. In fact, in this situation, you have a lot of free time and less pressure, which is very suitable for self-planning and learning. Rely on your own efforts!
autumn
The recruitment has already begun. If you are not well prepared,
autumn
It is difficult to find a good job.
Here is a big employment gift package for everyone. You can prepare for the spring recruitment and find a good job!