自發布v4.1.0 beta版本以來,我們一直積極收集大家的反饋與問題報告,經過我們和社區小伙伴們的共同努力,一起修復了一些問題,完善了新增的特性,現在RT-Thread v4.1.0 版本正式發布了。 這篇文章是專門介紹內核部分更新的內容的。
內核部分更新
新增特性
【hook】增加靜態宏方式的HOOK機制 【tick】為rt_tick_increase增加HOOK機制 【kservice】增加RT_KSERVICE_USING_STDLIB、增加rt_strcpy
修復的問題
修復了一個特定場景下會引起軟件定時器停止工作的BUG
其他優化
完善了內核的調試日志
特性解析
1. 新增了靜態宏方式的HOOK機制
從4.1.0版本開始,RT-Thread在保證向前兼容的基礎上對原有的HOOK方式進行了改進,實現了如下的效果:
與原有使用函數指針進行“運行時刻”HOOK的方式兼容,依賴原有方式進行代碼插入或HOOK的模塊無需修改;
使用RT_USING_HOOK作為總開關
- 當未定義該宏時,將關閉所有HOOK功能,也不再生成任何相關代碼
- 當定義該宏時,在未開啟傳統“函數指針HOOK”時,默認情況下也不再生成額外代碼
允許用戶通過“插入宏的方式”在編譯時刻精細控制具體HOOK哪個位置
- 可以插入任意代碼塊——其中就包括函數指針、對普通函數的調用等等
具體使用方式可以參考共享者小伙伴的這篇文章:
RT-Thread新版本中HOOK的使用方法(請復制以下鏈接至瀏覽器打開//club.rt-thread.org/ask/article/3669.html) 注意:非rtos資深用戶,請謹慎使用HOOK機制
2. 為rt_tick_increase增加HOOK機制
我們為 rt_tick_increase 增加了 HOOK 機制。這樣在某些場景下,比如:當用戶需要一個精度較高的時間基準,或者要做一些和系統心跳同頻的事情的時候,就可以借助這個機制。利用前一部分的靜態宏的方式或者使用API rt_tick_sethook設定hook函數的方式,在系統心跳的時候執行一些“非常簡短”的操作。 注意:由于rt_tick_increase的執行頻率較高,設定的HOOK函數一定不能執行復雜的操作,會增大系統負荷!
3. 增加RT_KSERVICE_USING_STDLIB
增加了一些針對 kservice.c 的配置宏,可以配置使用c庫里提供的內存函數替換 RT-Thread Kservice 實現。代碼效率更高,但是在地址非對齊的情況下,可能會出問題。

問題修復
軟件定時器BUG修復
問題描述:
在特定場景下,軟件定時器處理線程會錯誤的掛起自身,導致如果之后沒有啟動軟件定時器的操作,來喚醒處理線程的話,所有的軟件定時器都會停止工作。
相關鏈接:https://github.com/RT-Thread/rt-thread/issues/5623
問題場景:
當一個定時器到達設定的超時時間,此時軟件定時器處理線程會嘗試獲取下一個定時器的超時時間,來決定何時喚醒自身執行超時操作。如果獲取不到下次超時時間的話,就會掛起自身,永久等待。這里獲取下一次超時時間的函數之前的版本有問題,如果下一次的超時時間恰好為 RT_TICK_MAX 的話,也會被認為是沒有獲取到,就會導致處理線程被異常掛起。

問題修復:
RT-Thread v4.1.0版本已經修復了這個問題:https://github.com/RT-Thread/rt-thread/pull/5637。推薦大家同步修改此補丁。
其他優化
完善了內核的調試日志,添加 RT_DEBUG_DEVICE 類型,統一使用 RT_DEBUG_LOG 宏管理內核的調試日志。

審核編輯 :李倩
-
函數
+關注
關注
3文章
4417瀏覽量
67521 -
代碼
+關注
關注
30文章
4968瀏覽量
73988 -
RT-Thread
+關注
關注
32文章
1614瀏覽量
44886
原文標題:RT-Thread 4.1.0 特性解析之內核
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
恩智浦亮相RT-Thread 20周年開發者大會
首搭RT-Thread程翧車控平臺| RT-Thread程翧 S32K344 快速原型開發平臺正式上市!| 產品動態
rt-thread studio 導入BSP 失敗怎么解決?
2025年RT-Thread開發者巡回培訓報名正式啟動!
rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?
在Ubuntu上開發基于先楫MCU的RT-Thread應用指南
【好書推薦】RT-Thread第20本相關書籍!《嵌入式實時操作系統RT-Thread原理與應用》| 技術集結
RT-Thread 遇上 Rust:安全內核 RusT-Thread 的誕生
RT-Thread榮獲2025優秀開源項目 | 新聞速遞
深度剖析 RT-Thread 線程調度流程
揭秘RT-Thread上的AUTOSAR CP系統
玄鐵加入RT-Thread 高級會員合作伙伴 | 戰略新篇
人形機器人敏捷開發新路徑:RT-Thread以軟件底座破解復雜系統難題 | 新聞速遞
2025 RT-Thread全球技術大會議程正式發布!
RT-Thread審核團招募: 深度參與開源RTOS社區治理與演進
RT-Thread 4.1.0特性解析
評論