RT-Thread 每日動態報告(2026-10-29)
調研視窗:2026-10-28 08:00 ~ 2026-10-29 08:00(北京時間,24 小時)
信源:RT-Thread 官方新聞介面與社群文章介面、GitHub(主倉庫 commits / PR / Issue / releases / tags、RT-Thread/packages、vscode-rt-smart、sdk、pkgs-test、topic:rt-thread 生態檢索)、Google News 聚合(中英文六組查詢,走代理)、HN Algolia、行業媒體與社群專案倉庫核驗(詳見附錄信源清單)
本期索引
- 一、核心與版本動態
- 三個月前提交的 utest 提案一次合入四筆(10-28)
- utest 彙總誤判:後面的 unit 透過就把 testcase 的失敗數抹掉(10-28)
- netdev 用例切斷公網依賴,CI 裡不再訪問 8.8.8.8 與百度(10-28)
- musl 下訊號用例從 1 起裝,signal 0 不再參與(10-28)
- DHCP raw 伺服器選項解析補邊界,越界讀缺陷關閉(10-28)
- 二、安全跟進與待合併佇列
- RT-Smart 終端 ioctl 把使用者指標交給核心解引用,可讀寫任意核心記憶體(10-28)
- libc 定時器 64 位截斷:10 秒定時器被 arm 成 21 小時(10-28)
- musl pthread_exit 執行緒連結串列 use-after-free,SMP 併發退出崩(10-28)
- Smart 那批 10-18 提案在佇列裡繼續重新整理(10-29)
- 三、官方與社群活動
- 官方新聞介面仍在 6 月 17 日,連續第四個月無新增(10-28)
- 社群文章通道 80 分鐘內連發三篇嵌入式大賽作品(10-28)
- FAL 維護者退出,MAINTAINERS 刪掉一條(10-28)
- 四、生態與廠商適配
- 瑞薩 RA6W1-EK 補 24 個 Wi-Fi 中斷向量,CryptoCell 與 MAC 收發補齊(10-28)
- 納芯微 NS800RT7P65 上的工業 CAN 分散式移動機器人(10-28)
- 玄鐵 D121 主站配龍芯 LS2K0300 從機,做多裝置監控與異常追溯(10-28)
- NXP MCXA346 上的輕量神經網路增強 FOC,穩態誤差降 4.26%(10-28)
- 五、趨勢觀察與總結
- 本期趨勢:測試基礎設施與安全邊界同時補課
- 侷限性與去重說明
- 附錄:信源核查表與信源清單
一、核心與版本動態
1.1 三個月前提交的 utest 提案一次合入四筆(10-28)
日期:2026-10-28 14:44(合入時間) 來源:主倉庫提交記錄、提案 #11601
本期主線唯一一次成組落地來自一筆舊提案。提案 #11601 建立於 7 月 9 日,10 月 28 日 14:44 合入,帶進四筆提交、三個檔案、新增 125 行、刪除 103 行:utest 彙總統計修復、netdev 用例穩定化、musl 下 signal 0 跳過,以及兩處 clang-format 整理。四筆在同一個時間戳落地,說明是整筆合併而非逐條挑選。從 7 月提出來到 10 月底進主線,壓了三個多月,這類純測試與格式提案在評審佇列裡排期靠後是常態,但一旦合入就能立刻改變 CI 的判定結果。
1.2 utest 彙總誤判:後面的 unit 透過就把 testcase 的失敗數抹掉(10-28)
日期:2026-10-28 14:44(合入時間) 來源:提案 #11601
一個 testcase 內部含多個 UTEST_UNIT_RUN 時,某個 unit 失敗後,如果後續 unit 透過,utest_unit_run() 會重置 local_utest.failed_num,最終 testcase 與整體彙總仍顯示透過。也就是說測試確實跑錯了,報表卻說沒事。修法是:testcase 開始執行前清零統計,每個 unit 仍獨立統計,unit 結束後把本 unit 的透過數與失敗數累加回 testcase 總計。這樣保留了 unit 級隔離,又不會讓後面的成功覆蓋前面的失敗。改動落在 utest.c,新增 29 行、刪除 6 行。
1.3 netdev 用例切斷公網依賴,CI 裡不再訪問 8.8.8.8 與百度(10-28)
日期:2026-10-28 14:44(合入時間) 來源:提案 #11601
原 netdev ping 用例把 8.8.8.8 與 www.baidu.com 當作必須連通的目標,還依賴 “192.256.0.321” 這類非法 IP 字串被解析層拒絕。問題有兩處:CI 環境沒有外網時前一類用例必然失敗,屬於假紅;非法字串的拒絕行為在不同解析實現下並不一致,屬於偽斷言。本次把外網用例整體包進 #ifndef RT_USING_CI_ACTION,非法地址改為傳空主機名(DNS 查詢之前就被拒),DNS 用例改為只驗證配置寫入生效。改動落在 tc_netdev.c,新增 34 行、刪除 43 行。
1.4 musl 下訊號用例從 1 起裝,signal 0 不再參與(10-28)
日期:2026-10-28 14:44(合入時間) 來源:提案 #11601
四處訊號用例原先都從 signo 等於 0 開始裝處理器。0 號訊號在 POSIX 裡只用於存在性檢查,沒有可安裝的處理器語義,musl 下按此呼叫會失敗,於是整組用例在 musl 配置上掛掉。本次引入 UTEST_SIGNAL_MIN:musl 下取 1,其它 libc 仍取 0,四處迴圈統一改用該宏。改動落在 signal_tc.c,新增 10 行、刪除 4 行。這是把「libc 實現差異」從測試判定裡剝離出來的典型做法,比在斷言裡放寬條件更乾淨。
1.5 DHCP raw 伺服器選項解析補邊界,越界讀缺陷關閉(10-28)
日期:2026-10-28 19:04(合入時間) 來源:提案 #11940、缺陷 #11913
raw API 的 DHCP 伺服器在遍歷客戶端選項時,可能讀到缺失的長度位元組,也可能返回內容被截斷的選項,MESSAGE_TYPE 與 REQUESTED_IP 兩個呼叫點隨後讀取未校驗長度的值,構成越界讀;解析還按預分配的 1500 位元組緩衝區進行,超出實際收到的資料範圍。本次合入的修法是逐層校驗:讀長度位元組前先確認選項頭完整,返回或推進指標前確認宣告內容落在報文內,REQUESTED_IP 要求值至少 4 位元組、MESSAGE_TYPE 至少 1 位元組,拒絕短於 DHCP_OPTIONS_OFS 的報文,並按實際報文長度計算選項區。只改 dhcp_server_raw.c,新增 23 行、刪除 5 行,作者以 12 項主機側迴歸用例(ASAN)驗證。
二、安全跟進與待合併佇列
2.1 RT-Smart 終端 ioctl 把使用者指標交給核心解引用,可讀寫任意核心記憶體(10-28)
日期:2026-10-28 13:14(報告)/ 20:35(修復提案) 來源:缺陷 #11937、提案 #11941
報告指出 RT-Smart 的終端子系統由 FreeBSD tty 框架移植而來,但移植時丟掉了 FreeBSD 在 sys_ioctl() 裡先把使用者引數 copyin 到核心棧緩衝區這個前提。RT-Smart 的 sys_ioctl() 對非 flock 命令直接轉發原始使用者指標,移植進來的適配函式與 tty.c 的 TIOCGWINSZ 分支仍按 *(struct winsize *)data 直接寫核心地址。後果是:非特權程序只用 open 加 ioctl 兩條官方介面,就能讀寫任意核心記憶體,傳空指標可直接讓核心崩潰。影響 v5.1.0 起的全部版本(由 2024-03-28 的提案 #8672 引入),v5.0.x 不受影響;在 qemu-vexpress-a9 上驗證,且缺陷與架構無關,AArch64 的 RT-Smart 同樣適用。當日 20:35,社群提交提案 #11941:在 ioctl 適配層引入核心棧暫存與 copy_from_user/copy_to_user,對 ptm 與 tty 通用路徑補 lwp_in_user_space() 界限校驗,涉 6 個檔案、新增 577 行、刪除 52 行。
2.2 libc 定時器 64 位截斷:10 秒定時器被 arm 成 21 小時(10-28)
日期:2026-10-28(建立時間) 來源:提案 #11938、缺陷 #11924
缺陷 #11924 報告 timer_gettime() 把總剩餘納秒存進 32 位整數再拆秒。提案者往下查,發現前面還有一處更嚴重的同類截斷:timer_settime() 用 unsigned long res = rt_clock_time_get_res_scaled() 做換算,而該函式對 100 Hz 時鐘源返回 1e13 量級,存進 32 位只留下低位,算出的 reload 完全錯位。按提案給出的算式,10 秒定時器折算出的 reload 約對應 21 小時——也就是說定時器從 arm 那一刻起就是錯的,只修 timer_gettime() 並不會讓結果變對。提案同時修設定與查詢兩側,涉 4 個檔案、新增 142 行、刪除 5 行,仍在佇列。
2.3 musl pthread_exit 執行緒連結串列 use-after-free,SMP 併發退出崩(10-28)
日期:2026-10-26(報告)/ 2026-10-28(更新) 來源:缺陷 #11932
RT-Thread Smart 5.2.2、SMP、aarch64、musl 1.2.5 組合下,併發 pthread_create 與 pthread_exit 會在 musl_pthread_exit 內崩潰:執行緒連結串列摘鏈時寫到已釋放或已解除對映的執行緒描述符(Data Abort),或執行緒返回地址被寫成 0(Instruction Abort)。報告附了復現程式與詳細分析,1000 輪 8 執行緒的負載在數百輪內即可復現。本視窗內該缺陷有更新但尚無對應修復提案,屬下一批需要盯的 Smart 側問題——它與 2.1 分屬不同子系統,但都落在「使用者態與核心態邊界」這條線上。
2.4 Smart 那批 10-18 提案在佇列裡繼續重新整理(10-29)
日期:2026-10-28 20:37 ~ 2026-10-29 00:17(最後更新) 來源:提案 #11896、提案 #11894
qemu-virt64 啟用 RT-Thread Smart 的提案在 10 月 29 日 00:17 仍有更新,lwp 按子系統拆分系統呼叫實現的提案在 10 月 28 日 20:37 重新整理,兩筆都是 10 月 18 日建立、至今未合入。同批還有若干 lwp、訊號與串列埠相關提案在 10 月 28 日下午集中重新整理。這組提案在本視窗內仍是佇列裡最活躍的一段,但當天合入的四筆裡沒有一筆屬於 Smart,說明維護者這一輪先清了測試與網路側的舊賬。
三、官方與社群活動
3.1 官方新聞介面仍在 6 月 17 日,連續第四個月無新增(10-28)
日期:2026-10-28(核查時間) 來源:官方新聞介面
官方新聞介面逐頁核查,最新條目仍是 2026-06-17 釋出的兩篇,分別關於阿布扎比投資論壇與第四屆軟體創新發展大會,24 小時與 7 天視窗內均無新增。與社群文章通道當日連發三篇相比,兩側冷熱反差明顯:官方對外稿件已連續四個月低頻,日報的日常內容實質由 GitHub 與社群側承載。這一狀態本身對判斷社群活躍度有參考價值——公司對外傳播節奏放緩,不等於工程側停滯。
3.2 社群文章通道 80 分鐘內連發三篇嵌入式大賽作品(10-28)
日期:2026-10-28 13:03 ~ 14:12(釋出時間) 來源:社群文章介面
社群文章介面在 13:03 至 14:12 之間新增三篇,全部是 2026 嵌入式大賽參賽作品:基於納芯微 NS800RT7P65 的工業 CAN 分散式移動機器人、以玄鐵 D121 為主站的多從機監控與異常追溯系統、基於 NXP MCXA346 的輕量神經網路增強無刷電機控制器。三篇都附了開源倉庫或完整復現記錄,賽道覆蓋工業控制、工業互聯與電機控制三個方向。集中釋出說明大賽已進入作品提交與展示高峰,也說明這一批作者習慣把工程細節連同程式碼一起公開,而不只是交一份報告。逐項技術拆解見第四章。
3.3 FAL 維護者退出,MAINTAINERS 刪掉一條(10-28)
日期:2026-10-28 18:48(合入時間) 來源:提案 #11939
一筆只改 MAINTAINERS 的合入,刪除 components_fal 條目,原作者在說明裡寫已沒有時間與精力繼續參與社群工作。FAL(Flash 抽象層)長期由單人維護,這次是維護者主動移交,不涉及程式碼質量問題。條目刪除後該元件暫時沒有登記維護者,後續是否有人補位值得留意——按以往的規律,這類基礎元件一旦無人認領,問題會在廠商提 BSP 時才暴露出來。
四、生態與廠商適配
4.1 瑞薩 RA6W1-EK 補 24 個 Wi-Fi 中斷向量,CryptoCell 與 MAC 收發補齊(10-28)
日期:2026-10-28 18:52(合入時間) 來源:提案 #11934
RA6W1-EK 的 rafw_gen 向量表原先只覆蓋通用外設,Wi-Fi 側一整組中斷都沒有入口:KDMA、TDES CBC、PSK SHA1、SYSPLL 與 FPLL 鎖定、整組 RTC 介面(外部喚醒、掉電、欠壓、脈衝計數、匯流排時鐘、訪問、映象、載入完成)、MRM 與 D-cache MRM、CryptoCell-312、HSU、MAC 定時器/接收/傳送/協議/通用/信標,以及 radio controller,共 24 個。本次全部宣告為 weak 處理函式並掛進向量表,同時把 ROM 符號表裡兩個 crypto 入口改名為 __rom_ 字首,避免與 RAM 側同名符號衝突。改動落在 vector_data.c(新增 49 行)與 rom_code_gcc.symbols(改 6 行)。
4.2 納芯微 NS800RT7P65 上的工業 CAN 分散式移動機器人(10-28)
日期:2026-10-28 14:12(釋出時間) 來源:社群文章:小型自主移動機器人、開源倉庫
2026 嵌入式大賽的工業控制賽道作品,程式碼以 GPL-3.0 公開。主控為納芯微 NS800RT7P65(Cortex-M7,600 MHz),跑 RT-Thread 4.x,單晶片承擔 FOC 二維雲臺、CAN 主控與 40 條 MSH 線上診斷命令;底盤是 CAN 五節點架構(主控、雲臺 FOC、感測器採集、底盤驅動、視覺 AI),從站各自本地閉環,符合工業 AMR 的分層設計。感知側用超聲波旋轉掃描生成二維點雲,加慣性單元與里程計做位姿推算,攝像頭供圖、協板跑目標檢測,把視覺算力與控制算力分開。監控走區域網 MQTT 平臺,Web 頁面實時顯示位姿、點雲、識別目標與軌跡,並支援內網下發多步任務序列,整條鏈路不依賴公網。
4.3 玄鐵 D121 主站配龍芯 LS2K0300 從機,做多裝置監控與異常追溯(10-28)
日期:2026-10-28 13:03(釋出時間) 來源:社群文章:多從機裝置監控與異常追溯系統
同一批大賽作品裡的工業互聯方案。主站是玄鐵 D121,跑 RT-Thread 加 LVGL 觸控式螢幕,經 RS485 與 Modbus RTU 輪詢兩個從站:星火 STM32F407 採集溫溼度與六軸資料,龍芯 LS2K0300 上報 CPU、記憶體與執行時間等系統指標。採集資料落 TF 卡並支援本地回放,通訊中斷、恢復與振動越限等關鍵事件進入持久化佇列,經 ESP8266 上雲後用微信小程式遠端檢視,斷網時先存本地、恢復後補傳。設計上的重點是單臺裝置失聯時其它裝置仍能繼續記錄。把 ARM 與 LoongArch 兩類從站放進同一條 Modbus 匯流排,對異構裝置接入場景有直接參考價值。
4.4 NXP MCXA346 上的輕量神經網路增強 FOC,穩態誤差降 4.26%(10-28)
日期:2026-10-28 14:12(釋出時間) 來源:社群文章:輕量神經網路增強的智慧無刷電機控制器、開源倉庫
第三篇大賽作品,硬體為 NXP FRDM-MCXA346 加 2804 電機、AS5600 磁編碼器與 SimpleFOC Mini 驅動。控制側先做前饋加 PI 的速度環與位置環,再在控制輸出上疊一個 3 輸入、8 個隱藏單元、1 輸出的動態補償網路,權重匯出成 C 程式碼直接在 MCU 上計算,韌體不引入推理框架;補償可單獨開關,便於同引數對照。實測 90 段實板測試(正負 15 RPM 內 10 種切換各三輪):穩態尾段 100 毫秒視窗的 RMSE 從 2.187 降到 2.094 RPM,約降 4.26%;整段 RMSE 從 3.327 降到 3.291,約降 1.07%。另外給 P 專案標加 25 毫秒平滑後,60 段測試的整段速度誤差均值降約 5.83%。RT-Thread 側控制執行緒按 2 毫秒週期執行,串列埠執行緒單獨處理命令與遙測,執行緒間用互斥量同步狀態。
五、趨勢觀察與總結
5.1 本期趨勢:測試基礎設施與安全邊界同時補課
日期:2026-10-29(本期) 來源:主倉庫提交記錄、缺陷 #11937
本期七筆合入裡有四筆是測試相關:三筆改用例邏輯,一筆只做格式化,方向都是讓 CI 的判定可信——不再依賴公網、不再被後續 unit 覆蓋、不再假定 musl 下 signal 0 可以安裝。安全側是另一條線:DHCP 越界讀被關掉,RT-Smart 終端 ioctl 的使用者指標直達核心問題當天報、當天提修,libc 定時器截斷從「只修查詢」推進到「連設定一起修」。兩類工作都不產生新功能,但都指向同一件事:把「測試透過」與「引數可信」這兩個前提重新做實。與此對照,Smart 側的提案仍在佇列裡重新整理而當天未合入,說明這一輪維護順序是先清測試與網路側舊賬。
5.2 侷限性與去重說明
日期:2026-10-29(本期) 來源:官方新聞介面、社群文章介面
- 官方新聞介面連續第四個月無新增,本期新聞側內容來自社群文章介面與 GitHub。媒體檢索視窗內只命中一條 RTOS 歷史回顧長文(10-28 11:48),原站抓取受限、無法核對正文是否涉及 RT-Thread,未收錄。
- 昨日日報記錄的 clang-format 22.1.8 全量格式化提案 #11936 本期繼續重新整理(10-28 18:50),無實質變化,不重複收錄。
- topic:rt-thread 生態檢索視窗內只有 zlgopen/awtk 有推送(10-28 12:56),屬通用 GUI 工具包的常規改進,與 RT-Thread 無直接關係,剔除。
- HN Algolia 本期兩條命中均為 threads 與 ThreadShelf 的字串誤匹配,整批剔除;Google News 英文側視窗內無相關稿件。
- 三篇大賽作品同日釋出、主題相近,按各自賽道分別收錄,未合併為一條,以免丟掉技術細節。
附錄:信源核查表與信源清單
信源核查表
| 信源 | 核查結果 |
|---|---|
| 官方新聞介面(rt_org) | 24 小時無新增,最新條目停在 2026-06-17 |
| 社群文章介面(article) | 視窗內新增 3 篇,均為 2026 嵌入式大賽作品(10-28 13:03 至 14:12) |
| 主倉庫 commits | 視窗內 7 筆合入,集中在 10-28 14:44 與 18:48 至 19:04 |
| 主倉庫 PR | 合入 4 筆(#11601、#11934、#11939、#11940),新建 2 筆(#11938、#11941),在審提案 17 筆本視窗有更新 |
| 主倉庫 releases / tags | 無新增,最新仍為 v5.3.0(2026-09-10) |
| 主倉庫 Issue | 新建 1 筆(#11937,RT-Smart 終端 ioctl 安全),另 2 筆本視窗有更新 |
| RT-Thread/packages | 無推送,最新推送 2026-10-23 |
| vscode-rt-smart | 無推送,最新推送 2026-10-26 |
| RT-Thread/sdk | 無推送,最新推送 2026-10-26 |
| pkgs-test | 無推送,最新推送 2026-10-23 |
| topic:rt-thread 生態檢索 | 視窗內僅 zlgopen/awtk 推送,與 RT-Thread 無直接關係,剔除 |
| Google News 中文 | 視窗內 1 條 RTOS 回顧長文,原站抓取受限,未收錄 |
| Google News 英文 | 視窗內無相關命中 |
| HN Algolia | 2 條 threads 與 ThreadShelf 誤匹配,整批剔除 |
完整信源清單
- [1] RT-Thread 主倉庫提交記錄
https://github.com/RT-Thread/rt-thread/commits/master - [2] 主倉庫提案 #11601(utest 彙總與用例穩定化)
https://github.com/RT-Thread/rt-thread/pull/11601 - [3] 主倉庫提案 #11940(DHCP raw 選項邊界)
https://github.com/RT-Thread/rt-thread/pull/11940 - [4] 主倉庫缺陷 #11913(DHCP 越界讀)
https://github.com/RT-Thread/rt-thread/issues/11913 - [5] 主倉庫缺陷 #11937(RT-Smart 終端 ioctl 使用者指標)
https://github.com/RT-Thread/rt-thread/issues/11937 - [6] 主倉庫提案 #11941(終端 ioctl copyin/copyout)
https://github.com/RT-Thread/rt-thread/pull/11941 - [7] 主倉庫提案 #11938(libc 定時器 64 位截斷)
https://github.com/RT-Thread/rt-thread/pull/11938 - [8] 主倉庫缺陷 #11924(timer_gettime 截斷)
https://github.com/RT-Thread/rt-thread/issues/11924 - [9] 主倉庫缺陷 #11932(musl pthread_exit 執行緒連結串列)
https://github.com/RT-Thread/rt-thread/issues/11932 - [10] 主倉庫提案 #11896(qemu-virt64 啟用 Smart)
https://github.com/RT-Thread/rt-thread/pull/11896 - [11] 主倉庫提案 #11894(lwp 子系統拆分)
https://github.com/RT-Thread/rt-thread/pull/11894 - [12] 主倉庫提案 #11934(RA6W1-EK 系統配置)
https://github.com/RT-Thread/rt-thread/pull/11934 - [13] 主倉庫提案 #11939(MAINTAINERS 移除 FAL 條目)
https://github.com/RT-Thread/rt-thread/pull/11939 - [14] 主倉庫版本釋出記錄
https://github.com/RT-Thread/rt-thread/releases - [15] 主倉庫標籤列表
https://github.com/RT-Thread/rt-thread/tags - [16] 官方新聞介面
https://club.rt-thread.org/api/index/getList?type=rt_org - [17] 社群文章介面
https://club.rt-thread.org/api/index/getList?type=article - [18] 社群文章:小型自主移動機器人(NS800RT7P65)
https://club.rt-thread.org/ask/article/88ec5ac60d41d665.html - [19] 社群文章:多從機裝置監控與異常追溯系統(玄鐵 D121)
https://club.rt-thread.org/ask/article/3febce8c6543ba79.html - [20] 社群文章:輕量神經網路增強的無刷電機控制器(MCXA346)
https://club.rt-thread.org/ask/article/1ae9bc2938def9c8.html - [21] 大賽作品開源倉庫:ns800-amr
https://gitcode.com/sdcwhy/ns800-amr - [22] 大賽作品開源倉庫:rtt-mcx-BLDCmotor
https://github.com/2470519590/rtt-mcx-BLDCmotor - [23] RT-Thread 組織倉庫列表
https://github.com/orgs/RT-Thread/repositories?sort=pushed