色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

RTOS中的錯誤檢查機制

麥克泰技術 ? 來源:麥克泰技術 ? 2025-01-03 14:44 ? 次閱讀

嵌入式應用中,有可能發生各種各樣的錯誤,系統必須能夠檢測到這些錯誤并作出適當的響應。RTOS通常內置了一些錯誤檢查功能,用于檢測錯誤并向應用提供響應錯誤的方法。

錯誤分類

開發和運行RTOS應用程序中的錯誤可以分為兩類。第一類錯誤與RTOS的配置相關,這些錯誤可以在應用程序編譯之前通過完整性檢查檢測到,稱之為配置檢查。

在使用RTOS時,通過修改配置值以滿足應用程序的需要。應用程序開發人員可以在其約束范圍修改這些值,約束限制包括硬件約束或實現約束。通過RTOS代碼中的#ifdef或#error這樣的預處理器指令可以實現配置檢查。預處理檢查在代碼編譯之前進行,檢查是否存在配置錯誤。

第二類錯誤是在應用程序運行時發生,稱為運行時錯誤。根據運行時錯誤發生的不同原因,有不同的錯誤檢測策略。本文關注第二類錯誤檢查。

運行時錯誤

運行時錯誤的原因包括傳遞給API函數的非法參數,如空指針而非有效的任務句柄,或超出給定范圍的值,可以錯誤通過API函數使用之前的參數檢查檢測。

內存損壞導致的非法或錯誤行為是另一類運行時錯誤,可以使用內存檢查算法如校驗和或奇偶校驗位檢測這些錯誤。如果只需要檢查幾個非常重要的值,可以在不同的內存地址中存儲這些值的備份(或按位翻轉的值),并在訪問該值時比較它們,這些值被稱為鏡像值。

RTOS堆棧

RTOS中的每個任務都有自己的堆棧,用于存儲本地變量、返回地址、函數參數、返回值及其上下文。因此,內核必須檢查每個堆棧是否駐留在自己內存地址,否則一個任務的堆棧內容可能被其他任務破壞。已使用堆棧的大小會隨著應用的執行不斷變化,例如函數調用深度的增加。由于物理內存空間有限,堆棧溢出可能導致內存損壞。為了防止這種錯誤,在存儲任務上下文之前,RTOS內核必須檢查堆棧的可用空間。

功能單元

RTOS應用程序中的每個任務都是一個獨立的功能單元,擁有獨立的內存空間。任務訪問與另一項任務相關聯內存也可能導致內存破壞,必須加以預防。可以使用內存保護單元為任務定義內存區域和訪問權限。如果一個任務訪問了未被授權的內存,MPU將生成一個異常,該異常將由應用程序處理。

錯誤處理

檢測到錯誤后,必須以某種方式通過應用程序處理,如何通知應用程序取決于錯誤類型以及錯誤的嚴重程度。在API函數中發出錯誤信號的一種方法是通過其返回值中的狀態碼。應用代碼應該檢查所有API函數的返回值。根據錯誤代碼,應用程序可以恢復某些錯誤。如果出現不可恢復錯誤,應用程序應將系統轉換到安全狀態。RTOS還可以調用應用定義的錯誤處理函數,在錯誤發生時實現相應處理,此方法通常用于不可恢復的錯誤,錯誤處理程序尾部是一個無限循環,該函數不會返回。

SAFERTOS中的錯誤檢查

功能安全操作系統SAFERTOS對所有傳遞給API函數的參數執行錯誤檢查。API函數返回類型為portBaseType的狀態碼,其中包含錯誤碼。通過檢查狀態碼可以確定調用是否成功。預定義錯誤代碼的列表參見文件projdefs.h。

SAFERTOS通過調用vApplicationErrorHook實現錯誤處理,該函數由應用定義,在檢測到錯誤而沒有返回錯誤碼時,內核將調用該函數。

SAFERTOS實現的一些錯誤檢查示例如下:

?檢查API函數參數是否包含有效句柄和值。

? SAFERTOS中的堆棧是預先分配的字節數組,包含正在使用的堆棧標記,防止其被多個任務訪問。

?任務控制塊包含有關堆棧限位信息,內核可以在存儲任務上下文前檢查可用的堆棧空間,防止堆棧溢出。

?使用鏡像值檢查重要的系統參數,如堆頂地址,堆棧限制,FPU使用標記和TCB中的MPU設置。滴答值和SVC處理程序地址也保存了其鏡像值。

?如果硬件包含MPU,SAFERTOS默認啟用該功能,使用它來管理多個任務可能訪問的內存區域。

麥克泰技術是SAFERTOS在中國的代理商,具有超過20年嵌入式實時操作系統的市場、服務和培訓經驗,關于SAFERTOS的更多信息,歡迎咨詢麥克泰。

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

    關注

    5086

    文章

    19140

    瀏覽量

    305863
  • RTOS
    +關注

    關注

    22

    文章

    815

    瀏覽量

    119702
  • 應用程序
    +關注

    關注

    37

    文章

    3277

    瀏覽量

    57738

原文標題:RTOS中的錯誤檢查機制

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Rust語言中錯誤處理的機制

    可能的錯誤,實際運行仍然可能出現各種各樣的錯誤,比如文件不存在、網絡連接失敗等等。對于這些不可預測的錯誤,我們必須使用錯誤處理機制來進行處
    的頭像 發表于 09-19 14:54 ?1436次閱讀

    RTOS的多任務機制應用演示

    的執行路徑。深入理解和實現RTOS深入理解和實現RTOS_連載5_多任務機制應用.pdf (247.18 KB )
    發表于 02-17 23:30

    如何檢查代碼的潛在錯誤

    C:2012 和 MISRA C++ 2008 標準,以及 CWE 和 CERTC/C++涵蓋的數百個問題的檢查。使用方式簡單,生成全面而詳細的錯誤信息。C-RUN用于發現代碼運行過程存在
    發表于 06-03 09:35

    INtime RTOS內部的關鍵處理機制是什么

    INtime RTOS內部的關鍵處理機制是什么?INtime RTOS內部的關鍵處理機制有哪些相關的應用案例?
    發表于 09-29 06:28

    漢明(Hamming)錯誤修正檢查

    漢明(Hamming)錯誤修正檢查碼:在數位資料的傳輸難免會發生錯誤,以某些媒體來說(如無線電、網際網路上資料的傳輸、通訊資料的傳輸、及其它相關的資料傳輸),較容易產生突
    發表于 11-17 18:04 ?15次下載

    PCIe掃盲—PCIe錯誤檢測機制的詳細資料概述

    PCIe總線錯誤檢測囊括了鏈路(Link)上的錯誤以及包傳遞過程錯誤,如下圖所示。用戶設計的應用程序層
    的頭像 發表于 08-18 11:05 ?1.5w次閱讀

    Altium顯示DRC錯誤檢查方法

    Altium有時候總是顯示DRC錯誤,不知道哪里出了問題,下面小編帶大家學習一下常見的DRC檢查有哪些?
    的頭像 發表于 09-23 12:27 ?3.4w次閱讀

    Modbus協議的介紹和應用及錯誤檢查方法的資料說明

    本文檔的主要內容詳細介紹的是Modbus協議的介紹和應用及錯誤檢查方法的資料說明包括了:1.介紹 Modbus 協議介紹 2. 兩種串行傳輸模式 3. 信息幀 4. 錯誤檢查方法
    發表于 05-10 08:00 ?2次下載
    Modbus協議的介紹和應用及<b class='flag-5'>錯誤</b><b class='flag-5'>檢查</b>方法的資料說明

    PCIe錯誤報告的兩種機制詳解

    機制是PCIe設備必需支持的一種錯誤報告機制,同時設備會定義最小的錯誤報告請求。應該是通過配置Device Control和Command寄存器做到通知其他設備產生了
    的頭像 發表于 10-23 11:14 ?2.6w次閱讀
    PCIe<b class='flag-5'>錯誤</b>報告的兩種<b class='flag-5'>機制</b>詳解

    通過各種指令的EN/ENO機制,可以檢測運行錯誤

    為該塊互連了 EN/ENO 機制。如果執行期間沒有任何錯誤,則 ENO 使能輸出的信號狀態將為“1”。如果執行期間發生錯誤,則 ENO 使能輸出的信號狀態將為“0”。
    的頭像 發表于 03-02 14:36 ?4831次閱讀

    哪些工具可以可以發現基于RTOS的程序錯誤

    、饑餓、死鎖、優先級反轉等bug。 一些專門設計的工具,可以幫助基于RTOS的程序開發人員發現一些難以發現的錯誤RTOS是什么? 實時操作系統(RTOS或實時內核)是有效地管理CP
    的頭像 發表于 04-12 10:46 ?1954次閱讀
    哪些工具可以可以發現基于<b class='flag-5'>RTOS</b>的程序<b class='flag-5'>錯誤</b>?

    如何處理RTOS錯誤和超時

      在典型系統,許多路徑流經 RTOS,因此它處于檢測和處理錯誤的良好位置。一般來說,函數的返回值,尤其是 RTOS 服務,不應該在沒有檢查
    的頭像 發表于 06-29 09:46 ?3229次閱讀
    如何處理<b class='flag-5'>RTOS</b><b class='flag-5'>錯誤</b>和超時

    使用專門的RTOS工具發現實時錯誤

    數值。包含內置 RTOS 感知功能的調試器也很常見,但通常需要您暫停應用程序以檢查 RTOS 的狀態(對于調試實時系統不太實用)。
    的頭像 發表于 06-30 10:15 ?968次閱讀
    使用專門的<b class='flag-5'>RTOS</b>工具發現實時<b class='flag-5'>錯誤</b>

    如何使用數據包錯誤檢查來保護您的溫度讀數

    “數據包錯誤檢查”(PEC)是一種在數據傳輸過程中廣泛使用的錯誤檢測機制。Maxim集成產品采用PEC模式,以提高數據傳輸的可靠性。本應用筆記討論了PEC字節在具有1線和2線接口的溫度
    的頭像 發表于 02-13 10:48 ?1844次閱讀
    如何使用數據包<b class='flag-5'>錯誤</b><b class='flag-5'>檢查</b>來保護您的溫度讀數

    RTOS消息隊列的應用

    基于RTOS的應用,通常使用隊列機制實現任務間的數據交互,一個應用程序可以有任意數量的消息隊列,每個消息隊列都有自己的用途。
    發表于 05-29 10:49 ?638次閱讀
    <b class='flag-5'>RTOS</b>消息隊列的應用
    主站蜘蛛池模板: 亚洲性夜夜色综合网站| 亚洲午夜精品A片久久软件| 无码中文字幕av免费放| 91麻精品国产91久久久久| 含羞草在线| 无限资源日本2019版免费| 大胆国模一区二区三区伊人| 免费国产足恋网站| 中文字幕精品在线视频| 久见久热 这里只有精品| 小黄鸭YELLOWDUCK7596| 国产精品亚洲AV毛片一区二区三区| 日韩欧美一区二区三区在线视频| 潮 喷女王cytherea| 柠檬福利精品视频导航| 97视频免费在线观看| 暖暖 免费 日本 高清 在线1| av天堂电影网在线观看| 秋霞成人午夜鲁丝一区二区三区| 爆乳啪啪无码成人二区亚洲欧美| 强奸美女老师| 国产超碰人人爱被IOS解锁| 丝瓜涩涩屋黄瓜香蕉丝瓜| 国产欧美日韩网站| 野花日本高清在线观看免费吗| 久久精品亚洲视频| 99久久婷婷国产麻豆精品电影| 人妻精品久久无码专区| 成人免费在线观看| 偷上邻居熟睡少妇| 黑人强伦姧人妻日韩那庞大的 | 稚嫩挤奶h调教h| 伦理79电影网在线观看| adc免费观看| 首页_亚洲AV色老汉影院| 国产一区二区高清| 中文字幕久久久| 日本福利片午夜免费观着| 国产精品自在拍在线播放| 影音先锋 av天堂| 青青在线视版在线播放|