RT-Thread 4.0版本代码Release啦!
因为支持SMP(对称多核处理器)的缘故,RT-Thread v4.0的发布有些延期。
再包括增加对64位处理器的支持,内核的改动也比较大,应该说是自RT-Thread创建以来内核调整最大的一次。但这份改动可以让对称多核处理器运行RT-Thread时,只需要运行一份实例。当有核空闲时,则会把就绪态的任务分配到这些空闲的核上执行起来,真正做到多任务并发执行,提升整体的计算性能。
本次发布主要有以下调整:
内核:加入SMP支持和64位处理器支持;
组件:增加单元测试框架utest、轻型进程实现`components\lwp,并优化部分组件使用体验;
BSP:更新以STM32为基础的新BSP框架,使得BSP达到了对18个STM32开发板的支持;增加多个BSP:LPC54114-lite、Nuvoton-M487、嘉楠K210 、RV32M1 VEGA开发板、华芯微特SWM320、TI TMS320F28379D BSP、Synopsys DesignWare ARC EM Starter Kit等;
工具:RT-Thread ENV工具也发布了v1.1.0正式版;
开发者致谢
在此特别感谢:
HubretXie、gbcwbz、fullhan、thomasonegd、NoeXu、liruncong、Bluebear233、zhouchuanfu、nongxiaoming、WuHan、whj、XXXXzzzz000、SASANOTakayoshi、sundm75、sun_shine、andeyqi、jinsheng、e31207077、HaoZhu、dingo1688、FindYGL、whj4674672、xuzhuoyi、ZhouYanJie等开发者 以及
Synopsys、华芯微特公司对本次版本更新做出的贡献!
由于你们的积极参与,让RT-Thread用户的产品开发变得更简单!期待更多的开发者参与进来,一起建设更好的物联网生态!
以下是详细更新记录
内核
加入SMP支持;
加入对64位处理器支持;
剥离任务RUNNING状态,即任务在CPU上运行时,状态变更为RUNNING状态,而不是延续READY状态。
组件
fatfs在格式化文件系统时,加入FM_SFD选项以按照SFD格式创建卷 (HubretXie)
struct dfs_fd
中显式加入所属的file system句柄;修正当打开POSIX API时,获取stdio fd出错的问题;(gbcwbz)
修正DFS中,如存在多个mount文件系统,当文件系统内判断相同路径,判断出错的问题;
更改dfs中getcwd()函数以dfs_lock/unlock方式来保持互斥(取代原来以关闭调度方式保持互斥);
重写finsh中listthread/list*等API,以避免在多核场景下出现多核竞争的问题;
修正AIO中aio_read_work返回的aio_result问题;(fullhan)
修正mmap调用中,当传入addr是空的问题;(fullhan)
修正armlibc中_sys_istty函数对STDIN/STDOUT/STDERR的处理;(gbcwbz)
修正newlib中_write_r函数实现对stdout的处理;
增加轻型进程实现
components\lwp
,并添加对应的一些系统调用;修正at_socket中,当socket是空指针的bug;(thomasonegd)
修正at_socket中,at_recvfrom()函数实现中select event的问题;
SAL中分为sal_socket_ops/sal_proto_ops,sal_proto_ops中加入gethostbyname/getaddrinfo等实现;
SAL中加入socket层面对TLS的支持,即上层应用也可以完全不考虑TLS而得到加密传输的支持;
修正ulog_strcpy中不应该超过ULOG_LINE_BUF_SIZE长度的问题;
ulog中加入十六进制日志输出的宏定义;(HubretXie)
加入utest组件。utest是RT-Thread上一套单元测试框架,配合外部脚本可以进行硬件终端上的自动化测试;
修正drivers/audio中的一些编译警告及枚举不匹配的问题;
修正drivers/can中当要关闭can设备时can_rx/can_tx未清零的问题;(Noe Xu)
修复drivers/hwtimer,向下计数模式时,时间获取错误的问题;
加入drivers/adc驱动框架;
修正tick补偿时,过早打开中断的问题;(geniusgogo)
drivers/serial.c中增加RT_SERIAL_USING_DMA选项;
drivers/spi框架中增加QSPI的支持;
SFUD中增加QSPI的支持(以stm32的QSPI外设为蓝本);SFUD升级到1.1.0版本;
优化spi_msd中的spi take/release调用代码;
修正rt_rbb_blk_alloc中对blk_size的判断;
修正usb stack中,_get_descriptor函数对FS USB的判断;
修正drivers/wlan中,当password是空时启动AP的问题;
修正drivers/wlan中对一些错误异常返回值的处理;
移除open时,dfs底层对文件重复打开的检查;
BSP
rt_hw_interrupt_install接口中name参数调整为
const char *
类型;(liruncong)提供统一的RISC-V 32/64移植层;
修正BSP中Kconfig定义配置项前
$
警告的问题;增加LPC54114-lite开发板BSP,包括GPIO,I2C,SDCard,SPI,SPI Flash,UART等驱动;
增加Nuvoton-M487 BSP,包括UART,EMAC驱动;(Bluebear233)
增加嘉楠K210 BSP,RISC-V64 双核的SMP BSP,包括UART等驱动;
增加RV32M1 VEGA开发板的BSP,包括GPIO,I2C,SDCard,UART等驱动;
修复STM32F4XX-HAL BSP中CAN驱动的问题;(Noe Xu)
修复STM32F10x BSP中UART DMA设置的问题;(zhouchuanfu)
修复STM32F40x BSP中UART DMA设置的问题;(zhouchuanfu)
修正STM32H743-Nucleo BSP中HEAP_BEGIN定义的问题;(nongxiaoming)
修正stm32f10x-HAL中GPIO配置的问题;(Wu Han)
更改stm32f107 BSP为main函数入口的方式;(whj)
修复stm32f10x BSP中对串口中断处理的问题;
stm32f10x-HAL BSP中加入PWM、RTC、看门狗驱动;(XXXXzzzz000)
修正stm32f4xx-HAL BSP中看门狗驱动的问题;(XXXXzzzz000)
stm32f40x/stm32f107 BSP中增加对lwIP 2.x版本的支持;
stm32f4xx-HAL BSP中增加对cmBacktrace软件包的支持;(Noe Xu)
stm32f429-apollo BSP中增加对Audio及麦克风的支持;
修正x86 BSP中对dlmodule的支持;(SASANO Takayoshi)
在qemu-vexpress-a9/stm32f429-atk-apollo BSP的链接脚本中增加utest的段,用于自动化测试;
龙芯1C相关BSP,许可协议变更为Apache License v2;(sundm75)
增加以STM32为基础的新BSP框架,在STM32 F0/F1/F4/L4/F7/H7等全系列芯片上重用芯片内外设驱动重用,同步带来整体的STM32开发板BSP大更新,BSP达到了对18个STM32开发板的支持:
STM32F091-Nucleo 开发板 BSP
STM32F411-Nucleo 开发板 BSP
STM32L432-Nucleo 开发板 BSP;(sun_shine)
STM32F407-Discovery 开发板 BSP
STM32F446-Nucleo 开发板 BSP;(andeyqi)
STM32F746-Discovery 开发板 BSP;(jinsheng)
STM32F767-Nucleo 开发板 BSP;(e31207077)
STM32G071-Nucleo 开发板 BSP;
正点原子 STM32F103 NANO 开发板 BSP
正点原子 STM32F407 探索者开发板 BSP
正点原子 STM32F429 阿波罗开发板 BSP
正点原子 STM32F767 阿波罗开发板 BSP
正点原子 STM32L475 潘多拉 IoT 开发板 BSP
野火 STM32F103 霸道开发板 BSP
野火 STM32F429 挑战者开发板 BSP
野火 STM32F767 挑战者开发板 BSP;(Hao Zhu)
安富莱 STM32F429-v6 开发板 BSP
硬石 STM32F103 iBox 开发板 BSP;(dingo1688)
德飞莱 STM32F103 开发板;(FindYGL)
STM32F107 μC/Eval 开发板 BSP;(whj4674672)
在这个过程中也得到社区开发者的大力支持,特别是HubretXie,Hao Zhu,e190等对stm32公共驱动的完善;
增加华芯微特 SWM320 BSP,包括GPIO,HW Timer,I2C,看门狗,PWM,RTC,SPI,UART等驱动;(由华芯微特提供BSP并进行维护)
增加TI TMS320F28379D BSP,RT-Thread上支持的第一个DSP芯片;(xuzhuoyi)
修正X1000中USB驱动问题;(ZhouYanJie)
增加Synopsys DesignWare ARC EM Starter Kit BSP,bsp/synopsys/emsk_em9d,EM9D核,包括GPIO、UART等驱动;(由Synopsys提供BSP并进行维护)
工具
当工具链不存在时,给出更好的提示信息;
增加初步的Segger Embedded Studio工程文件生成命令,注意:SES中携带的工具链比较特殊,libc并不是newlib
修正IAR下用scons命令行编译的库链接问题;
修正scons在有些工程转换中,未加入BSP路径的问题;
增加
scons --pyconfig-silent
命令,用于添加部分配置,从新生成.config及rtconfig.h;更新
scons --dist
命令,以更好的适配新的BSP框架;修正mkromfs.py脚本,当romfs中包含空文件,空文件夹时不生成对应代码;
修正utils.py中工具链版本字符串比较的问题;
ENV 更新到v1.1.0版本(下载更新:https://pan.baidu.com/s/1cg28rk)
增加开启提示信息,提高用户体验
优化关键的提示信息
添加 system32 路径环境变量,避免用户出现 cmd 命令找不到的情况
添加 PYTHONHOME 环境变量,避免出现 PYTHON 环境变量的问题
one more thing
正式发布STM32Cube MX RT-Thread Nano 软件包: https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc ,使用指南将会推出!
你可以添加微信13924608367为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群
RT-Thread
让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。
长按二维码,关注我们
点击“阅读原文”,进入RT-Thread 文档中心!
本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4428324/blog/4622715