RT-Thread v5.0.0 Released

RT-Thread IoT OS
5 min readApr 19, 2023

We’re so delighted to share with you that the RT-Thread v5.0.0 is officially launched.

➢ RT-Thread Source Code:

➢ RT-Thread v5.0.0 Release Note:

RT-Thread 5.0.0 merges the RT-Thread Smart(Microkernel Version) branch onto the Main branch, so the RT-Thread Smart will be maintained with the mainline version in the future; v 5.0.0 adds RT-Thread Smart features and supports user mode; In addition, in order to add atomic characteristics, the scheduler file is functionally split; At the component level, the tmpfs file system is added, musl libc is supported, and POSIX support has been improved. At the BSP level, about 40+ BSPs have been added to v5.0.0.
For more details about the release notes, please click Here.

RT-Thread Smart on V5.0.0

Enable the Smart features on RT-Thread, the project becomes a hybrid microkernel operating system, referred to as RT-Smart or Smart. RT-Smart separates the application from the kernel to form a separate user-mode application with a separate address space (4G independent address space on 32-bit systems). Here are the detailed instructions for using the Smart on version 5.0.0:

RT-Smart Platform

Supported BSP List:

● qemu-vexpress-a9

● qemu-virt64-aarch64

● qemu-virt64-riscv

● raspberry-pi

● imx6ull-100ask-smart

● imx6ull-artpi-smart

Enable RT-Smart

Open the RT-Thread source code, open Env in the BSP path that supports Smart, configure the Smart feature, and enable “RT-Thread Kernel→ Enable RT-Thread Smart (microkernel on kernel/userland)”:

Smart User-mode Application Feature

Smart user-mode applications are independent of the kernel and do not exist in RT-Thread source code, and the user-mode application functions as follows:
● Support basic application loading
● Support POSIX PSE51 standard interface
● Support peripherals
● Support network function
● Support RT-Thread native interface
● Support for GNU applications

Smart User-mode Application Example
User-mode applications are located at https://github.com/RT-Thread/userapps, and the following is an application example:

Compile Application

Use scons for compilation in the userapps directory, when the compilation is successful, you will get a series of executable elf files in the root folder, as shown in the figure below, which is the executable file generated by the compilation of multiple user-mode application examples under userapps.

Create SD Card

In the userapps\tools\fatdisk directory, there is a FAT Format tool `fatdisk.exe` to package files in FAT format, which we can use to package the files we want to store in the QEMU SD card into sd.bin files.

Copy the root directory under userApps to the env\tools\fatdisk directory, and double-click to execute fatdisk.exe to generate a new sd.bin file.

RT-Smart on VSCode

RT-Smart is supported on Visual Studio Code, open the vscode, and search “rt-thread smart” in the extension, and click Install to get the RT-Smart plugin on vscode.

The smart plug-in SDK management interface is as follows

Open the application and start compiling and installing the application.

Smart Toolchain Download
In Smart toolchain

  • Method 1: Use the command to download under the userapps/tools path: python get_toolchain.py [platform]
  • Method 2: Click “Install Toolchain” in the Smart plugin.

Smart on GNU Applications
Smart supports POSIX interfaces, so porting GNU to Smart is quite easy.

  • Method 1: Manually add an application project and add GNU applications to the application project.
  • Method 2: Use the RT-Thread Smart plugin to directly create an application project and add GNU applications.

v5.0.0 Contributors Highlight:

We very much appreciate the support from the Community and the Partners to make the new version arrrive. A huge thank you to ANDREW LI-Nordic, Alexey Brodkin, BreederBai, BruceOu, CaiYiming0503, Fan Yang, Frank Buss, Harrypotter-zhs, KurisaW, Lei Peng, Maihuanyi, Misthao, Moss, NU-LL, NationsHuanghanbin, SNOWA, ShaquilleLiu, Stanley Lwin, WCX, Wayne Lin, YangZhongQing, Yifan, Yifang, Ylne, Yohozzy, YuQi, Yunjie Gu, ZXY_LINUX, Zhang WenBin, Zxy, a1012112796, andrew li, betesla, bin, breederbai, bzrobotics, ccx-lan, chenbin182, chenhy0106, childerxxx, chinky, emuzit, fan.ji, flyingcys, goldengrandpa, hg0720, jonas, kylongmu, letian, lhylhylhy6, liYony, linshire, liyangyang, lpy, luobeihai, mingmiaojing, myshow2258, myshowtogo, self-confident neko, sheltonyu, slhuan, songw4232, spaceman, supperthomas, tangzz98, tuduweb, vandoul, wangfuan, wdfk-prog, winfenggao, xiao xie, xiaoguang_ma, xjy, xqyjlj, xuhonghao, yandld, yangfasheng, yuanzihao, zhaohaisheng, zhugengyu, zilong, huifeidezhu, dadundexiaofangche, yang xi, liangsheng, luosisongdiaoderen, zhushicheng, man jianting(Meco), NXP, Renesase, WCH, Nuvoton, Nationstech, Geehy, XHSC, Mindnotion, Artery Technology, Qingdao Eastsoft, Bouffalo, Openluat, FeiTeng, Institute of Software Chinese Academy of Sciences PLCT Lab. Thank you all.

Welcome to experience v5.0.0 and feedback on any of your ideas!
Visit our main repository and give it a star⭐ if you haven’t already:
https://github.com/RT-Thread/rt-thread

2023 RT-Thread Global Tech Conference Registration Opens. We welcome engineers from all over the world to join an exclusive journey to learn all about the latest advancement in IoT and embedded development!

Free Register: https://bit.ly/404xwI5

--

--

RT-Thread IoT OS

An Open-Source Community-Powered Real-Time Operating System (RTOS) Project! Let’s develop, DIY, create, share, and explore this new IoT World together!