RT-Thread5.1.0版本正式發布啦~!我們一起來看看它都有什么新功能、新特性吧!
? RT-Thread 代碼倉庫地址:
https://github.com/RT-Thread/rt-thread
? RT-Thread 5.1.0發布版本:
https://github.com/RT-Thread/rt-thread/releases/tag/v5.1.0
Kernel
kservice:使用 C89 格式以避免警告;修復起始地址錯位的問題;去除 malloc 大鎖,修復 memheap 鎖的錯誤使用;新增 MT-safe console 支持
rtdef:新增 rt_always_inline 操作函數
cpu:優化CPU調度器
thread:刪除線程引用計數
rthw:新增 rt_hw_interrupt_uninstall 聲明
為 malloc 服務新增鉤子函數;支持鉤子列表(在單個鉤子節點中新增多個鉤子)
優化系統調度器;完善 rt_vsnprintf
自旋鎖內禁止使用free、malloc等嵌套阻塞IPC接口
重命名RT_DEBUGING_INIT為RT_DEBUGING_AUTO_INIT
定義標準spinlock需要關閉調度器,對外的spinlock全部使用關閉、打開調度器方式
新增RT_USING_NANO宏,支持BSP一鍵切換到Nano版本
新增刪除線程時釋放互斥鎖的功能;新增對 rt_sem 進行控制配置以設置信號量的最大值的支持
新增 RV64 RTOS 內核 backtrace 支持;新增 ARM64、RV64 實現;新增創建線程函數時間片參數檢查
新增 scons 編譯后顯示工程的占用空間信息(#8697);新增調度程序(rt_sched)的抽象層,對SMP性能進行優化(#8537)
修復SMP模式軟件定時器重復觸發問題
修復rt_slist_for_each_entry宏不能正常遍歷slist鏈表中元素的問題
修復線程無法回收的錯誤;修復在 SMP 模式下 rt_timer 里 timer check 與 timer start 重復獲取自旋鎖而死鎖的問題
修復軟件定時器的休眠問題;修復 idle_hook_list 存在沒有加鎖的情況
修復線程退出系統函數可能存在的問題;修復優先級相同時候只能調度兩個線程的問題
修復訪問 percpu 對象的數據競爭問題;修復 rt_exit_critical_safe 函數錯誤返回問題
修復SIGNAL節點分配失敗返回錯誤問題
Component
Drivers
core:適配并優化新的設備驅動模型;修復部分設備驅動注冊之后無法進入 probe 函數問題
usb:rt_size_t 遵循 UNIX 風格,修改為 rt_ssize_t
virtio:qemu-virt64-aarch64 / qemu-virt64-riscv 支持 SDL2
spi:修復 qspi 配置未生效問題
sdio:新增 rt_mmcsd_fops_flush(block_dev)函數
rtc:修復 rt_soft_rtc_sync 函數因使用已棄用的聲明方式所引發的警告問題
clk:新增 clk 驅動框架,為全面使用設備樹做準備
pwm:新增控制臺二級命令補全功能
can:優化 can 關閉順序(#8780)
serial:
增加使用 dm 時的 tty 名字分配機制,支持更多波特率;
新增 tty 相關鉤子函數;新增 serial 框架設備樹支持;
修復 serial_v2 內存泄漏問題;
修復虛擬串口數據只能成功發送一次問題
pic:新增 pic-gic 支持
pinctrl:新增 pinctrl/pin-irqchip 支持
hwtimer:完善 Cortex-a、ARMv8 驅動
DFS
新增 exfat 配置;
dfs_v1:修復 FATFS 文件系統使用 cat 命令導致斷言 bug
dfs_v2:
更新 Smart 內核默認選中 dfsv2;更新 elmfat 版本由 r14b 為 r15
支持O_DIRECT和O_SYNC標志
修復dfs_dentry_lookup解析文件路徑問題
修復dfs_tmpfs_write中的錯誤(#8672)
修復dfsv2romfsdfs_romfs_getdents緩沖區溢出問題
修復 dfs_v2 dfs_file 中潛在的堆緩沖區溢出問題;修復 elm 的權限問題
修復 page cache 問題;修復 mqueue 未掛載問題
新增 dfs pwrite pread (#8672);新增 ptyfs支持(#8672)
新增符號鏈接、普通文件管理等特點(#8672);新增 sys_utimensat 函數
新增 cromfs 的符號鏈接(#8132);新增 cromfs 的 mmap 支持(#8218)
修復dfs_v2下傳輸fd時,dentry或者vnode不存在時出現的問題
Libc
修復MDK編譯環境下difftime函數多重定義的問題
修復共享計數器ID列表中的數據競爭問題
修復ctime.c文件與舊的驅動程序的兼容性問題
修復因工具鏈更新導致的eventfd中的宏重定義的問題
修復posix線程本地存儲尋找posix線程句柄時的邏輯錯誤
修復無法獲取IAR版本時會新增遺留宏的問題
改進 gcc picolibc;進一步優化 epoll 和 timerfd
新增RT_USING_INTERNAL_LIBC_ONLY宏
新增GCC通用原子操作功能(#8648)
LWP
新增sys_setitimer函數
替換lwp_new函數為lwp_create
替換futex中的irq禁用/啟用代碼
lwp_syscall.c中替換off_t為size_t
修復 lwp_free 定時器回收調用問題;修復設置 CPU 親和性問題
修復 rt_channel 內部的鎖問題;修復 pid 回收問題
修復init進程信號保護標志設置(#8797)
使能開啟smart/lwp選項后默認自動選擇LDSO和pcache選項
更新AF_UNIXbind與connect入口,更新AF_UNIX所使用數據結構sockaddr_un為標準結構
MM
新增預留內存支持;新增 rt_aspace_mremap_range 函數實現
修復 aspace_traversal 中的釋放后使用的問題;修復 page_install 函數在 shadow region 上的問題
Net
修復wifi掃描命令的重復問題(#8666)
at:優化 at 格式化輸出,避免多個 at client 和 server 輸出沖突;優化 AT 組件,并修復可能存在的內存泄露問題
lwip:修復 SMP 下可能發生死鎖的問題
sal:新增 ifconfig updown 功能;增加消息數量限制;更新 SAL 套接字抽象層,完善 socketpair、sendmsg、recvmsg 功能
Finsh
優化 list_thread 顯示;優化 MSH 宏定義
新增 finsh 線程棧大小檢查;新增 finsh 線程入口鉤子函數
FAL
為fal新增blocks機制,支持新增特殊的block定義
MProtect
新增MPU抽象層設計,支持ARMv7-M,ARMv8-M架構
其他
同步內核、文件系統等差異;移除 vmm
修復-Wmissing-prototypes警告
Libcpu
AARCH64:修復內核入口符號;修復 ulog 環境下不能正??吹?trace 信息問題;使用設備樹對 CPU 和內存進行初始化;提升 IRQ 禁用/啟用的性能
ARM:新增 Cortex-M85、Cortex-R52 架構的支持;解決 Cortex-A 開啟SMP工作異常問題(#8517)
RISC-V:修復 d1s smart build 失敗的問題
修復mmap支持
支持 RT-Thread 內核中的整體 backtrace 框架;新增架構級 backtrace 服務的弱實現;新增 RV64 架構支持
規范Libcpugroup名為libcpu
Tools
支持工具鏈LLVMEmbeddedToolchainForArm-17.0.1
新增 scons --target=vsc/--pack=xxx 命令;新增 prebuilding 操作
修復腳本中MPU的rtconfig.h文件識別問題
rt_studio:修復 rt-studio 導入 bsp 工程缺失{cross_toolchain_flags}字段問題
env:修復 env 內置 python2 subprocess 問題
action
修復DoxygenCI問題
BSP新增CI看護
新增bspattachcheckCI
utest
新增內存系統測試用例;補充串口設備框架 serial_v2 測試用例;新增 mm 測試用例;新增調度器測試用例
BSP
完善若干 bsp 驅動文件;修復一些 bsp 存在的問題
RT-Smart 支持:DFZU2EG MPSoC、cv181x-riscv
STM32:STM32 G0、G4、L0、L4 系列支持一鍵開啟切換 RT-Thread Nano 版本;STM32 Nucleo 系列增加板卡級識別宏;STM32 系列新增 Nano 版本 attach config 相關的 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
修復用戶態在獲取當前時間之后,調用到內核態再次獲取當前時間,兩邊差值為負數,定時器不會運行的問題
在使用RT-Smart的情況下默認開啟epoll/eventfd/signalfd/timerfd/select
移除prebuilt版本
修復setitimer缺陷,完善FUTEX支持
新增對RT-Smart終端子系統的支持(#8672)
其他更新:ssh,sftp,weston,vim…
貢
-
RT-Thread
+關注
關注
31文章
1305瀏覽量
40386 -
調度器
+關注
關注
0文章
98瀏覽量
5298
發布評論請先 登錄
相關推薦
評論