成 人av 在 线观看

    1. <ol id="62727"><output id="62727"></output></ol>
      <acronym id="62727"></acronym>
      <strong id="62727"></strong>
    2. 中文 EN

      深圳市諄勤智能科技

      18929377862

      在線留言

      X
      公司名稱
      電話
      郵箱
      經營范圍
      地址
      選擇 原廠商 一級代理商
      產品介紹

      意見反饋

      X
      公司名稱
      電話
      郵箱
      地址
      問題摘要
      問題描述

      行業動態

      您當前位置: 首頁 > 新聞中心> 行業動態

      嵌入式主板開發有哪些小技巧?

      深圳市諄勤智能科技 人氣:207 發表時間:2020-09-24

        成為正式的嵌入式主板開發工程師。這是一個困難的過程,需要開發人員維護和管理系統的每一個位和字節。開發高可靠性嵌入式系統的技術有很多,從規范完善的開發周期到嚴格的實施和系統檢查。今天諄勤智能給大家介紹7個易操作且可以長久使用的技巧,它們對于確保系統更加可靠地運行并捕獲異常行為大有幫助。

       

      嵌入式主板

        技巧一、用已知值填充ROM

        軟件開發人員總是很樂觀的人,只要他們的代碼長期忠實運行,僅此而已。微控制器跳出應用程序空間并在意外的代碼空間中執行似乎非常罕見。然而,發生這種情況的可能性不亞于緩存溢出或錯誤指針丟失引用。它確實發生了!這種情況發生后,系統行為會不確定,因為默認的內存空間是0xFF,或者因為內存區域通常是未寫的,所以里面的值可能只有上帝知道。

        然而,相當完整的鏈接器或集成開發環境技能可以用來幫助識別這樣的事件并從中恢復系統。訣竅是使用填充命令用已知的位模式填充未使用的只讀存儲器。有許多不同的可能組合來填充未使用的內存,但是如果您想構建一個更可靠的系統,最明顯的選擇是在這些位置放置ISR故障處理器。如果系統出現問題,處理器開始在程序空間之外執行代碼,它將觸發ISR,并在決定糾正措施之前提供存儲處理器、寄存器和系統狀態的機會。

       

        技巧二、檢查應用程序的CRC

        對于嵌入式工程師來說,一個很大的好處就是我們的IDE和工具鏈可以自動生成應用或者內存空間校驗和,從而根據這個校驗和來驗證應用是否完好。有趣的是,在許多情況下,校驗和僅在程序代碼加載到設備中時使用。

        但是,如果內存中保留了CRC或校驗和,那么在啟動時驗證應用程序是否仍然完好無損(甚至定期驗證長時間運行的系統)是確保不會發生意外情況的絕佳方式?,F在,一個編程的應用程序改變的概率很小,但是考慮到每年交付的數十億個微控制器和可能的惡劣工作環境,應用程序崩潰的概率不是零。更可能的是,系統中的缺陷可能導致扇區中的閃存寫入或閃存擦除,從而破壞應用程序的完整性。

       

        技巧三、在啟動時執行RAM檢查

        為了構建一個更加可靠和堅固的系統,保證系統硬件正常工作是非常重要的。畢竟硬件會出問題。幸運的是,軟件永遠不會失敗,軟件只會做代碼想讓它做的事,不管是對還是錯。通過在啟動時驗證內存內部或外部沒有問題,這是確保硬件按預期工作的好方法。

        有許多不同的方法來執行內存檢查,但常見的方法是編寫一個已知的模式,然后等待一段時間再讀取它。結果應該是你讀的就是你寫的。事實是,在大多數情況下,內存檢查通過了,這是我們想要的。然而,檢查失敗的可能性非常小,這為系統指出硬件問題提供了一個極好的機會。

       

        技巧四、使用堆棧監視器

        對于很多嵌入式開發人員來說,棧似乎是一種神秘的力量。當奇怪的事情開始發生時,工程師們終于被難倒了,他們開始想,也許堆棧里發生了什么。結果就是盲目調整棧的大小和位置等等。但是錯誤往往是與棧無關的,但是你怎么能這么肯定呢?畢竟,有多少工程師實際執行過最壞情況下的堆棧大小分析?

        堆棧大小是在編譯時靜態分配的,但堆棧是動態使用的。隨著代碼的執行,應用程序所需的變量、返回的地址和其他信息會持續存儲在堆棧中。這種機制導致堆棧在其分配的內存中增長。但是,這種增長有時會超過編譯時確定的容量限制,導致堆棧破壞相鄰內存區域中的數據。

        絕對確保堆棧正常工作的一種方法是將堆棧監視器作為系統“健康護理”代碼的一部分來實現(有多少工程師會這樣做?).堆棧監視器在堆棧和“其他”存儲區之間創建一個緩沖區,并用已知的位模式填充它。然后顯示器會不斷地監控圖案是否有變化。如果位模式變了,說明棧長太大,會把系統推向黑暗地獄!此時,監視器可以記錄事件的發生、系統狀態和任何其他有用的數據,以便將來診斷問題。

        大多數實時操作系統(RTOS)或實現內存保護單元(微處理器)的微控制器系統都提供堆棧監視器??膳碌氖?,這些功能都是默認關閉的,或者經常是開發人員故意關閉的。網上快速搜索發現,很多人建議關閉實時操作系統中的堆棧監控,以節省56字節的閃存空間,這是得不償失的!

       

        技巧五、避免易失存儲器分配

        不習慣在資源有限的環境中工作的工程師可能會嘗試使用他們的編程語言的功能,這允許他們使用易失性內存分配。畢竟,這是計算器系統中經常使用的一種技術,只有在必要時才會分配內存。例如,在用C語言開發時,工程師可能傾向于使用malloc來分配堆上的空間。有一個操作將被執行。一旦完成,free可以用來返回分配給堆使用的內存。

        在資源受限的系統中,這可能是一場災難!使用易失性內存分配的一個問題是,錯誤或不適當的技術可能會導致內存泄漏或內存碎片。如果出現這些問題,大多數嵌入式系統沒有資源或知識來監控堆或正確處理它。當它們發生時,如果應用程序請求空間,但請求的空間不可用,會發生什么?

        使用易失性內存分配帶來的問題非常復雜,妥善處理這些問題可以說是一場噩夢!另一種方法是直接以靜態方式簡化內存分配。例如,只需在程序中創建一個256字節大小的緩沖區,而不是通過malloc請求一個這樣大小的內存緩沖區。這種分配的內存可以在應用程序的整個生命周期中得到維護,而不用擔心堆或內存碎片。

       

        技巧六、建立一個強大的看門狗系統

        您經常會發現,最受歡迎的看門狗實現之一是啟用看門狗,但它也可以通過定期計時器清除;定時器的激活與程序中發生的任何情況完全隔離。使用看門狗的目的是幫助確保如果出現錯誤,看門狗不會被清除,即當工作暫停時,系統將被迫執行硬件復位以進行恢復。使用獨立于系統活動的定時器可以保持看門狗清零,即使系統出現故障。

        嵌入式開發人員需要仔細考慮和設計如何將應用任務集成到看門狗系統中。例如,可能有一種技術允許在某個時間段內運行的每個任務表明它們可以成功完成任務。在這種情況下,看門狗不會被清零,而是被強制復位。有一些先進的技術,例如使用外部看門狗處理器,可以用來監控主處理器的行為,反之亦然。對于一個可靠的系統來說,構建一個強大的看門狗系統非常重要。

       

        技巧七、使用MPU

        以前在小而便宜的微控制器中很難找到內存保護單元(MPU),但這種情況已經開始改變?,F在從高端到低端的微控制器都有了MPU,而這些MPU為嵌入式軟件開發人員提供了極大提高固件健壯性的機會。

        MPU已經逐漸與操作系統耦合,從而建立一個處理分離的內存空間,或者任務可以執行其代碼而不用擔心被踩。如果真的發生了什么,不受控制的治療將被取消,并實施其他保護措施。請注意有這個組件的微控制器,如果有,請多利用這個功能。

       

        以上嵌入式工控機主板開發教程可以幫助開發者獲得更好的嵌入式系統方式。這些技術都是設計人員開發可靠性更高的嵌入式系統的秘訣。

      成 人av 在 线观看

      1. <ol id="62727"><output id="62727"></output></ol>
        <acronym id="62727"></acronym>
        <strong id="62727"></strong>