調研視窗: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 誤匹配,整批剔除

完整信源清單