While I was working hard on ucLinux, I also became interested in embedded real-time operating systems. The first real-time operating system I came into contact with was uC/OSⅡ. At that time, I started with the book "Embedded Real-Time Operating System uCOS-II" translated by Teacher Shao Beibei. This book gives a very detailed introduction to embedded operating systems. I learned a lot of operating system knowledge through this book. At the same time, I also got to know the uC/OS system. I first learned uC/OS through a virtual machine. I remember that uC/OS seemed to be started through DOS. If I didn't pay attention, I would have thought that uC/OS was just a DOS task! Unfortunately, the virtual machine does not have rich peripherals and cannot reflect the characteristics and advantages of the real-time operating system. So I tried to debug the uC/OS example on the S3C44B0X development board. Although I stumbled, I still persisted. Through uC/OS, I realized the benefits of real-time operating system programming. In 2006, using an operating system was a very "luxurious" design. At that time, the industry mainly used 8-bit microcontrollers. Using the system requires a lot of memory resources. And the speed of 8-bit microcontrollers is not good. If you create a system to run applications such as digital tubes, you will find that the digital tube refresh is not normal if you don't open a few tasks. Not to mention applications such as UART. So until the large-scale emergence of ARM Cortex M-based microcontrollers in mid-2007, it became very convenient to use an operating system. Now, whenever possible, I use real-time operating systems to write programs. I am even a little uncomfortable using "foreground and background programs". Although the first one I came into contact with was uC/OSⅡ, the earliest real-time operating system I used was a domestic operating system called "CoOS". Because this system is open source and free. At that time, there was also a special website to introduce and promote the system. There are a lot of Chinese materials on the website, and the introduction is very professional and detailed. I remember that Nuvoton Technology (Nuvoton) also has a development tool equipped with this system. The minimum can use a microcontroller with a Cortex M0 core. I have not used Nuvoton's Cortex M0 microcontroller, so I don't know how CoOS performs on the M0 core. I mainly use NXP's LPC1768 to transplant CoOS. This is a microcontroller with a Cortex M3 core. The performance is acceptable, but the price is a bit expensive. The CoOS system is about the same size as the uC/OS program. The functions are enough for me, and I have ported lwIP and ucGUI to this system. But unfortunately, this system was later acquired by some company and no longer open source. I only made one product with this system and stopped using it. Although many companies do not pay enough attention to copyright. But they dare not challenge "intellectual property rights" blatantly. Now I mainly use freeRTOS. For the freeRTOS system, I personally feel that it is still very good if the system is not complicated. For example, I used STM32F407 to make a product with network, which has been running for several years and has been stable. Only occasionally there is a reconnection phenomenon, and I still trust the performance of freeRTOS! In my experience, for more complex systems, such as a "digital acquisition instrument" system I developed, when there are real-time graphics display, network transmission, file storage and other applications in a system, I feel that freeRTOS is still a little bit difficult. But it can still run. It may also be a problem with the performance of the microcontroller system or the reason for the shortage of memory. So I suggest that for such complex applications, it is better to use a large operating system. I am still working hard on Linux.
|