sunsili 发表于 2022-2-8 22:51:03

RT-Thread v4.1.0 Beta 发布啦

本帖最后由 sunsili 于 2022-2-8 22:55 编辑

RT-Thread v4.1.0 Beta 发布啦!!




前言
虽然距离上次发布v4.0.5的更新才刚刚过去一个月的时间,但是经过我们紧锣密鼓的准备,我们终于在农历新年第一天为大家带来了全新的 v4.1.0 Beta 版本。这是一个体验尝鲜版并非4.1.0正式发布版,包含一些重大的更新,目前处于公测阶段,欢迎大家下载体验。预计收集完反馈之后稳定的版本 v4.1.0 将会在今年3月下旬正式发布。
下载地址:
[*]gitee: https://gitee.com/rtthread/rt-thread/repository/archive/v4.1.0-beta (国内用户推荐)
[*]github: https://github.com/RT-Thread/rt-thread/archive/refs/tags/v4.1.0-beta.zip
更新日志
[*]更完善的 POSIX 支持(PSE51 以及 其他常用的POSIX API 支持)
[*]更完善的跨多编译器平台的支持
[*]更加稳定精简的系统内核
[*]更完善的CPP11支持(gcc、armclang 双平台支持)
[*]更完善的64位架构支持
[*]更完善的驱动框架(PM、sensor、sdio、cputime、usb)
[*]更多的原厂BSP(瑞萨、新唐、先楫、沁恒、小华半导体、东软载波...)

详细日志
https://github.com/RT-Thread/rt-thread/releases/tag/v4.1.0-beta
迁移指南
在 RT-Thread 的 v4.1.0 版本及后续的版本,移除了 dfs_poll.h, dfs_posix.h, dfs_select.h三个之前常用的头文件。并且移除了 RT_USING_LIBC,RT_USING_POSIX 两个范围较大的宏。
修改原因
该项改动的原因,是因为我们推动了 POSIX 编程接口标准化工作,方便 POSIX(例如类UNIX) 程序向 RT-Thread 迁移而无需大规模改动头文件。因此我们移除了dfs_poll.h, dfs_posix.h, dfs_select.h 这些被大量使用但带有 RT-Thread 特点的头文件;移除了模糊且开启范围过大的宏开关 RT_USING_POSIX 和 RT_USING_LIBC;细化了裁剪宏开关,使得裁剪更加精细化,在丰富功能的同时,不会导致代码体积的膨胀。用户可根据自己实际需求,精细化配置POSIX相关的功能。
产生的问题

由于历史原因,在部分软件包中,仍然有对RT_USING_LIBC,RT_USING_POSIX, dfs_poll.h, dfs_posix.h, dfs_select.h 的使用,在 RT-Thread 的 v4.1.0 版本及后续的版本中可能会出现编译失败的问题。如果发现类似问题,请到社区论坛发帖报告,我们将及时处理
解决方案
[*]若代码中仍有 RT_USING_LIBC 与 RT_USING_POSIX 来判断添加某些头文件,则需要将这两个宏删除并细化:

RT_USING_POSIX_FS
RT_USING_POSIX_DEVIO   --->Enable devices as file descriptors
RT_USING_POSIX_STDIO   --->Enable standard I/O devices, e.g. STDOUT_FILENO
RT_USING_POSIX_POLL      --->Enable I/O Multiplexing poll() <poll.h>
RT_USING_POSIX_SELECT    --->Enable I/O Multiplexing select() <sys/select.h>
RT_USING_POSIX_TERMIOS   --->Enable Terminal I/O <termios.h>
RT_USING_POSIX_AIO       --->Enable Asynchronous I/O
RT_USING_POSIX_MMAN      --->Enable Memory-Mapped I/O <sys/mman.h>
RT_USING_POSIX_DELAY
RT_USING_POSIX_CLOCK
RT_USING_POSIX_TIMER
RT_USING_PTHREADS

[*]若代码中有 #include <dfs_posix.h>,按照代码中,对接口的需要,视情况分别引用 dfs_file.h,unistd.h,stdio.h,sys/stat.h, sys/statfs.h。
[*]若代码中有 #include <dfs_select.h> 修改为引用 sys/select.h
[*]若代码中有 #include <dfs_poll.h> 修改为引用 poll.h
需要特殊注意的头文件
为保证跨不同编译器、不同工具链的兼容性,建议用户应用层代码:
[*]使用 <sys/time.h> 代替 <time.h>
[*]使用 <sys/errno.h> 代替 <errno.h>
[*]使用 <sys/signal.h> 代替 <signal.h>
欢迎小伙伴至论坛评论区留言!欢迎大家多多贡献代码(PR)如何给RT-Thread贡献代码这里有视频教程https://www.bilibili.com/video/BV1gr4y1w7yX


页: [1]
查看完整版本: RT-Thread v4.1.0 Beta 发布啦