RT-Thread 4.0版本代碼Release啦! 因為支持SMP(對稱多核處理器)的緣故,RT-Thread v4.0的發(fā)布有些延期。 再包括增加對64位處理器的支持,內(nèi)核的改動也比較大,應該說是自RT-Thread創(chuàng)建以來內(nèi)核調(diào)整最大的一次。但這份改動可以讓對稱多核處理器運行RT-Thread時,只需要運行一份實例。當有核空閑時,則會把就緒態(tài)的任務分配到這些空閑的核上執(zhí)行起來,真正做到多任務并發(fā)執(zhí)行,提升整體的計算性能。 本次發(fā)布主要有以下調(diào)整: 內(nèi)核:加入SMP支持和64位處理器支持; 組件:增加單元測試框架utest、輕型進程實現(xiàn)`components\lwp,并優(yōu)化部分組件使用體驗; BSP:更新以STM32為基礎的新BSP框架,使得BSP達到了對18個STM32開發(fā)板的支持;增加多個BSP:LPC54114-lite、Nuvoton-M487、嘉楠K210 、RV32M1 VEGA開發(fā)板、華芯微特SWM320、TI TMS320F28379D BSP、Synopsys DesignWare ARC EM Starter Kit等; 工具:RT-Thread ENV工具也發(fā)布了v1.1.0正式版; 開發(fā)者致謝在此特別感謝: 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等開發(fā)者 以及
Synopsys、華芯微特公司對本次版本更新做出的貢獻! 
由于你們的積極參與,讓RT-Thread用戶的產(chǎn)品開發(fā)變得更簡單!期待更多的開發(fā)者參與進來,一起建設更好的物聯(lián)網(wǎng)生態(tài)! 以下是詳細更新記錄 內(nèi)核組件fatfs在格式化文件系統(tǒng)時,加入FM_SFD選項以按照SFD格式創(chuàng)建卷 (HubretXie) struct dfs_fd 中顯式加入所屬的file system句柄;
修正當打開POSIX API時,獲取stdio fd出錯的問題;(gbcwbz) 修正DFS中,如存在多個mount文件系統(tǒng),當文件系統(tǒng)內(nèi)判斷相同路徑,判斷出錯的問題; 更改dfs中g(shù)etcwd()函數(shù)以dfs_lock/unlock方式來保持互斥(取代原來以關(guān)閉調(diào)度方式保持互斥); 重寫finsh中l(wèi)istthread/list*等API,以避免在多核場景下出現(xiàn)多核競爭的問題; 修正AIO中aio_read_work返回的aio_result問題;(fullhan) 修正mmap調(diào)用中,當傳入addr是空的問題;(fullhan) 修正armlibc中_sys_istty函數(shù)對STDIN/STDOUT/STDERR的處理;(gbcwbz) 修正newlib中_write_r函數(shù)實現(xiàn)對stdout的處理; 增加輕型進程實現(xiàn)components\lwp ,并添加對應的一些系統(tǒng)調(diào)用; 修正at_socket中,當socket是空指針的bug;(thomasonegd) 修正at_socket中,at_recvfrom()函數(shù)實現(xiàn)中select event的問題; SAL中分為sal_socket_ops/sal_proto_ops,sal_proto_ops中加入gethostbyname/getaddrinfo等實現(xiàn); SAL中加入socket層面對TLS的支持,即上層應用也可以完全不考慮TLS而得到加密傳輸?shù)闹С郑?/span> 修正ulog_strcpy中不應該超過ULOG_LINE_BUF_SIZE長度的問題; ulog中加入十六進制日志輸出的宏定義;(HubretXie) 加入utest組件。utest是RT-Thread上一套單元測試框架,配合外部腳本可以進行硬件終端上的自動化測試; 修正drivers/audio中的一些編譯警告及枚舉不匹配的問題; 修正drivers/can中當要關(guān)閉can設備時can_rx/can_tx未清零的問題;(Noe Xu) 修復drivers/hwtimer,向下計數(shù)模式時,時間獲取錯誤的問題; 加入drivers/adc驅(qū)動框架; 修正tick補償時,過早打開中斷的問題;(geniusgogo) drivers/serial.c中增加RT_SERIAL_USING_DMA選項; drivers/spi框架中增加QSPI的支持; SFUD中增加QSPI的支持(以stm32的QSPI外設為藍本);SFUD升級到1.1.0版本; 優(yōu)化spi_msd中的spi take/release調(diào)用代碼; 修正rt_rbb_blk_alloc中對blk_size的判斷; 修正usb stack中,_get_descriptor函數(shù)對FS USB的判斷; 修正drivers/wlan中,當password是空時啟動AP的問題; 修正drivers/wlan中對一些錯誤異常返回值的處理; 移除open時,dfs底層對文件重復打開的檢查;
BSPrt_hw_interrupt_install接口中name參數(shù)調(diào)整為const char * 類型;(liruncong) 提供統(tǒng)一的RISC-V 32/64移植層; 修正BSP中Kconfig定義配置項前$ 警告的問題; 增加LPC54114-lite開發(fā)板BSP,包括GPIO,I2C,SDCard,SPI,SPI Flash,UART等驅(qū)動; 增加Nuvoton-M487 BSP,包括UART,EMAC驅(qū)動;(Bluebear233) 增加嘉楠K210 BSP,RISC-V64 雙核的SMP BSP,包括UART等驅(qū)動; 增加RV32M1 VEGA開發(fā)板的BSP,包括GPIO,I2C,SDCard,UART等驅(qū)動; 修復STM32F4XX-HAL BSP中CAN驅(qū)動的問題;(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函數(shù)入口的方式;(whj) 修復stm32f10x BSP中對串口中斷處理的問題; stm32f10x-HAL BSP中加入PWM、RTC、看門狗驅(qū)動;(XXXXzzzz000) 修正stm32f4xx-HAL BSP中看門狗驅(qū)動的問題;(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相關(guān)BSP,許可協(xié)議變更為Apache License v2;(sundm75) 增加以STM32為基礎的新BSP框架,在STM32 F0/F1/F4/L4/F7/H7等全系列芯片上重用芯片內(nèi)外設驅(qū)動重用,同步帶來整體的STM32開發(fā)板BSP大更新,BSP達到了對18個STM32開發(fā)板的支持: STM32F091-Nucleo 開發(fā)板 BSP STM32F411-Nucleo 開發(fā)板 BSP STM32L432-Nucleo 開發(fā)板 BSP;(sun_shine) STM32F407-Discovery 開發(fā)板 BSP STM32F446-Nucleo 開發(fā)板 BSP;(andeyqi) STM32F746-Discovery 開發(fā)板 BSP;(jinsheng) STM32F767-Nucleo 開發(fā)板 BSP;(e31207077) STM32G071-Nucleo 開發(fā)板 BSP; 正點原子 STM32F103 NANO 開發(fā)板 BSP 正點原子 STM32F407 探索者開發(fā)板 BSP 正點原子 STM32F429 阿波羅開發(fā)板 BSP 正點原子 STM32F767 阿波羅開發(fā)板 BSP 正點原子 STM32L475 潘多拉 IoT 開發(fā)板 BSP 野火 STM32F103 霸道開發(fā)板 BSP 野火 STM32F429 挑戰(zhàn)者開發(fā)板 BSP 野火 STM32F767 挑戰(zhàn)者開發(fā)板 BSP;(Hao Zhu) 安富萊 STM32F429-v6 開發(fā)板 BSP 硬石 STM32F103 iBox 開發(fā)板 BSP;(dingo1688) 德飛萊 STM32F103 開發(fā)板;(FindYGL) STM32F107 μC/Eval 開發(fā)板 BSP;(whj4674672) 在這個過程中也得到社區(qū)開發(fā)者的大力支持,特別是HubretXie,Hao Zhu,e190等對stm32公共驅(qū)動的完善;
增加華芯微特 SWM320 BSP,包括GPIO,HW Timer,I2C,看門狗,PWM,RTC,SPI,UART等驅(qū)動;(由華芯微特提供BSP并進行維護) 增加TI TMS320F28379D BSP,RT-Thread上支持的第一個DSP芯片;(xuzhuoyi) 修正X1000中USB驅(qū)動問題;(ZhouYanJie) 增加Synopsys DesignWare ARC EM Starter Kit BSP,bsp/synopsys/emsk_em9d,EM9D核,包括GPIO、UART等驅(qū)動;(由Synopsys提供BSP并進行維護)
工具當工具鏈不存在時,給出更好的提示信息; 增加初步的Segger Embedded Studio工程文件生成命令,注意:SES中攜帶的工具鏈比較特殊,libc并不是newlib 修正IAR下用scons命令行編譯的庫鏈接問題; 修正scons在有些工程轉(zhuǎn)換中,未加入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)
one more thing
正式發(fā)布STM32Cube MX RT-Thread Nano 軟件包: https://www./download/cube/RealThread.RT-Thread.pdsc ,使用指南將會推出!
|