RT-Thread v5.0.2 发布

RT-Thread 代码仓库地址:
● https://github.com/RT-Thread/rt-thread

RT-Thread 5.0.2 版本发布日志详情:
● https://github.com/RT-Thread/rt-thread/releases/tag/v5.0.2

RT-Thread 迎来了全新的版本 v5.0.2,自 v5.0.0 版本发布以来,内核和组件都经历了一系列令人激动的变化和改进。

以下是一些亮点和关键变更:

内核改进:
● 新增了AMP支持。

● 新增了消息队列的消息优先级。

● 新增了rt_hw_interrupt_is_disabled API ,用于检测是否关闭了中断;

● 新增了获取对象名称、线程名称的API。

● 完善了errno与 POSIX 兼容,提升兼容性。

● 完善了原子操作Atomic支持检测。

● 完善了device_open接口,避免重复调用。

● 移除了互斥锁中的递归,增强了稳定性。

● 合并了 DBG 头文件,去除冗余代码。

● 修改了rt_thread的结构,以明确继承rt_object。

● 修复了用户模式下 MQ 接收阻塞问题。

● 修复了thread.c中变量rt_err未初始化以及timer.c中类型转换错误( IAR )。

组件更新:
● lwp:

○ 增加了对 elf 具有添加的可执行权限检查的支持。

○ 支持了 IEEE Std 1003.1-2017 的信号更多特性。

○ 支持文件描述符传输。

○ 修复了内存泄漏问题,提高了稳定性。

○ 添加了更多的系统调用支持。

● libc

○ 适配 rt_channel, 增加 dfs v2 上部分 rt_channel 功能的通用性,以及标准化 signalfd。

○ 将 libc.c 重命名为 posix/stdio.c。

○ 添加 timerfd 系统调用功能。

○ 实现了轻量级时区配置;优化资源消耗。

○ 支持rt-thread CPP包装子开关宏,外部第三方 libc 软件包

○ 支持了picolibc 的heap。

○ 将sys/ioctl重定向头文件到bits/ioctl,改进 posix 接口消息队列。

● utilities

○ 移除 zmodem。

○ 支持可扩展的内存管理。

● dfs:

○ 升级设备文件系统(dfs)到v2版本,同时考虑到兼容也保留v1版本供Kconfig配置选择。

○ 完善fd关闭策略,避免潜在的内存泄漏问题。

○ 修复了 tmpfs 自旋锁错误,nfs 64位架构错误。

● mm:

○ 新增 unmap page API。

○ 改进了 list_page 的输出。

○ 添加了取消映射页面的 API,更好地管理内存。

○ 修复了lwp _load_script。

○ 修改了在 fork 子进程时,lwp_struct_copy函数添加了复制working_directory函数。

● finsh

○ 新增了 MSH 自动补齐子选项功能。

○ 修复了 Finsh 偏移在范围检查之前被使用的问题。

● Network

○ 添加了更多的钩子函数。

○ 修复了 ping 超时计算错误,ipv6 兼容性问题。

○ 修复了在lwip_ip4_route_src中找到 next-hop 的问题。

○ 修改了使用接口来设置默认的网络设备。

○ 优化了at_vprintfln和与网络相关的 Kconfig 。

驱动设备:
● 为 device driver v2.0 做好准备,带来更多的功能和性能提升。

● 添加了设备树子节点搜索宏,提升了设备管理的效率。

● 修复了串口有时重复发送回车符的问题,提升串口通信的稳定性。

● 修复了多线程中的 CPU 定时器问题,dtb 编译警告。

● 优化了 SPI 传输速度并修复了一些问题。

● 修改了 ADC 通道数据类型,并添加了内置通道通用编号识别。

● 修改了将当前传感器框架转回 v1 版本,并使其独立于 v2 。

● 修复了 Sensor-V1 中返回类型不一致的错误,重新定义 Sensor-V2 作为传感器框架。

● 修改了将 tty 的驱动程序更改为设备,并修复了多个 scanfs 导致数据丢失问题。

⚙️ Libcpu:
● 在riscv、arm、aarch64、arc等架构下进行了多项修复和优化,提高了性能和稳定性。

● 实现了用于 rt_hw_cpu_shutdown 的默认弱函数。

● 为aarch64、arm cortex-a、risc-v添加了 gdb 展开程序的 cfi 信息。

Tools:
● 支持了更多 BSP 的驱动程序编译,确保更广泛的硬件兼容性。

● 添加了 CI 流程,提高了项目的可维护性。

● 新增了llvm-arm 16.0 支持,并添加了 llvm-arm 工作流。

● 为file_check.py添加了过滤不需要cppcheck的文件的功能。

● 为 scons 添加了–add-rtconfig参数,用于在构建时添加宏定义。

● 修复了在 Keil-MDK 中无法选择 c99 和 gnu 选项的问题。

● 修复了4.5.0以上scons版本Env[‘CPPDEFINES’] deque 的问题。

Action:
● 添加了 CI 来编译更多已更改 BSP 的驱动程序,添加了 pkgs-test;添加了手动触发和失败 BSP 检查;为手动触发添加了更多配置。

● 添加了 repo 检查;添加了 code_owner 的审查请求;添加了 format 和静态检查的 paths-ignore。

● 为所有 STM32 添加了手动触发,添加了 exp_STM32 SCons。

● 重构和优化了 ci 的执行流程,并添加了手动触发和 cppcheck 检查以进行 scons dist 。

BSP:
新增了一些新的bsp:

● ST: stm32u585-iot02a, stm32f405zgtx, stm32h563-st-nucleo, stm32h563-st-nucleo, stm32f407-rt-spark, stm32f334-st-nucleo, stm32l496-st-discovery

● SOPHGO: cv1800b

● TI: msp432e401y-LaunchPad

● APM32: apm32e103ze-evalboard, apm32e103ze-tinyboard, apm32f030r8-miniboard

● AT32: at32f423-start

● Essemi: es32vf2264

● Imxrt: imxrt1061-forlinx-OK1061-S

● Renesas: ra6m3-hmi-board

● Yichip: yc3122-pos

● Bouffalo_lab: bl808/d0

修复了一些问题:

● 修复了在 VS2019 编译时在 bsp/simulator 中存在的原子易失性问题。

● 修复了所有drv_gpio.c中rt_pin_ops的不匹配函数类型。

你可能感兴趣的:(rt-thread,rtos,单片机外围电路,单片机,物联网,嵌入式硬件)