0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RT-Thread 4.1.0特性解析

RTThread物聯(lián)網操作系統(tǒng) ? 來源:RTThread物聯(lián)網操作系統(tǒng) ? 作者:RTThread物聯(lián)網操作 ? 2022-04-19 14:43 ? 次閱讀

自發(fā)布v4.1.0 beta版本以來,我們一直積極收集大家的反饋與問題報告,經過我們和社區(qū)小伙伴們的共同努力,一起修復了一些問題,完善了新增的特性,現(xiàn)在RT-Thread v4.1.0 版本正式發(fā)布了。 這篇文章是專門介紹內核部分更新的內容的。

內核部分更新

新增特性

【hook】增加靜態(tài)宏方式的HOOK機制 【tick】為rt_tick_increase增加HOOK機制 【kservice】增加RT_KSERVICE_USING_STDLIB、增加rt_strcpy

修復的問題

修復了一個特定場景下會引起軟件定時器停止工作的BUG

其他優(yōu)化

完善了內核的調試日志

特性解析

1. 新增了靜態(tài)宏方式的HOOK機制

從4.1.0版本開始,RT-Thread在保證向前兼容的基礎上對原有的HOOK方式進行了改進,實現(xiàn)了如下的效果:

與原有使用函數(shù)指針進行“運行時刻”HOOK的方式兼容,依賴原有方式進行代碼插入或HOOK的模塊無需修改;

使用RT_USING_HOOK作為總開關

- 當未定義該宏時,將關閉所有HOOK功能,也不再生成任何相關代碼

- 當定義該宏時,在未開啟傳統(tǒng)“函數(shù)指針HOOK”時,默認情況下也不再生成額外代碼

允許用戶通過“插入宏的方式”在編譯時刻精細控制具體HOOK哪個位置

- 可以插入任意代碼塊——其中就包括函數(shù)指針、對普通函數(shù)的調用等等

具體使用方式可以參考共享者小伙伴的這篇文章:
RT-Thread新版本中HOOK的使用方法(請復制以下鏈接至瀏覽器打開//club.rt-thread.org/ask/article/3669.html) 注意:非rtos資深用戶,請謹慎使用HOOK機制

2. 為rt_tick_increase增加HOOK機制

我們?yōu)?rt_tick_increase 增加了 HOOK 機制。這樣在某些場景下,比如:當用戶需要一個精度較高的時間基準,或者要做一些和系統(tǒng)心跳同頻的事情的時候,就可以借助這個機制。利用前一部分的靜態(tài)宏的方式或者使用API rt_tick_sethook設定hook函數(shù)的方式,在系統(tǒng)心跳的時候執(zhí)行一些“非常簡短”的操作。 注意:由于rt_tick_increase的執(zhí)行頻率較高,設定的HOOK函數(shù)一定不能執(zhí)行復雜的操作,會增大系統(tǒng)負荷!

3. 增加RT_KSERVICE_USING_STDLIB

增加了一些針對 kservice.c 的配置宏,可以配置使用c庫里提供的內存函數(shù)替換 RT-Thread Kservice 實現(xiàn)。代碼效率更高,但是在地址非對齊的情況下,可能會出問題。

2e109cf6-bf94-11ec-9e50-dac502259ad0.png

問題修復

軟件定時器BUG修復

問題描述:

在特定場景下,軟件定時器處理線程會錯誤的掛起自身,導致如果之后沒有啟動軟件定時器的操作,來喚醒處理線程的話,所有的軟件定時器都會停止工作。

相關鏈接:https://github.com/RT-Thread/rt-thread/issues/5623

問題場景:

當一個定時器到達設定的超時時間,此時軟件定時器處理線程會嘗試獲取下一個定時器的超時時間,來決定何時喚醒自身執(zhí)行超時操作。如果獲取不到下次超時時間的話,就會掛起自身,永久等待。這里獲取下一次超時時間的函數(shù)之前的版本有問題,如果下一次的超時時間恰好為 RT_TICK_MAX 的話,也會被認為是沒有獲取到,就會導致處理線程被異常掛起。

2e2c4c62-bf94-11ec-9e50-dac502259ad0.png

問題修復:

RT-Thread v4.1.0版本已經修復了這個問題:https://github.com/RT-Thread/rt-thread/pull/5637。推薦大家同步修改此補丁。

其他優(yōu)化

完善了內核的調試日志,添加 RT_DEBUG_DEVICE 類型,統(tǒng)一使用 RT_DEBUG_LOG 宏管理內核的調試日志。

2e47eaa8-bf94-11ec-9e50-dac502259ad0.png

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62749
  • 代碼
    +關注

    關注

    30

    文章

    4802

    瀏覽量

    68743
  • RT-Thread
    +關注

    關注

    31

    文章

    1294

    瀏覽量

    40233

原文標題:RT-Thread 4.1.0 特性解析之內核

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網操作系統(tǒng)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅動移植,并正常啟動RT-T
    的頭像 發(fā)表于 11-13 01:03 ?1261次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會報名啟動!

    親愛的RT-Thread開發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發(fā)者大會)正式啟動報名!2024RT-Threa
    的頭像 發(fā)表于 10-29 08:06 ?445次閱讀
    開源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開發(fā)者大會報名啟動!

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超10座城市及國家,為開發(fā)者提供一個深入學習RT-Thread嵌入式開發(fā)的絕佳機會。
    的頭像 發(fā)表于 08-07 08:35 ?1325次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    【好書推薦】RT-Thread設備驅動開發(fā)指南

    近年來國內芯片產業(yè)和物聯(lián)網產業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入式操作系統(tǒng)等底層技術的人才。隨著RT-Thread被更廣泛地應用于行業(yè)中,開發(fā)者對嵌入式驅動開發(fā)的需求越來越
    的頭像 發(fā)表于 08-01 08:35 ?668次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發(fā)指南

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統(tǒng)開源項目在GitHub上的star數(shù)量突破一萬!截止發(fā)文,RT-Thread作為實時操作系統(tǒng)在業(yè)界Star數(shù)量排名第一!倉庫地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?491次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 05-28 08:35 ?458次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技術大會演講議程發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術大會)致力于圍繞RT-Thread基礎軟件技術發(fā)展、實踐創(chuàng)新、開發(fā)者能力
    的頭像 發(fā)表于 05-16 08:34 ?568次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術大會演講議程發(fā)布!

    5月16日南京站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我們將在南京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 05-01 08:35 ?387次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 04-19 08:34 ?454次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 04-16 08:35 ?435次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深嵌入式軟件工程師農曉明老師為您講
    的頭像 發(fā)表于 03-27 11:36 ?842次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 03-27 08:34 ?544次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread成為恩智浦注冊合作伙伴,共同賦能工業(yè)與物聯(lián)網應用開發(fā)!

    前不久,恩智浦半導體加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現(xiàn)已成為恩智浦注冊合作伙伴。
    的頭像 發(fā)表于 03-15 09:15 ?878次閱讀

    恩智浦半導體正式加入RT-Thread全球合作伙伴計劃!

    前不久,恩智浦半導體正式加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現(xiàn)已成為恩智浦注冊合作伙伴(RT-Thread| 簡介合
    的頭像 發(fā)表于 03-14 10:40 ?634次閱讀
    恩智浦半導體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計劃!

    RT-Thread設備驅動開發(fā)指南基礎篇—以先楫bsp的hwtimer設備為例

    RT-Thread設備驅動開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-thread IO設備驅動開發(fā)方法,從三方面進行講解。
    的頭像 發(fā)表于 02-20 16:01 ?1736次閱讀
    <b class='flag-5'>RT-Thread</b>設備驅動開發(fā)指南基礎篇—以先楫bsp的hwtimer設備為例