Differences Between RT-Thread and FreeRTOS

Follow “Embedded Miscellaneous“, choose “Star Public Account” to progress together!

FreeRTOS is a mini real-time operating system kernel launched abroad, open-source, with functions including: task management, time management, semaphores, message queues, memory management, logging, software timers, coroutines, etc., which can basically meet the needs of smaller systems.

RT-Thread is a technology platform launched by Chinese people that integrates a real-time operating system (RTOS) kernel, middleware components, and a developer community, an open-source OS. In addition to the conventional RTOS functions, RT-Thread also has all the key components needed for an IoT OS platform.

For example, GUI, network protocol stack, secure transmission, low-power components, etc.

Below we compare FreeRTOS and RT-Thread in terms of kernel, supported components, and drivers:

Differences Between RT-Thread and FreeRTOS

Differences Between RT-Thread and FreeRTOS

Differences Between RT-Thread and FreeRTOS

Differences Between RT-Thread and FreeRTOS

FreeRTOS is abbreviated as FR, and RT-Thread is abbreviated as RT. First of all, both FR and RT are fundamentally positioned as IoT systems.

1. Background

FR is under Amazon, while RT has a relatively weak background and application. In China, there is no major enterprise supporting RT, but each develops its own IoT system, such as Huawei-liteOS, Tencent TencentOS tiny, and Alibaba AliOS Things. The competition is fierce, and the survival space for RT can be imagined.

2. Software Packages and Components

FR’s integration with Amazon IoT cloud services is relatively good, while in China, the integration degree should favor RT, such as Alibaba Cloud.

3. Learning Materials

RT has Chinese documentation, while FR has many videos from ZhenDianYuanZi, etc.: Indeed, as RT introduces below, RT is a package that contains components, with a lot included, ready to use. FR is not very clear. In terms of file size, RT is over 100MB, while FR is only a few MB.

RT-Thread is mainly different from many other RTOS such as FreeRTOS and uC/OS in that it is not just a real-time kernel, but also has rich middleware components.

Kernel Layer: The RT-Thread kernel is the core part of RT-Thread, including the implementation of objects in the kernel system, such as multithreading and its scheduling, semaphores, mailboxes, message queues, memory management, timers, etc.; libcpu/BSP (chip porting related files / board support packages) is closely related to hardware, consisting of peripheral drivers and CPU porting.

Component and Service Layer: Components are upper-layer software based on the RT-Thread kernel, such as virtual file systems, FinSH command line interfaces, network frameworks, device frameworks, etc. They adopt a modular design to achieve high cohesion within components and low coupling between components.

RT-Thread Software Packages: These run on the RT-Thread IoT operating system platform and are general software components for different application fields, composed of description information, source code, or library files. RT-Thread provides an open software package platform where official or developer-provided software packages are stored, giving developers a wide range of reusable software package choices, which is also an important part of the RT-Thread ecosystem.

The software package ecosystem is crucial for choosing an operating system because these packages are highly reusable, modular, and greatly facilitate application developers to create the systems they want in the shortest time. The number of software packages that RT-Thread has already supported has reached over 60, as exemplified below:

  • Software packages related to IoT: Paho MQTT, WebClient, mongoose, WebTerminal, etc.
  • Software packages related to scripting languages: Currently supports JerryScript, MicroPython.
  • Software packages related to multimedia: Openmv, mupdf.
  • Utility software packages: CmBacktrace, EasyFlash, EasyLogger, SystemView.
  • System-related software packages: RTGUI, Persimmon UI, lwext4, partition, SQLite, etc.
  • Peripheral library and driver software packages: RealTek RTL8710BN SDK.

Source:https://blog.csdn.net/u013184273/article/details/103805733

This article is sourced from the internet, and the copyright belongs to the original author.If there are copyright issues regarding the work, please contact me for deletion.

Past Highlights:

Past Recommendations

Content | A Brief Analysis of Program Autostart

How does a program run? Compilation, linking, loading?

Serial Communication | Simple and Clear Basic Knowledge

A Practical Software Framework Without OS for MCU

Leave a Comment

×