Which is More Promising for Embedded Development: MCU + RTOS or Linux?

First, it is important to understand the differences between the two.Which is More Promising for Embedded Development: MCU + RTOS or Linux?Starting from the job perspective,RTOS direction: Positions such as driver development, automotive electronics, or medical device firmware place a strong emphasis on C language and hardware debugging skills. Proficiency in systems like FreeRTOS/ThreadX is essential, and knowledge of CAN bus and low-power optimization is also required. Linux direction: Positions in Linux kernel development, edge computing, or virtualization engineering require strong kernel module development skills, and familiarity with Python scripting is also necessary. Knowledge of KVM/Docker and the ability to deploy AI models are highly valued.Next, from the perspective of suitable majors for entry into the field,RTOS is best suited for: Electronic Information Engineering and Automation majors, as a solid hardware foundation provides a natural advantage in learning RTOS. Linux is best considered for: Computer Science and Technology or Software Engineering majors, who are adept at code architecture and find it easier to get started with Linux. Communication Engineering and Internet of Things majors can choose either path, as they can engage in both fields, offering significant development opportunities.Finally, from the perspective of knowledge points to learn,RTOS: One must start from bare-metal development, mastering real-time scheduling, and be able to interpret circuit diagrams. Tools like STM32, Keil development tools, oscilloscope usage, and Modbus protocol must all be mastered. Linux: The focus is on system porting, network protocol stacks, and containerization. Tools like Yocto and Kubernetes, as well as knowledge of TensorFlow Lite, should be acquired.Opinions:Which is More Promising for Embedded Development: MCU + RTOS or Linux?1. Future industry development: Focus onLinuxC/C++ towards new energy vehicles, robotics, and chip manufacturers, these fields are where embedded systems are poised to counterattack the internet era.Linux has a wide range, but in actual work, code is run on Linux systems based on product business function requirements. This Linux system is generally provided by chip manufacturers or Linux board suppliers as an SDK, although some companies customize their own Linux kernel for use, which is rare. Normal companies are assembly factories, and they do not start everything from scratch; they rely on supply chain manufacturers, so embedded development Linux positions mostly involve writing C, with few cases using C++.Embedded Linux positions in larger companies will differentiate between embedded applications, embedded middleware, and embedded BSP, where only BSP and drivers have some relation, but it also involves debugging drivers in conjunction with manufacturers, and the driver source code is also provided by manufacturers. If students want to learn Linux during their studies, they can buy a Linux development board from Taobao, learning from the bottom layer to the application layer system; having multiple skills is beneficial.Linux driver positions are actually quite rare, as most companies are assembly factories that combine various modules, and drivers are typically provided by module manufacturers, such as screen drivers and register initialization tables provided by manufacturers, which can be used directly to light up the display. Therefore, it is not recommended to specialize in drivers; during the student phase, it is better to dabble in various areas, such as Linux application layer process communication, multithreading, shared memory, network communication, etc., as well as Linux file systems.2. Personal career planning: If you have entrepreneurial aspirations, then focus on MCU, as you can later develop your own products. C++ is primarily for Linux applications and games. Whether to choose MCU or Linux is up to your interests; MCU is more business-oriented, and you can choose projects based on your desired direction. As for Linux direction, consider application driver systems; evaluate which of the three directions suits you best, and later, it is essential to get familiar with domestic operating systems and RT-Thread, which will be advantageous.3. In recent years, MCU + RTOS has indeed become quite popular, with increasing usage scenarios for MCUs, such as automotive electronics, the Internet of Things, and new energy. Using microcontrollers offers strong real-time performance and low cost. The development threshold for MCU + RTOS is lower compared to Linux, which has a large system and is more complicated to adapt. Learning RTOS is beneficial, but once everyone starts learning it, the competition for jobs will also increase. It is also recommended that if you have the energy, take a look at Linux; RTOS is popular, but that does not mean Linux is not viable, especially in complex application scenarios, where Linux is still necessary.Current employment situation in embedded software:Which is More Promising for Embedded Development: MCU + RTOS or Linux? The differences are significant; those with good education and strong abilities can start with a salary of 25-35k in large companies. Those with poor education and weak abilities may start with 5k-10k in small companies. The embedded field is quite deep; as long as you are not a novice and are young, most companies will want you. Training programs teaching Linux + RTOS can easily lead to salaries of 18k+, but in practice, the actual salary is around 3-6k.Embedded development is just starting to gradually take over all company operations, from 32-bit to imx6u, and common UI software like lvgl/qt must be engaged with, and hardware must also be designed by oneself. The current environment is such that employers expect workers to be versatile and able to get started immediately, which is quite normal. Take it step by step, plan your learning path from MCU to Linux, and actively try new technologies through projects; progress slowly, as embedded development requires a gradual approach.

Leave a Comment