RT-Thread5.1.0版本正式發(fā)布啦~!我們一起來(lái)看看它都有什么新功能、新特性吧!
? RT-Thread 代碼倉(cāng)庫(kù)地址:
https://github.com/RT-Thread/rt-thread
? RT-Thread 5.1.0發(fā)布版本:
https://github.com/RT-Thread/rt-thread/releases/tag/v5.1.0
Kernel
kservice:使用 C89 格式以避免警告;修復(fù)起始地址錯(cuò)位的問(wèn)題;去除 malloc 大鎖,修復(fù) memheap 鎖的錯(cuò)誤使用;新增 MT-safe console 支持
rtdef:新增 rt_always_inline 操作函數(shù)
cpu:優(yōu)化CPU調(diào)度器
thread:刪除線程引用計(jì)數(shù)
rthw:新增 rt_hw_interrupt_uninstall 聲明
為 malloc 服務(wù)新增鉤子函數(shù);支持鉤子列表(在單個(gè)鉤子節(jié)點(diǎn)中新增多個(gè)鉤子)
優(yōu)化系統(tǒng)調(diào)度器;完善 rt_vsnprintf
自旋鎖內(nèi)禁止使用free、malloc等嵌套阻塞IPC接口
重命名RT_DEBUGING_INIT為RT_DEBUGING_AUTO_INIT
定義標(biāo)準(zhǔn)spinlock需要關(guān)閉調(diào)度器,對(duì)外的spinlock全部使用關(guān)閉、打開(kāi)調(diào)度器方式
新增RT_USING_NANO宏,支持BSP一鍵切換到Nano版本
新增刪除線程時(shí)釋放互斥鎖的功能;新增對(duì) rt_sem 進(jìn)行控制配置以設(shè)置信號(hào)量的最大值的支持
新增 RV64 RTOS 內(nèi)核 backtrace 支持;新增 ARM64、RV64 實(shí)現(xiàn);新增創(chuàng)建線程函數(shù)時(shí)間片參數(shù)檢查
新增 scons 編譯后顯示工程的占用空間信息(#8697);新增調(diào)度程序(rt_sched)的抽象層,對(duì)SMP性能進(jìn)行優(yōu)化(#8537)
修復(fù)SMP模式軟件定時(shí)器重復(fù)觸發(fā)問(wèn)題
修復(fù)rt_slist_for_each_entry宏不能正常遍歷slist鏈表中元素的問(wèn)題
修復(fù)線程無(wú)法回收的錯(cuò)誤;修復(fù)在 SMP 模式下 rt_timer 里 timer check 與 timer start 重復(fù)獲取自旋鎖而死鎖的問(wèn)題
修復(fù)軟件定時(shí)器的休眠問(wèn)題;修復(fù) idle_hook_list 存在沒(méi)有加鎖的情況
修復(fù)線程退出系統(tǒng)函數(shù)可能存在的問(wèn)題;修復(fù)優(yōu)先級(jí)相同時(shí)候只能調(diào)度兩個(gè)線程的問(wèn)題
修復(fù)訪問(wèn) percpu 對(duì)象的數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題;修復(fù) rt_exit_critical_safe 函數(shù)錯(cuò)誤返回問(wèn)題
修復(fù)SIGNAL節(jié)點(diǎn)分配失敗返回錯(cuò)誤問(wèn)題
Component
Drivers
core:適配并優(yōu)化新的設(shè)備驅(qū)動(dòng)模型;修復(fù)部分設(shè)備驅(qū)動(dòng)注冊(cè)之后無(wú)法進(jìn)入 probe 函數(shù)問(wèn)題
usb:rt_size_t 遵循 UNIX 風(fēng)格,修改為 rt_ssize_t
virtio:qemu-virt64-aarch64 / qemu-virt64-riscv 支持 SDL2
i2c:新增通用軟件模擬 I2C;新增設(shè)備樹(shù)支持
spi:修復(fù) qspi 配置未生效問(wèn)題
sdio:新增 rt_mmcsd_fops_flush(block_dev)函數(shù)
rtc:修復(fù) rt_soft_rtc_sync 函數(shù)因使用已棄用的聲明方式所引發(fā)的警告問(wèn)題
clk:新增 clk 驅(qū)動(dòng)框架,為全面使用設(shè)備樹(shù)做準(zhǔn)備
pwm:新增控制臺(tái)二級(jí)命令補(bǔ)全功能
can:優(yōu)化 can 關(guān)閉順序(#8780)
serial:
增加使用 dm 時(shí)的 tty 名字分配機(jī)制,支持更多波特率;
新增 tty 相關(guān)鉤子函數(shù);新增 serial 框架設(shè)備樹(shù)支持;
修復(fù) serial_v2 內(nèi)存泄漏問(wèn)題;
修復(fù)虛擬串口數(shù)據(jù)只能成功發(fā)送一次問(wèn)題
pic:新增 pic-gic 支持
pinctrl:新增 pinctrl/pin-irqchip 支持
hwtimer:完善 Cortex-a、ARMv8 驅(qū)動(dòng)
DFS
新增 exfat 配置;
dfs_v1:修復(fù) FATFS 文件系統(tǒng)使用 cat 命令導(dǎo)致斷言 bug
dfs_v2:
更新 Smart 內(nèi)核默認(rèn)選中 dfsv2;更新 elmfat 版本由 r14b 為 r15
支持O_DIRECT和O_SYNC標(biāo)志
修復(fù)dfs_dentry_lookup解析文件路徑問(wèn)題
修復(fù)dfs_tmpfs_write中的錯(cuò)誤(#8672)
修復(fù)dfsv2romfsdfs_romfs_getdents緩沖區(qū)溢出問(wèn)題
修復(fù) dfs_v2 dfs_file 中潛在的堆緩沖區(qū)溢出問(wèn)題;修復(fù) elm 的權(quán)限問(wèn)題
修復(fù) page cache 問(wèn)題;修復(fù) mqueue 未掛載問(wèn)題
新增 dfs pwrite pread (#8672);新增 ptyfs支持(#8672)
新增符號(hào)鏈接、普通文件管理等特點(diǎn)(#8672);新增 sys_utimensat 函數(shù)
新增 cromfs 的符號(hào)鏈接(#8132);新增 cromfs 的 mmap 支持(#8218)
修復(fù)dfs_v2下傳輸fd時(shí),dentry或者vnode不存在時(shí)出現(xiàn)的問(wèn)題
Libc
修復(fù)MDK編譯環(huán)境下difftime函數(shù)多重定義的問(wèn)題
修復(fù)共享計(jì)數(shù)器ID列表中的數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題
修復(fù)ctime.c文件與舊的驅(qū)動(dòng)程序的兼容性問(wèn)題
修復(fù)因工具鏈更新導(dǎo)致的eventfd中的宏重定義的問(wèn)題
修復(fù)posix線程本地存儲(chǔ)尋找posix線程句柄時(shí)的邏輯錯(cuò)誤
修復(fù)無(wú)法獲取IAR版本時(shí)會(huì)新增遺留宏的問(wèn)題
改進(jìn) gcc picolibc;進(jìn)一步優(yōu)化 epoll 和 timerfd
新增RT_USING_INTERNAL_LIBC_ONLY宏
新增GCC通用原子操作功能(#8648)
LWP
新增sys_setitimer函數(shù)
替換lwp_new函數(shù)為lwp_create
替換futex中的irq禁用/啟用代碼
lwp_syscall.c中替換off_t為size_t
修復(fù) lwp_free 定時(shí)器回收調(diào)用問(wèn)題;修復(fù)設(shè)置 CPU 親和性問(wèn)題
修復(fù) rt_channel 內(nèi)部的鎖問(wèn)題;修復(fù) pid 回收問(wèn)題
修復(fù)init進(jìn)程信號(hào)保護(hù)標(biāo)志設(shè)置(#8797)
使能開(kāi)啟smart/lwp選項(xiàng)后默認(rèn)自動(dòng)選擇LDSO和pcache選項(xiàng)
更新AF_UNIXbind與connect入口,更新AF_UNIX所使用數(shù)據(jù)結(jié)構(gòu)sockaddr_un為標(biāo)準(zhǔn)結(jié)構(gòu)
MM
新增預(yù)留內(nèi)存支持;新增 rt_aspace_mremap_range 函數(shù)實(shí)現(xiàn)
修復(fù) aspace_traversal 中的釋放后使用的問(wèn)題;修復(fù) page_install 函數(shù)在 shadow region 上的問(wèn)題
Net
修復(fù)wifi掃描命令的重復(fù)問(wèn)題(#8666)
at:優(yōu)化 at 格式化輸出,避免多個(gè) at client 和 server 輸出沖突;優(yōu)化 AT 組件,并修復(fù)可能存在的內(nèi)存泄露問(wèn)題
lwip:修復(fù) SMP 下可能發(fā)生死鎖的問(wèn)題
sal:新增 ifconfig updown 功能;增加消息數(shù)量限制;更新 SAL 套接字抽象層,完善 socketpair、sendmsg、recvmsg 功能
Finsh
優(yōu)化 list_thread 顯示;優(yōu)化 MSH 宏定義
新增 finsh 線程棧大小檢查;新增 finsh 線程入口鉤子函數(shù)
FAL
為fal新增blocks機(jī)制,支持新增特殊的block定義
MProtect
新增MPU抽象層設(shè)計(jì),支持ARMv7-M,ARMv8-M架構(gòu)
其他
同步內(nèi)核、文件系統(tǒng)等差異;移除 vmm
修復(fù)-Wmissing-prototypes警告
Libcpu
AARCH64:修復(fù)內(nèi)核入口符號(hào);修復(fù) ulog 環(huán)境下不能正常看到 trace 信息問(wèn)題;使用設(shè)備樹(shù)對(duì) CPU 和內(nèi)存進(jìn)行初始化;提升 IRQ 禁用/啟用的性能
ARM:新增 Cortex-M85、Cortex-R52 架構(gòu)的支持;解決 Cortex-A 開(kāi)啟SMP工作異常問(wèn)題(#8517)
RISC-V:修復(fù) d1s smart build 失敗的問(wèn)題
修復(fù)mmap支持
支持 RT-Thread 內(nèi)核中的整體 backtrace 框架;新增架構(gòu)級(jí) backtrace 服務(wù)的弱實(shí)現(xiàn);新增 RV64 架構(gòu)支持
規(guī)范Libcpugroup名為libcpu
Tools
支持工具鏈LLVMEmbeddedToolchainForArm-17.0.1
新增 scons --target=vsc/--pack=xxx 命令;新增 prebuilding 操作
修復(fù)腳本中MPU的rtconfig.h文件識(shí)別問(wèn)題
rt_studio:修復(fù) rt-studio 導(dǎo)入 bsp 工程缺失{cross_toolchain_flags}字段問(wèn)題
env:修復(fù) env 內(nèi)置 python2 subprocess 問(wèn)題
action
修復(fù)DoxygenCI問(wèn)題
BSP新增CI看護(hù)
新增bspattachcheckCI
utest
新增內(nèi)存系統(tǒng)測(cè)試用例;補(bǔ)充串口設(shè)備框架 serial_v2 測(cè)試用例;新增 mm 測(cè)試用例;新增調(diào)度器測(cè)試用例
BSP
完善若干 bsp 驅(qū)動(dòng)文件;修復(fù)一些 bsp 存在的問(wèn)題
RT-Smart 支持:DFZU2EG MPSoC、cv181x-riscv
STM32:STM32 G0、G4、L0、L4 系列支持一鍵開(kāi)啟切換 RT-Thread Nano 版本;STM32 Nucleo 系列增加板卡級(jí)識(shí)別宏;STM32 系列新增 Nano 版本 attach config 相關(guān)的 CI
RTduino支持:raspberry-pico 、stm32h503-st-nucleo、stm32h563-st-nucleo、stm32f412-nucleo、stm32f407-rt-spark
新增一些新的 BSP:
Adafruit:Metro M4
Seeed Studio:Wio-Terminal
ST:stm32L431_tencentos、stm32h7s7-disco,stm32f407-lckfb-skystar、stm32h503-st-nucleo
Renesas:ek-ra8m1、ek-ra8d1、ra8d1-vision-board
AT32:at32f402-start、at32f405-start
HT32:ht32f52352、ht32f12366
AVR32:at32uc3a0256、at32uc3b0256
CVITEK:c906_little、cv18xx_risc-v
WCH:yd-ch32v307vct6(risc-v)
HC32:ev_hc32f4a0_lqfp176、ev_hc32f460_lqfp100_v2、ev_hc32f448_lqfp80
GD32:gd32407v-lckfb
NXP:mcxn:frdm-mcxn947、mcxa:frdm-mcxa153
Userapps
修復(fù)用戶態(tài)在獲取當(dāng)前時(shí)間之后,調(diào)用到內(nèi)核態(tài)再次獲取當(dāng)前時(shí)間,兩邊差值為負(fù)數(shù),定時(shí)器不會(huì)運(yùn)行的問(wèn)題
在使用RT-Smart的情況下默認(rèn)開(kāi)啟epoll/eventfd/signalfd/timerfd/select
移除prebuilt版本
修復(fù)setitimer缺陷,完善FUTEX支持
新增對(duì)RT-Smart終端子系統(tǒng)的支持(#8672)
其他更新:ssh,sftp,weston,vim…
貢
-
RT-Thread
+關(guān)注
關(guān)注
32文章
1506瀏覽量
43889 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
99瀏覽量
5615
發(fā)布評(píng)論請(qǐng)先 登錄
RTT 5.1.0 警告 如何消除?
求助,關(guān)于RT-Thread 最新版本timer.c rt_timer_check函數(shù)問(wèn)題求解
RT-Thread Studio 2.2.8創(chuàng)建新項(xiàng)目直接構(gòu)建編譯報(bào)錯(cuò)怎么解決?
RT-Thread 5.1.0版本中調(diào)用rt_sfud_flash_probe()函數(shù)報(bào)錯(cuò)的原因?
rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?
rt-thread stm32 BSP編譯不通過(guò),缺乏HAL庫(kù)怎么處理?
使用env v2.0執(zhí)行scons --dist產(chǎn)生缺失依賴報(bào)錯(cuò)怎么解決?
rt-thread stm32 BSP編譯不通過(guò)怎么解決?
RT-Thread榮獲2025優(yōu)秀開(kāi)源項(xiàng)目 | 新聞速遞
玄鐵加入RT-Thread 高級(jí)會(huì)員合作伙伴 | 戰(zhàn)略新篇
2025 RT-Thread全球技術(shù)大會(huì)議程正式發(fā)布!
RT-Thread審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)
如何將RT-Thread移植到NXP MCUXPressoIDE上
RT-Thread上CAN實(shí)踐
開(kāi)源共生 商業(yè)共贏 | RT-Thread 2024開(kāi)發(fā)者大會(huì)報(bào)名啟動(dòng)!

RT-Thread v5.1.0 發(fā)布
評(píng)論