精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

軟件測試自身的完整性

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Colin Walls ? 2022-06-29 15:43 ? 次閱讀

所有重要的軟件都有錯誤。我不想稱它們為“錯誤”,因為這會使它們與需要為自己的錯誤負責的開發人員分離。顯然,設計良好的軟件可能會更少,而現代嵌入式軟件開發工具的應用可以將它們保持在最低限度。當然,具體的錯誤無法預測(否則它們可以被根除),但是可以識別某些類型的軟件問題,并且有可能在問題變成災難之前發現問題。

我會將此類軟件問題分為兩大類:

數據損壞

代碼循環

由于大量嵌入式代碼是用 C 編寫的,這意味著開發人員很可能會使用指針。小心使用,指針是該語言的一個強大功能,但它們也是最常見的程序員錯誤來源之一。指針使用的問題很難靜態識別,并且引入的錯誤可能會在代碼執行時以微妙的方式表現出來。有些事情,比如取消引用空指針很容易檢測到,因為它們通常會導致陷阱。只需要實現一個陷阱處理程序。其他的更難,因為指針最終可能指向任何地方——通常它會指向一個有效的地址,但不幸的是,它可能不是正確的地址。自測試代碼對此幾乎無能為力。然而,有兩種特殊但非常常見的,

不應發生堆棧溢出,因為應仔細確定堆棧分配,并在調試階段驗證其使用情況。但是,很可能會忽略不尋常的情況或使用不易測試的構造(如遞歸函數)。一個簡單的解決方案是在堆棧空間的任一端包含一個額外的詞——“保護詞”。這些預加載了特定值,由自檢任務(可能在后臺運行)監控。如果值更改,則違反了堆棧限制。應謹慎選擇該值。奇數是最好的,因為它不代表大多數處理器的有效地址。也許是 0x55555555。只要該值“不太可能”——例如不是 0x00000001 或 0xffffffff——就有 40 億比 1 的機會發生誤報。

在某些語言中,存在用于在數組邊界之外尋址的內置檢測,但這會引入運行時開銷,這可能是不受歡迎的。因此,這不是在 C 中實現的。此外,可以使用指針而不是運算符來訪問數組元素,因此可能會規避任何檢查。最好的方法是通過在數組末尾定位一個保護字并以與堆棧溢出檢查相同的方式進行監視來檢查緩沖區溢出類型的錯誤。

在這兩種情況下,當保護字被破壞時,這表明即將發生故障。堆棧或數組可能只是一個字就溢出或不足,因此還沒有造成真正的損害。定位錯誤訪問的原因比調試可能發生的隨機崩潰要容易得多。

代碼永遠不應陷入無限循環,但邏輯錯誤或未發生預期的外部事件可能會導致代碼掛起。當代碼在等待某事發生時,理想情況下應該有一個超時機制,這樣代碼就不會無限期地掛起。

在任何類型的多線程環境中——無論是 RTOS 還是帶有 ISR 的主線代碼——都可以實現“看門狗”機制。每個連續運行的任務(可能只是主線代碼)都需要每隔一段時間與看門狗任務(可能是計時器 ISR)“簽入”。如果發生超時,則需要采取措施。

那么,當檢測到堆棧溢出、數組綁定違例或掛起任務時該怎么辦呢?這取決于應用程序。可能只需要停止和重新啟動單個任務,但可能需要更激烈的操作:停止系統、發出某種警報或簡單地重置系統。選擇取決于許多因素,但從廣義上講,目標是為了比崩潰的系統更好的東西。

訂閱

審核編輯:郭婷

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

    關注

    5068

    文章

    19019

    瀏覽量

    303287
  • RTOS
    +關注

    關注

    21

    文章

    809

    瀏覽量

    119433
  • 代碼
    +關注

    關注

    30

    文章

    4748

    瀏覽量

    68355
收藏 人收藏

    評論

    相關推薦

    信號完整性和信號一致你還不知道嗎?#示波器 #信號完整性

    信號完整性
    安泰儀器維修
    發布于 :2024年09月25日 17:59:54

    高速電路中的信號完整性和電源完整性研究

    高速電路中的信號完整性和電源完整性研究
    發表于 09-25 14:44 ?0次下載

    高速高密度PCB信號完整性與電源完整性研究

    高速高密度PCB信號完整性與電源完整性研究
    發表于 09-25 14:43 ?5次下載

    高速PCB信號完整性設計與分析

    高速PCB信號完整性設計與分析
    發表于 09-21 11:51 ?0次下載

    高速PCB的信號完整性、電源完整性和電磁兼容研究

    電子發燒友網站提供《高速PCB的信號完整性、電源完整性和電磁兼容研究.pdf》資料免費下載
    發表于 09-19 17:37 ?0次下載

    把信號完整性設計落到實處

    ses信號完整性(SI)和電源完整性(PI)是PCB設計的關鍵,無論板速如何。仿真和指導原則雖有幫助,但難以覆蓋所有風險點。于博士的課程將系統化信號完整性設計,通過核心知識點和實際案例,提供清晰
    的頭像 發表于 08-30 12:29 ?302次閱讀
    把信號<b class='flag-5'>完整性</b>設計落到實處

    信號完整性與電源完整性-電源完整性分析

    電子發燒友網站提供《信號完整性與電源完整性-電源完整性分析.pdf》資料免費下載
    發表于 08-12 14:31 ?38次下載

    信號完整性與電源完整性-差分對的特性

    電子發燒友網站提供《信號完整性與電源完整性-差分對的特性.pdf》資料免費下載
    發表于 08-12 14:28 ?1次下載

    信號完整性與電源完整性-信號的串擾

    電子發燒友網站提供《信號完整性與電源完整性-信號的串擾.pdf》資料免費下載
    發表于 08-12 14:27 ?0次下載

    信號完整性與電源完整性 第一章 概論

    電子發燒友網站提供《信號完整性與電源完整性 第一章 概論.pdf》資料免費下載
    發表于 08-09 14:49 ?1次下載

    示波器探頭在電源完整性測量上的應用

    在電子設備的開發和維護過程中,電源完整性是一個至關重要的考量因素。電源完整性(Power Integrity, PI)涉及到電源分配網絡(PDN)的性能,確保電子設備能夠獲得穩定、干凈的電源供應
    的頭像 發表于 08-02 09:38 ?265次閱讀
    示波器探頭在電源<b class='flag-5'>完整性</b>測量上的應用

    搞定電源完整性,不如先研究PDN

    ? 在現代電子設備的設計中,一個關鍵的因素是電源完整性。電源完整性不僅影響設備的性能,還直接關系到設備的穩定性和可靠。作為電子設備的基礎,印刷電路板(PCB)的電源完整性設計尤為重要
    的頭像 發表于 06-13 18:16 ?2833次閱讀
    搞定電源<b class='flag-5'>完整性</b>,不如先研究PDN

    搞定電源完整性,不如先研究PDN!

    在現代電子設備的設計中,一個關鍵的因素是電源完整性。電源完整性不僅影響設備的性能,還直接關系到設備的穩定性和可靠。作為電子設備的基礎,印刷電路板(PCB)的電源完整性設計尤為重要。
    發表于 06-12 15:21

    什么是信號完整性

    在現代電子通信和數據處理系統中,信號完整性(Signal Integrity, SI)是一個至關重要的概念。它涉及信號在傳輸過程中的質量保持,對于確保系統性能和穩定性具有決定性的影響。本文將從信號完整性的定義、影響因素、測試方法
    的頭像 發表于 05-28 14:30 ?1059次閱讀

    構建系統思維:信號完整性,看這一篇就夠了!

    完整性的旅程中,以上為大家系統地梳理了其在硬件設計中的核心地位。從總線協議到PCB設計,從材料選擇到高速互連器件的理解,每一個環節都彰顯著信號完整性的重要。而測試測量與仿真
    發表于 03-05 17:16