1. gzyueqian
      13352868059

      開發可靠固件的3個常被忽視的技術

      更新時間: 2024-05-27 10:14:09來源: 粵嵌教育瀏覽量:909

      可靠的軟件是指在指定的時間內,在指定的條件下持續執行其所需功能的軟件類別??煽康?/span>固件通常具有正確性、健壯性、容錯性和一致的行為等特征。可能會認為可靠的軟件是不想執行系統重置來使其再次工作的軟件。比如飛行控制器、剎車系統、醫療設備等。這篇文章將探討開發可靠固件的三種通常被忽視的技術。

       

      技巧1使用內置糾錯碼(ECC)外設

      大多數微控制器都有一個開發人員容易忽略的外設,即ECCECC主要用于易出現位錯誤的存儲器類型,如閃存或SRAM。許多ECC外設將連接到內部和外部存儲器,例如通過QSPI連接的存儲器。

       

      ECC向存儲的數據添加額外的位(奇偶校驗位)??梢韵胂?,這意味著要使用ECC,將需要額外的內存。如果ECC外設,通常不必擔心CPU開銷,因為這些位是使用硬件加速算法計算的,幾乎不需要CPU干預?;刈x數據時,ECC邏輯會再次計算奇偶校驗位,并將它們與存儲的奇偶校驗位進行比較。如果不匹配,則意味著數據中存在錯誤。

       

      ECC可以檢測兩種類型的錯誤:單位錯誤和多位錯誤。當檢測到一位錯誤時,可以自動糾正。ECC邏輯會在CPU或其他外設使用數據之前自動糾正數據??梢詸z測到多位錯誤,但無法糾正。在這種情況下,ECC邏輯可以向系統發出錯誤情況信號,然后系統可以采取適當的措施,例如標記錯誤或啟動系統重置。

       

      開發人員經常忽略ECC,因為部署在地面上的設備比在軌道上或更高海拔的設備發生比特翻轉和單粒子翻轉的概率更低。當在實驗臺上沒有看到問題時,很容易假設系統不會經歷這些行為。ECC也不會出現在大多數配置軟件中,因為它通常通過對微控制器配置寄存器中的單個位進行編程來啟用。設置通常保留默認值。

      在可靠性至關重要的應用中,例如醫療、汽車或航天系統中,使用ECC可能是實現所需可靠性水平的整體策略的一部分。

       

      技巧2:設計強大的看門狗解決方案

      對于可靠的固件來說,看門狗是一種經常被忽視的技術嗎?嗯,它被廣泛忽視了,因為它是團隊經常實施的最后一件事。最后一刻的實現通常考慮不周,可能無法滿足系統的需求。團隊經常在創建任務時打開內部看門狗定時器,該任務會定期觸發定時器,并表示他們有看門狗解決方案。事實并非如此。

       

      可靠的看門狗解決方案需要與正在開發的軟件緊密集成。它需要一個總體策略來跟蹤內存、任務執行、應用程序代碼和驅動程序。可靠系統中的看門狗會小心保護系統并查找問題。如果發現問題,它可能會重新啟動系統或有問題的線程或進程。有無數種方法可以根據所需的可靠性水平在系統中實現看門狗。

       

      在某些系統中,看門狗可能是多層的。它可以利用內部看門狗定時器、監視軟件行為的線程和監視整個系統的外部看門狗。這些系統的可靠性很高,但看門狗的復雜性也很高。最終目標是設計一個看門狗,安全可靠地檢測問題并恢復系統。

       

      技巧3:使用斷言

      CC++中,斷言檢查程序中的條件或假設,如果不滿足這些條件,就停止程序的執行。斷言有助于調試并確保的代碼按預期運行。CC++中有兩種類型的斷言:運行時斷言和靜態斷言。

       

      運行時斷言是使用cassert(C++)assert.h(c++)頭文件提供的assert宏實現的。assert宏將表達式作為參數。假設表達式被評估為假(即,不滿足條件)。在這種情況下,它會觸發一個斷言失敗,通常會導致程序陷入一個無限循環,并給出失敗條件的詳細信息。

       

      靜態斷言對于在編譯時捕捉潛在問題特別有用,而運行時斷言用于運行時調試和驗證。如果想編寫更可靠的軟件,使用這些斷言可以幫助發現潛在的問題,否則可能會被忽視。

       

      結論

      編寫可靠的固件是許多嵌入式系統專業人員的一項重要技能。嵌入式系統通常被部署到現場,并期望在不被重置的情況下正確工作數周或數月。今天討論的技術對于開發可靠的軟件來說是必不可少的。如果使用得當,可以提高系統的可靠性。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 孕妇动漫精品国产一区二区三区 | 思思热免费在线视频观看 | 亚洲欧美另类久久久精品 | 亚洲熟女乱综合一区二区 | 午夜精品久久久久久久99热 | 亚洲一区二区欧美精品 |