是的,RT-Thread 4.0.1发布了

霸气de小男生 提交于 2020-12-22 06:20:56

RT-Thread 4.0.1版本代码Release啦!

v4.0.1是RT-Thread  v4.0.0的完善,bugfix修正版本;增加netdev,可以更好的管理网络设备,修正了多核下的signal问题,POSIX  thread管理更合理等。同时在这个版本中也见到数家芯片厂商(例如国产芯片厂商东软载波,灵动微,联盛德,国外芯片厂商NXP,IP厂商Synopsys等)来为RT-Thread贡献代码,贡献BSP。

v4.0.1版本的发布也代表着v4.0.x系列日趋稳定化,后面也还会再加入更多的多核处理器支持(真实芯片而不是QEMU这样的模拟器版本),包括同构的,异构的等。

对于如何选择合适的RT-Thread版本进行开发有疑惑的小伙伴可以点击此处>>>


本次发布主要有以下调整

内核: v4.0.0的完善,bugfix修正;

组件:加入更多的AC6工具链支持;使用C实现方式重写sensor传感器框架;添加 netdev 组件;完善电源管理框架,把运行模式的调频从电源模式中独立出来

BSP:新增STM32 BSP 18个,使其总量达到了33个;增加多个BSP:东软载波ES32芯片、ARM Cortex-M23内核GD32E230K-start、IMXRT1021-EVK、LPC1114、灵动微MM32芯片、RISC-V RV32M1芯片VEGA、联盛德Wi-Fi SoC芯片w60x等开发板BSP;

工具:RT-Thread ENV工具也发布了v1.1.2正式版;scons中加入生成Makefile文件、梳理Eclipse工程文件功能支持

开发者致谢

在此特别感谢:

HubretXie、loogg、weety、xuzhuoyi、SASANO Takayoshi( Japan)、sundm75、bluebear233、ylz0923、Jinsheng、daizhiwang、sunlichao、whj4674672、sun_shine、Vincent-VG、Zhou Yanjie、 Eric Qiang等开发者 以及东软载波、灵动微、NXP、Synopsys、联盛德公司对本次版本更新做出的贡献!

由于你们的积极参与,让RT-Thread用户的产品开发变得更简单!期待更多的开发者参与进来,一起建设更好的物联网生态!

感谢来自社区的你们

以下是详细更新记录。

内核

  • 修正rt_tick_from_millisecond()编译警告问题;

  • 移除启动初始化时多次关闭中断的不必要代码;

  • 修正处理僵尸线程时,如果是系统线程,线程对象未脱离的问题;

  • 电源管理相关的处理从idle hook中独立出来,不再占用idle hook空间;

  • 加入信号量初始之过大的判断(信号量最大值支持到65535);

  • 修正kservice中的64位问题;

  • 在对象初始化时,加入对象重复初始化的检查、断言;

  • 在rt_enter_critical/rt_exit_critical接口中,加入当前环境系统调度器是否还未启动的判断;

  • 修正多核下的signal问题;修正signal中信号信息链表的问题;

  • 让slab内存管理器支持64位处理器;

  • 修正libc_errno.h中ENOTSUP错误定义的问题;

  • 对rtdbg.h进行精简,并和ulog结合在一起,更为易用;

  • 加入RT_USING_ARCH_DATA_TYPE配置,rt_int8_t/.../rt_uint32_t 等基础类型可以由BSP自行定义(建议放入rtconfig_project.h文件中,这样menuconfig生成rtconfig.h文件时会自动包含这个头文件);

  • 加入RT_Device_Class_Sensor类型设备;

  • 单核时,对rt_hw_spin_lock/rt_hw_spin_unlock进行重新定义,表现为开关单核的中断;

  • kservice中加入rt_strnlen()函数;

  • kservice中,rt_kprintf加入long long类型支持(HubertXie);

组件

  • 移除CMSIS,做为单独的CMSIS软件包而存在;

  • 移除logtrace组件;

  • 加入更多的AC6工具链支持,并在一些BSP中加入对AC6工具链的支持;

  • DFS文件系统组件中,对日志进行部分梳理;修正mkfs中索引可能超出范围的问题;

  • 完善电源管理框架,把运行模式的调频从电源模式中独立出来,整体更清晰 (整体改动比较大,需要查看PM对应编程文档);

  • 调整MMC/SD驱动框架的日志log;

  • 重写sensor传感器框架,使用C实现方式替代原有的C++实现,同时增加对应的一些传感器软件包;需要使用传感器包,传感器计划的,也请使用这个发布版本;

  • 增加串口驱动框架中的DMA发送操作;

  • 加入串口中,tc_flush操作时的数据一致性保护(loogg);

  • SFUD中加入rt_sfud_flash_find_by_dev_name API;

  • 当Pipe设备关闭时,如果是未命名的Pipe设备,且打开计数未0,则彻底删除这个Pipe设备;

  • workqueue中加入delayed的work实现,同时以可选方式增加系统的workqueue;

  • USB CDC中,修正当使用DMA发送时,数据丢失的问题(weety);

  • 更改finsh_getchar的返回类型为int类型;

  • 当使用GCC工具链时,修正newlib移植中errno的问题;

  • 更改pthreads的管理为POSIX thread数组,而不是把pthread_t直接映射到rt_thread_t上;对于pthreads的一些域定义,更符合newlib/glibc的方式;

  • 修正ulog中任务名称输出的问题;

  • utest中增加loop的参数,可以多次重复执行测试用例;增加utest测试任务的可选项;

  • ymodem中,增加握手阶段延时,防止数据接收不全;

  • 添加 netdev 组件,抽象网卡概念,用于网卡设备的管理和控制,提供网络相关操作命令如 ping/ifconfig/dns/netstat;

  • SAL 组件中适配 netdev 组件改动,即 Socket 创建以及数据传输时,添加对网卡状态和信息的判断。

  • SAL 组件添加 UDP 组播和 IPPROTO_IP 相关配置选项

  • SAL 组件中修复 ioctrol 函数无法控制 socketfd 问题。

  • 完善 AT Socket 中错误日志处理;

  • 修复 AT Client 初始化未完成,串口接收到数据卡死问题

BSP

  • 增加东软载波ES32芯片支持(由东软载波维护、支持);

  • 增加ARM Cortex-M23内核的GD32E230K-start BSP (xuzhuoyi);

  • 增加IMXRT1021-EVK BSP(由NXP维护、支持);

  • IMXRT1052驱动中增加ETH对于硬件checksum的选项处理;

  • 在嘉楠堪智K210 BSP中增加更多外设驱动,GPIO,LCD,SPI,camera等;

  • 整理LPC4088 BSP,添加main函数模式、menuconfig支持;

  • 增加LPC1114基础BSP(SASANO Takayoshi, Japan);

  • 龙芯1C BSP中,LCD驱动中加入双缓冲机制,电容触摸屏驱动,这样可以更好的运行柿饼UI(sundm75);

  • 龙芯1C BSP中增加看门狗驱动(sundm75);

  • 增加灵动微MM32芯片支持(由灵动微维护、支持);

  • 修正nRF52832中SysTick中断处理问题,并加入menuconfig配置文件;

  • 新塘M487 BSP中添加QSPI及SPI flash驱动(bluebear233);

  • QEMU-VExpress A9 BSP中,调整CPU相关移植到libcpu/arm/cortex-a文件夹中;

  • QEMU-VExpress A9 BSP中,加入和本机MAC地址关联的MAC地址,而不再使用统一的MAC地址;

  • 增加RISC-V RV32M1芯片,VEGA开发板的BSP;

  • 移除stm32f0x,stm32f7-disco,stm32f107,stm32f40x,stm32l072,stm32l475-iot-disco,stm32l476-nucleo等移植(当新stm32  bsp能够完全替换原有老的bsp时,会把原来老的stm32 bsp移除);

  • 完善stm32新bsp:

    • 添加CAN驱动 (ylz0923)

    • stm32f103-fire-arbitrary 中加入CAN驱动(ylz0923)

    • stm32f746-st-disco 中加入LCD,看门狗,SDCard,以太网,Flash等驱动(Jinsheng)

  • 同时新的stm32 bsp中增加更多的板卡支持:

    • stm32f103-atk-warshipv3 正点原子战舰V3(daizhiwang)

    • stm32f103-dofly-M3S 德飞莱 STM32F103 开发板

    • stm32f103-mini-system stm32f103最小系统板(daizhiwang)

    • stm32f401-st-nucleo

    • stm32f405-smdz-breadfruit 三木电子stm32405开发板(sunlichao)

    • stm32f469-st-disco

    • stm32h743-atk-apollo(whj4674672)

    • stm32l4r9-st-eval

    • stm32l053-st-nucleo(sun_shine)

    • stm32l475-st-discovery

    • stm32l476-st-nucleo(Vincent-VG)

    • stm32l496-ali-developer

  • 增加Synopsys DesignWare ARC EM Starter Kit的移植(由Synopsys维护、支持);

  • TMS320F28379D BSP中加入SCI驱动(xuzuoyi);

  • 增加联盛德w60x Wi-Fi SoC芯片BSP(由联盛德与睿赛德合作维护、支持);

  • 修正X1000 UART驱动UART2的IO配置问题(Zhou Yanjie);

  • libcpu中更改SConscript构建文件为分散方式,每个/类CPU自行使用自己的SConscript文件;

  • 整理libcpu/arm/cortex-a移植,把原来散落在BSP中的CPU移植尽可能的归类到这里;

  • TI DSP,TMS320F28379D移植中,把_rt_hw_context_switch_interrupt/_rt_hw_context_switch实现进行分离(xuzuoyi);

工具

  • scons中加入生成Makefile文件支持。scons --target=makefile -s 可生成对应的Makefile文件,然后在Linux/Windows下使用make来进行编译。

  • scons中加入梳理Eclipse工程文件功能。scons --target=eclipse -s,将对当前BSP目录下的.cproject.project文件进行整理,以适合在Eclipse下编译RT-Thread

  • 修正当要生成Keil工程文件时,当增加同名Group下多个lib文件时,会有多个同名Group的问题 (by Eric Qiang)

  • 修正GCC版本比较时的问题

  • ENV版本更新至 v1.1.2

    • 更新 scons 版本到 3.0.5

    • 修复 vc 警告问题

    • 修复 unicode 错误问题



近期活动


RT-Thread线上活动


1、RT-Thread企业人才服务计划:只要加入该人才计划,即可对接睿赛德科技的人才库,得到人才的推荐和人才评估指导,且每年可以接受一次RT-Thread官方提供的OS专业培训。


扫码进入官网


2、欢迎开发者们加入RT-Thread 人才库,我们将会为你个性化推荐来自中国移动、ST、许继、格力、博通集成、富翰微、东软载波、欧瑞博、海康、利尔达、灵动微、Cypress等顶级公司职位,为你创造更好的职业发展空间!



扫我即可申请加入人才库


#题外话# 喜欢RT-Thread不要忘了在GitHub上留下你的星哦,你的star对我们来说非常重要!链接地址:https://github.com/RT-Thread/rt-thread




你可以添加微信18917005679为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

点击“阅读原文”进入RT-Thread官网!

喜欢就点击“在看”

本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!