RT-Thread is an open source IoT real-time operating system (RTOS).
The v3.1.x is the long term support branch in RT-Thread. It's more focused on bug fixed and BSP update.
The following is the change log since RT-Thread v3.1.4.
RT_THREAD_CTRL_CLOSE
commandrt_thread_delete
change the status of thread;cmp
rtconfig.h
files in scons with command scons --menuconfig
Change log since v4.0.2
__RTTHREAD__
global macro definitionRT_THREAD_CTRL_CLOSE
commandRT_USING_FINSH
from the kernelAdd license info and code cleanup for vexpress-a9 BSP
Add HDSC hc32f4a0 BSP support
Add support for Cypress PSoC6 series products
Fix the lpc55 issue under Linux/GCC
[qemu] Fix spelling mistakes of code in drv_pl041.c
[loongson] Update the SPI driver and UART driver on the Loongson 2K1000 platform
[allwinner_tina]Fix spi driver bug
[smartfusion2]Support Microsemi SmartFusion2 family FPGA
[imxrt] Add ethernet configuration for imxrt1064-nxp-evk
Add support for architecture sparc-v8 and soc bm3803.
[libc] libc adds getline/getdelim functions (posix.1-2008)
Add support for c28x mcu hardware fpu
[at32] Add link detecting thread for ethernet driver
Fix gcc assembly option in rtconfig.py for imxrt1064-nxp-evk
[IMXRT]Fix scons --dist in IMXRT BSP
[ls2kdev] Initial gpio driver without irq support on ls2kdev
Optimize BSP dist handle process
[nrfx] Add the qspi_flash of nordic pdk
[nrf5x] Add the BSP of nrf5x, which support UART, SPI, PWM, ADC, i2c drivers and rtc device driver
[nrfx] Add the on-chip flash for nrf5x
[RISC-V:K210]Add UART1~3 support for K210
[Nuclei] Add Nuclei RISC-V Processor support
Update BSP for mini2440
Add soc timer cntpct
LPC55S69: Add NS project and TFM support on LPC55S69
Make MicroPython runs on Raspi3-64 BSP
Add rt_hw_us_delay for W60x
[imxrt] [driver] Add usb device driver
Fix raspi4-32
Add more BSP on BSP framework:
Add more STM32 BSP based on new STM32 BSP framework:
New STM32 BSP framework:
scons --dist
tackanalysis
optionrtconfig.h
files in scons with command scons --menuconfig
The v3.1.x is the long term support branch in RT-Thread. It's more focused on bug fixed and BSP update.
The following is the change log since RT-Thread v3.1.3.
rt_mq_create
in some abnormal case;rt_console_set_device
function;suspend_thread_count
member from memory_pool structure;rt_thread_delete
change the status of thread;dfs_mount_device
API to mount a file system on a device which is already in mount_table;rt_hw_console_getchar()
function which is simple to implement and not using the device framework;ulog/ulog_console_backend_output
;libc\compilers\common
folder;dlib/sys/unistd.h
(which will cause compilation warnings);sys/errno.h
andsys/signal.h
header files under dlib;at_server_send ()
and at_server_recv ()
;closesocket()
in SAL component when socket closing failure after shutdown()
;sal_bind ()
network card binding related function in SAL component;sys_arch_mbox_fetch()
in lwIP which may occur when a socket is closed;dhcpd_stop()
interface;rt_i2c_master_send/rt_i2c_master_recv
;rt_mmcsd_blk_remove
;SFUD_FLASH_DEVICE_TABLE
in SFUD;rt_rbb_destroy()
function;rt_rbb_blk_alloc
function;struct rt_delayed_work
in workqueue to struct rt_work
;rt_hw_sci_init()
for opening the global interrupt in tms320f28379d BSP;Changelog since v4.0.1
rt_mq_create
in some abnormal case;rt_console_set_device
function;suspend_thread_count
member from memory_pool structure;cpu.c
will not be added into project by default;rt_thread_exit
turned on the interrupt prematurely in the SMP mode, so other cores might delete this task, causing the issue in subsequent function stacks;rt_thread_delete
change the status of thread;dfs_mount_device
API to mount a file system on a device which is already in mount_table;rt_hw_console_getchar()
function which is simple to implement and not using the device framework;ulog/ulog_console_backend_output
;libc\compilers\common
folder;dlib/sys/unistd.h
(which will cause compilation warnings);sys/errno.h
andsys/signal.h
header files under dlib;at_server_send ()
and at_server_recv ()
;closesocket()
in SAL component when socket closing failure after shutdown()
;sal_bind ()
network card binding related function in SAL component;sys_arch_mbox_fetch()
in lwIP which may occur when a socket is closed;dhcpd_stop()
interface;rt_i2c_master_send/rt_i2c_master_recv
;rt_mmcsd_blk_remove
;SFUD_FLASH_DEVICE_TABLE
in SFUD;rt_rbb_destroy()
function;rt_rbb_blk_alloc
function;struct rt_delayed_work
in workqueue to struct rt_work
;bsp/essemi/es32f0334
;bsp/essemi/es8p508x
BSP, including UART and GPIO drivers;rt_hw_sci_init()
for opening the global interrupt in tms320f28379d BSP;The v3.1.x is the long term support branch in RT-Thread. It's more focused on bug fixed and BSP update.
The following is the change log since RT-Thread v3.1.2.
rt_tick_from_millisecond()
compilation warning issue;ENOTSUP
in libc_errno.h.rt_int8_t/.../rt_uint32_t
and other basic data types can be defined by BSP itself. (It is recommended to put them into the rtconfig_project.h file, so that this file can be automatically included in rtconfig.h when menuconfig generates it.)RT_Device_Class_Sensor
type devices;rt_hw_spin_lock/rt_hw_spin_unlock
is redefined as the disable/enable interrupt.rt_strnlen()
function in kservice.c.ioctl()
function not support to control socketfd issues in SAL;scons –target=makefile -s
. Then developer can use make to build RT-Thread under Linux or Windows.scons –target=eclipse -s
, which will put the necessary information in .cproject
and .project
files in current BSP folder. The developer can use Eclipse to build RT-Thread.V4.0.1 release is the bugfix version of RT-Thread v4.0.0, more for: adding netdev to better manage network devices, fix the signal issue under SMP environment, and change the POSIX thread management to array way. Moreover, several chip manufacturers (EastSoft, MindMotion, Winner Micro, NXP, Synopsys, etc.) contribute their BSP to RT-Thread upstream.
V4.0.1 release also represents the v4.0.x series more stable. Later, more multi-core processor BSP will be added, including AMP (Cortex-M4 + M0) and SMP (Dual-Cortex-A7 etc) processor.
rt_tick_from_millisecond()
compilation warning issue;ENOTSUP
in libc_errno.h.rt_int8_t/.../rt_uint32_t
and other basic data types can be defined by BSP itself. (It is recommended to put them into the rtconfig_project.h file, so that this file can be automatically included in rtconfig.h when menuconfig generates it.)RT_Device_Class_Sensor
type devices;rt_hw_spin_lock/rt_hw_spin_unlock
is redefined as the disable/enable interrupt.rt_strnlen()
function in kservice.c.itctrol()
function not support to control socketfd issues in SAL;Add ES32 chip BSP from Shanghai Eastsoft Microelectronics Co., Ltd. (EastSoft provides maintenance and support);
Add GD32E230K-start, with ARM Cortex-M23 core BSP (xuzhuoyi)
Add IMXRT1021-EVK BSP (NXP provides maintenance and support);
Add the ETH hardware checksum option in IMXRT1052 ETH driver;
Add more peripheral drivers, GPIO, LCD, SPI, camera, etc. in Kendryte K210 BSP.
Cleanup the LPC 4088 BSP to use main function entry and support menuconfig;
Add LPC1114 BSP with UART driver (SASANO Takayoshi, Japan);
The double Frame Buffer mechanism and touch screen driver are added in Godson 1C BSP, then it can better to support Persimmon UI (sundm75).
Add watchdog driver in Godson 1C BSP(sundm75);
Add MM32 chip BSP from Shanghai MindMotion Microelectronics Co., Ltd. (MindMotion provides maintenance and support);
Fix the SysTick interrupt handling issue in nRF52832 and add menuconfig configuration file.
Add QSPI and SPI flash driver to Nuvoton M487 BSP (bluebear 233)
Change the CPU porting to libcpu/arm/cortex-a folder in QEMU-VExpress A9/IMX6UL BSP;
In QEMU-VExpress A9 BSP, the MAC address associated with the local MAC address is used for a unified MAC address in the network.
remove stm32f0x, stm32f7-disco, stm32f107, stm32f40x, stm32l072, stm32l475-iot-disco, stm32l476-nucleo BSP (when the new STM32 BSP can completely replace these old BSP, these BSP will be removed);
For the new STM32 BSP:
More board support is added to the new STM32 BSP:
Add the ARC support for Synopsys Design Ware ARC EM Starter Kit (Synopsys provides maintenance and support);
The SCI driver is added to the TMS320F28379D BSP (xuzuoyi).
Add W60X Wi-Fi SoC chip BSP from Winner Microelectronics Co.,Ltd. (Winner Micro and RealThread provide maintenance and support);
Fix the UART2 IO configuration issue in X1000 UART driver (Zhou Yanjie);
Add SConscript file for each CPU porting.
Cleanup the libcpu/arm/cortex-a code;
The _rt_hw_context_switch_interrupt/_rt_hw_context_switch is separated in TI DSP TMS320F28379D BSP (xuzuoyi);
scons –target=makefile -s
. Then developer can use make to build RT-Thread under Linux or Windows.scons –target=eclipse -s
, which will put the necessary information in .cproject
and .project
files in current BSP folder. The developer can use Eclipse to build RT-Thread.The v3.1.x is the long term support branch in RT-Thread. It's more focused on bug fixed and BSP update.
The following is the change log since RT-Thread v3.1.1.
fd_is_open()
issue: when the sub-path is the same in different mounted filesystem.getcwd()
function of DFS (the critical lock/unlock is different in SMP environment);aio_result
issue, which is returned by aio_read_work
in AIO; (fullhan)_sys_istty
function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz)_write_r
function in newlib to correctly handle stdout.at_recvfrom()
function in at_socket;sal_socket_ops/sal_proto_ops
and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc.ulog_strcpy
, which should be not exceed ULOG_LINE_BUF_SIZE
;can_rx/can_tx
issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu)RT_SERIAL_USING_DMA
option in drivers/serial;blk_size
issue in rt_rbb_blk_alloc()
;_get_descriptor
function;cosnt char *
in rt_hw_interrupt_install
function; (liruncong)$
warning issue in Kconfig files of each BSP;str(Dir('#'))
;scons --pyconfig-silent
command to add some Kconfig configurations and to generate .config
and rtconfig.h
files;scons --dist
command to adapt to the new BSP framework;system32
path to environment variables to avoid the cmd
command cannot be found;PYTHONHOME
variable to environment variables to avoid PYTHON environment issue;The following is the change log of this version since v3.1.1 release.
fd_is_open()
issue: when the sub-path is the same in different mounted filesystem.getcwd()
function of DFS (the critical lock/unlock is different in SMP environment);list_thread/list_*
implementation of finsh cmd to avoid multi-core competition case;aio_result
issue, which is returned by aio_read_work
in AIO; (fullhan)_sys_istty
function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz)_write_r
function in newlib to correctly handle stdout.at_recvfrom()
function in at_socket;sal_socket_ops/sal_proto_ops
and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc.ulog_strcpy
, which should be not exceed ULOG_LINE_BUF_SIZE
;can_rx/can_tx
issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu)RT_SERIAL_USING_DMA
option in drivers/serial;blk_size
issue in rt_rbb_blk_alloc()
;_get_descriptor
function;cosnt char *
in rt_hw_interrupt_install
function; (liruncong)$
warning issue in Kconfig files of each BSP;str(Dir('#'))
;scons --pyconfig-silent
command to add some Kconfig configurations and to generate .config
and rtconfig.h
files;scons --dist
command to adapt to the new BSP framework;system32
path to environment variables to avoid the cmd
command cannot be found;PYTHONHOME
variable to environment variables to avoid PYTHON environment issue;This version is the second version of the v3.1.x series, and v3.1.x is also a long-term maintenance version. Starting with v4.0.0, the kernel of RT-Thread will support symmetric multi-core processors, and welcome to pay attention to the updates on GitHub.
The biggest change of this version should be the license change of source codes. Starting with this version (and later versions), the license agreement for RT-Thread will use Apache License v2.0. The submitted code and PR to RT-Thread GitHub also needs to be declared with Apache License v2.0 and sign CLA.
Apache license change has not fully covered all the codes under BSP. At present, the BSP related to ST STM32, NXP LPC/i.MXRT/Kinetis have been modified completely.
ARCH_CPU_STACK_GROWS_UPWARD
macro. Because there are fewer ARCH for stacks growing upward, this configuration item does not display directly in menuconfig. When a CPU ARCH needs stacks growing upward, the configuration of ARCH_CPU_STACK_GROWS_UPWARD
can be selected by BSP Kconfig file in default.Moderate Warnings
in project configuration in C/C++ (AC6) TAB; After using ARMCC v6, RT-Thread will add an additional CLANG_ARM
macro definition; (liruncong, nongxiaoming, bernard)RT_USING_IDLE_HOOK
configuration in Kconfig becomes a separate configuration item, not limited to RT_USING_HOOK
; (geniusgogo)select()
could not be used normally for UDP communication in AT component. Add the receiving data handling to complete the clearing of received event;bsp/imxrt
directory; A touch framework is added to bsp/imxrt
, and later will be moved into components/drivers
directory;scons --pyconfig
mode, which has a TK UI configurator; (weety)-std=c99
is not added into C-compiler flags), but please note: PThreads component failed in 2.5 and new version of newlib.This version is the first release of the v3.1.0 branch. The main changes include kernel object type checking, device_ops interface, moving application modules from the kernel into components. Moreover, SAL, AT component, realtek rtl8710bn WiFi soc, Raspberry Pi 2B BSP etc was added. RT-Thread/ENV tool has also released a final version of v1.0.0; In this version, the building script is enhance for VSCode for compiling and debug.
From RT-Thread v3.0.4 to v3.1.0, there were about 470 commits, about 85,000 new lines of code and 190,000 lines of code removed.
The following is the change log since RT-Thread v3.0.4:
libc/libdl
.rtdbg.h
file.RT_USED
is used to keep symbols and avoid to add more argument or section in link phrase.int finsh_set_prompt (const char * prompt);
routine for set a custom prompt for msh;libc/libdl
component;scons --dist
function to make distribution for a BSP.scons --target=vsc -s
to generate friendly configuration files for VSCode;