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这样的模拟器版本),包括同构的,异构的等。
本次发布主要有以下调整
内核: 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
RT-Thread
让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。
扫描二维码,关注我们