RT-Thread 4.0代碼髮佈瞭
- 2019-02-11 10:06:00
- viprt 原創
- 3433
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 ,使用指南將會推齣!
關註 RT-Thread
License 許可證
RT-Thread 實時操作繫統遵循 Apache 許可證 2.0 版本,實時操作繫統內核及所有開源組件可以免費在商業産品中使用,不需要公佈應用程序源碼,沒有潛在商業風險。
聯繫 RT-Thread
支持:support@rt-thread.com
媒體:news@rt-thread.com
商務:business@rt-thread.com
+86 021-31165890
上海浦東新區達爾文路 88 號半島科技園 10 號樓 5 層