RT-Thread5.1.0版本正式发布啦~!我们一起来看看它都有什么新功能、新特性吧!
➢ RT-Thread 代码仓库地址:
https://github.com/RT-Thread/rt-thread
➢ RT-Thread 5.1.0发布版本:
https://github.com/RT-Thread/rt-thread/releases/tag/v5.1.0
Kernel
kservice:使用 C89 格式以避免警告;修复起始地址错位的问题;去除 malloc 大锁,修复 memheap 锁的错误使用;新增 MT-safe console 支持
rtdef:新增 rt_always_inline 操作函数
cpu:优化CPU调度器
thread:删除线程引用计数
rthw:新增 rt_hw_interrupt_uninstall 声明
为 malloc 服务新增钩子函数;支持钩子列表(在单个钩子节点中新增多个钩子)
优化系统调度器;完善 rt_vsnprintf
自旋锁内禁止使用free、malloc等嵌套阻塞IPC接口
重命名RT_DEBUGING_INIT为RT_DEBUGING_AUTO_INIT
定义标准spinlock需要关闭调度器,对外的spinlock全部使用关闭、打开调度器方式
新增RT_USING_NANO宏,支持BSP一键切换到Nano版本
新增删除线程时释放互斥锁的功能;新增对 rt_sem 进行控制配置以设置信号量的最大值的支持
新增 RV64 RTOS 内核 backtrace 支持;新增 ARM64、RV64 实现;新增创建线程函数时间片参数检查
新增 scons 编译后显示工程的占用空间信息(#8697);新增调度程序(rt_sched)的抽象层,对SMP性能进行优化(#8537)
修复SMP模式软件定时器重复触发问题
修复rt_slist_for_each_entry宏不能正常遍历slist链表中元素的问题
修复线程无法回收的错误;修复在 SMP 模式下 rt_timer 里 timer check 与 timer start 重复获取自旋锁而死锁的问题
修复软件定时器的休眠问题;修复 idle_hook_list 存在没有加锁的情况
修复线程退出系统函数可能存在的问题;修复优先级相同时候只能调度两个线程的问题
修复访问 percpu 对象的数据竞争问题;修复 rt_exit_critical_safe 函数错误返回问题
修复SIGNAL节点分配失败返回错误问题
Component
Drivers
core:适配并优化新的设备驱动模型;修复部分设备驱动注册之后无法进入 probe 函数问题
usb:rt_size_t 遵循 UNIX 风格,修改为 rt_ssize_t
virtio:qemu-virt64-aarch64 / qemu-virt64-riscv 支持 SDL2
spi:修复 qspi 配置未生效问题
sdio:新增 rt_mmcsd_fops_flush(block_dev)函数
rtc:修复 rt_soft_rtc_sync 函数因使用已弃用的声明方式所引发的警告问题
clk:新增 clk 驱动框架,为全面使用设备树做准备
pwm:新增控制台二级命令补全功能
can:优化 can 关闭顺序(#8780)
serial:
增加使用 dm 时的 tty 名字分配机制,支持更多波特率;
新增 tty 相关钩子函数;新增 serial 框架设备树支持;
修复 serial_v2 内存泄漏问题;
修复虚拟串口数据只能成功发送一次问题
pic:新增 pic-gic 支持
pinctrl:新增 pinctrl/pin-irqchip 支持
hwtimer:完善 Cortex-a、ARMv8 驱动
DFS
新增 exfat 配置;
dfs_v1:修复 FATFS 文件系统使用 cat 命令导致断言 bug
dfs_v2:
更新 Smart 内核默认选中 dfsv2;更新 elmfat 版本由 r14b 为 r15
支持O_DIRECT和O_SYNC标志
修复dfs_dentry_lookup解析文件路径问题
修复dfs_tmpfs_write中的错误(#8672)
修复dfsv2romfsdfs_romfs_getdents缓冲区溢出问题
修复 dfs_v2 dfs_file 中潜在的堆缓冲区溢出问题;修复 elm 的权限问题
修复 page cache 问题;修复 mqueue 未挂载问题
新增 dfs pwrite pread (#8672);新增 ptyfs支持(#8672)
新增符号链接、普通文件管理等特点(#8672);新增 sys_utimensat 函数
新增 cromfs 的符号链接(#8132);新增 cromfs 的 mmap 支持(#8218)
修复dfs_v2下传输fd时,dentry或者vnode不存在时出现的问题
Libc
修复MDK编译环境下difftime函数多重定义的问题
修复共享计数器ID列表中的数据竞争问题
修复ctime.c文件与旧的驱动程序的兼容性问题
修复因工具链更新导致的eventfd中的宏重定义的问题
修复posix线程本地存储寻找posix线程句柄时的逻辑错误
修复无法获取IAR版本时会新增遗留宏的问题
改进 gcc picolibc;进一步优化 epoll 和 timerfd
新增RT_USING_INTERNAL_LIBC_ONLY宏
新增GCC通用原子操作功能(#8648)
LWP
新增sys_setitimer函数
替换lwp_new函数为lwp_create
替换futex中的irq禁用/启用代码
lwp_syscall.c中替换off_t为size_t
修复 lwp_free 定时器回收调用问题;修复设置 CPU 亲和性问题
修复 rt_channel 内部的锁问题;修复 pid 回收问题
修复init进程信号保护标志设置(#8797)
使能开启smart/lwp选项后默认自动选择LDSO和pcache选项
更新AF_UNIXbind与connect入口,更新AF_UNIX所使用数据结构sockaddr_un为标准结构
MM
新增预留内存支持;新增 rt_aspace_mremap_range 函数实现
修复 aspace_traversal 中的释放后使用的问题;修复 page_install 函数在 shadow region 上的问题
Net
修复wifi扫描命令的重复问题(#8666)
at:优化 at 格式化输出,避免多个 at client 和 server 输出冲突;优化 AT 组件,并修复可能存在的内存泄露问题
lwip:修复 SMP 下可能发生死锁的问题
sal:新增 ifconfig updown 功能;增加消息数量限制;更新 SAL 套接字抽象层,完善 socketpair、sendmsg、recvmsg 功能
Finsh
优化 list_thread 显示;优化 MSH 宏定义
新增 finsh 线程栈大小检查;新增 finsh 线程入口钩子函数
FAL
为fal新增blocks机制,支持新增特殊的block定义
MProtect
新增MPU抽象层设计,支持ARMv7-M,ARMv8-M架构
其他
同步内核、文件系统等差异;移除 vmm
修复-Wmissing-prototypes警告
Libcpu
AARCH64:修复内核入口符号;修复 ulog 环境下不能正常看到 trace 信息问题;使用设备树对 CPU 和内存进行初始化;提升 IRQ 禁用/启用的性能
ARM:新增 Cortex-M85、Cortex-R52 架构的支持;解决 Cortex-A 开启SMP工作异常问题(#8517)
RISC-V:修复 d1s smart build 失败的问题
修复mmap支持
支持 RT-Thread 内核中的整体 backtrace 框架;新增架构级 backtrace 服务的弱实现;新增 RV64 架构支持
规范Libcpugroup名为libcpu
Tools
支持工具链LLVMEmbeddedToolchainForArm-17.0.1
新增 scons --target=vsc/--pack=xxx 命令;新增 prebuilding 操作
修复脚本中MPU的rtconfig.h文件识别问题
rt_studio:修复 rt-studio 导入 bsp 工程缺失{cross_toolchain_flags}字段问题
env:修复 env 内置 python2 subprocess 问题
action
修复DoxygenCI问题
BSP新增CI看护
新增bspattachcheckCI
utest
新增内存系统测试用例;补充串口设备框架 serial_v2 测试用例;新增 mm 测试用例;新增调度器测试用例
BSP
完善若干 bsp 驱动文件;修复一些 bsp 存在的问题
RT-Smart 支持:DFZU2EG MPSoC、cv181x-riscv
STM32:STM32 G0、G4、L0、L4 系列支持一键开启切换 RT-Thread Nano 版本;STM32 Nucleo 系列增加板卡级识别宏;STM32 系列新增 Nano 版本 attach config 相关的 CI
RTduino支持:raspberry-pico 、stm32h503-st-nucleo、stm32h563-st-nucleo、stm32f412-nucleo、stm32f407-rt-spark
新增一些新的 BSP:
Adafruit:Metro M4
Seeed Studio:Wio-Terminal
ST:stm32L431_tencentos、stm32h7s7-disco,stm32f407-lckfb-skystar、stm32h503-st-nucleo
Renesas:ek-ra8m1、ek-ra8d1、ra8d1-vision-board
AT32:at32f402-start、at32f405-start
HT32:ht32f52352、ht32f12366
AVR32:at32uc3a0256、at32uc3b0256
CVITEK:c906_little、cv18xx_risc-v
WCH:yd-ch32v307vct6(risc-v)
HC32:ev_hc32f4a0_lqfp176、ev_hc32f460_lqfp100_v2、ev_hc32f448_lqfp80
GD32:gd32407v-lckfb
NXP:mcxn:frdm-mcxn947、mcxa:frdm-mcxa153
Userapps
修复用户态在获取当前时间之后,调用到内核态再次获取当前时间,两边差值为负数,定时器不会运行的问题
在使用RT-Smart的情况下默认开启epoll/eventfd/signalfd/timerfd/select
移除prebuilt版本
修复setitimer缺陷,完善FUTEX支持
新增对RT-Smart终端子系统的支持(#8672)
其他更新:ssh,sftp,weston,vim…
贡
-
RT-Thread
+关注
关注
31文章
1285浏览量
40071 -
调度器
+关注
关注
0文章
98浏览量
5245
发布评论请先 登录
相关推荐
评论