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:

Kernel

  • The main thread priority can be configured by Kconfig;
  • Add the checking of kernel object type, which can effectively avoid the problem of continuing to use kernel objects after they are destroyed.
  • Add the idle hook list to mount multiple idle hook, and can be configured by Kconfig.
  • Add the device_ops operation set to reduce the footprint of device object.
  • No special memory handle for application module when using SLAB memory management algorithm.
  • Move application module from the kernel to libc/libdl.
  • Enhance the debug information output of rtdbg.h file.
  • In Keil/IAR tool chain, the RT_USED is used to keep symbols and avoid to add more argument or section in link phrase.

Components

  • Remove all of external codes, which will be moved to packages in the future.
  • Add initialization flag for shell, file system, network protocol stack etc to prevent repeated initialization;
  • Enable the long file name feature of ELM FatFs in default.
  • Change DFS FD to dynamic allocation mode. The maximum number of allocation is still DFS_FD_MAX.
  • Add dfs_fdtable_get() function to get different fdtable;
  • Add more DFS error messages, and provide easy to understand log when abnormal.
  • Fix the problem of formatting FatFs file system when multiple FatFs file systems are mounted.
  • Remove the folder enter feature in MSH when input a folder name;
  • Add int finsh_set_prompt (const char * prompt); routine for set a custom prompt for msh;
  • Add the Kconfig of VBUS.
  • Move the application module from kernel to libc/libdl component;
  • Rewrite most of the management code for application module: replace the original object container with the object list; split the symbol resolution code into different processor architecture.
  • Update the application module chapter in the programming guide, and change it into dynamic module chapter.
  • Overwrite the exit() function of newlib to take over the processing of exit for dlmodule.
  • Add SAL (Socket Abstraction Layer) components for adapting different protocol stacks and network implementations, and update the relevant sections of the programming guide;
  • Add AT components, including AT client, AT server and AT Socket function;
  • Remove the poll/select API of DFS_NET and move them to SAL component.
  • Remove the strong dependence of lwIP component of DFS_NET and replace it with Kconfig configuration of lwIP component support in SAL.
  • Add the DHCP server function with lwIP raw API;
  • Fix the wait queue none-initialization issue in socket allocation of lwIP.
  • When a thread is about to block on a wait queue, fix the wake up issue for `rt_wqueue_wakeup' is executed to wake up that thread;
  • Add the PWM driver framework;
  • Fix the sdio_irq_wakeup release issue in the MMC/SD framework.
  • Fix the problem of DMA handling in the serial driver framework.
  • Update SFUD to v1.0.6 version;

BSP

  • Fix the SP issue when hard fault occurs for ARM Cortex-M arch;
  • Add C-Sky CK802 architecture porting;
  • Add Realtek amebaz WiFi SOC (rtl8710bn) BSP;
  • Update imxrt1052-evk firmware SDK to support B model chip.
  • Fix the copying packets issue in the Godson 1C BSP when sending the NIC driver message.
  • The new Tang m05x/m451 BSP are changed into the main() entry mode, and supports GCC compilation;
  • Fix the inconsistency issue between touch range and LCD resolution in qemu-vexpress-a9.
  • Add qemu-vexpress-gemini BSP for dual core A9 (RT-Thread + Linux) arch;
  • Add the basic porting for Raspberry Pi 2B ;
  • Add CAN and PWM drivers in stm32f4xx-HAL BSP;
  • Optimize the GPIO driver in stm32f4xx-HAL BSP;
  • Add UART3 driver in stm32f4xx-HAL BSP;
  • Fix the I2C1 driver clock in stm32f10x BSP and WDG control interface.
  • Add rt_hw_us_delay interface in stm32f10x-HAL BSP;
  • Optimize the GPIO driver in stm32f10x-HAL BSP;
  • Add GPIO driver and RTC driver in stm32f107 BSP;

Tool

  • ENV update to v1.0.0 final version.
  • ENV added the China mirror for software package, which can speed up the software package download, update etc.
  • Fix the ENV known bugs and enhance the interaction with users.
  • Add building script to detect the version of GCC & newlib;
  • Add building script to detect the version of armcc;
  • Add scons --dist function to make distribution for a BSP.
  • Add `scons - dist - strip' function to make a minimal files of distribution for a BSP.
  • Add `ASFLAGS/LOCAL_ASFLAGS' parameters for defined a group and pass parameters to assembler;
  • Fix some errors in building script under the Linux environment.
  • Add the C-Sky CDK IDE project generation.
  • Add scons --target=vsc -s to generate friendly configuration files for VSCode;

项目简介

RT-Thread is an open source IoT real-time operating system (RTOS).

🚀 Github 镜像仓库 🚀

源项目地址

https://github.com/RT-Thread/rt-thread

发行版本 33

RT-Thread v5.0.1 released

全部发行版

贡献者 383

全部贡献者

开发语言

  • C 97.4 %
  • Assembly 1.8 %
  • HTML 0.4 %
  • Python 0.3 %
  • C++ 0.1 %