成為正式的嵌入式主板開發工程師。這是一個困難的過程,需要開發人員維護和管理係統的每一個位和字節。開發高可靠性嵌入式係統的技術有很多,從規範完善的開發周期到嚴格的實施和係統檢查。今天樱桃视频在线直播观看免费智能給大家介紹7個易操作且可以長久使用的技巧,它們對於確保係統更加可靠地運行並捕獲異常行為大有幫助。
技巧一、用已知值填充ROM
軟件開發人員總是很樂觀的人,隻要他們的代碼長期忠實運行,僅此而已。微控製器跳出應用程序空間並在意外的代碼空間中執行似乎非常罕見。然而,發生這種情況的可能性不亞於緩存溢出或錯誤指針丟失引用。它確實發生了!這種情況發生後,係統行為會不確定,因為默認的內存空間是0xFF,或者因為內存區域通常是未寫的,所以裏麵的值可能隻有上帝知道。
然而,相當完整的鏈接器或集成開發環境技能可以用來幫助識別這樣的事件並從中恢複係統。訣竅是使用填充命令用已知的位模式填充未使用的隻讀存儲器。有許多不同的可能組合來填充未使用的內存,但是如果您想構建一個更可靠的係統,最明顯的選擇是在這些位置放置ISR故障處理器。如果係統出現問題,處理器開始在程序空間之外執行代碼,它將觸發ISR,並在決定糾正措施之前提供存儲處理器、寄存器和係統狀態的機會。
技巧二、檢查應用程序的CRC
對於嵌入式工程師來說,一個很大的好處就是樱桃视频在线直播观看免费的IDE和工具鏈可以自動生成應用或者內存空間校驗和,從而根據這個校驗和來驗證應用是否完好。有趣的是,在許多情況下,校驗和僅在程序代碼加載到設備中時使用。
但是,如果內存中保留了CRC或校驗和,那麽在啟動時驗證應用程序是否仍然完好無損(甚至定期驗證長時間運行的係統)是確保不會發生意外情況的絕佳方式。現在,一個編程的應用程序改變的概率很小,但是考慮到每年交付的數十億個微控製器和可能的惡劣工作環境,應用程序崩潰的概率不是零。更可能的是,係統中的缺陷可能導致扇區中的閃存寫入或閃存擦除,從而破壞應用程序的完整性。
技巧三、在啟動時執行RAM檢查
為了構建一個更加可靠和堅固的係統,保證係統硬件正常工作是非常重要的。畢竟硬件會出問題。幸運的是,軟件永遠不會失敗,軟件隻會做代碼想讓它做的事,不管是對還是錯。通過在啟動時驗證內存內部或外部沒有問題,這是確保硬件按預期工作的好方法。
有許多不同的方法來執行內存檢查,但常見的方法是編寫一個已知的模式,然後等待一段時間再讀取它。結果應該是你讀的就是你寫的。事實是,在大多數情況下,內存檢查通過了,這是樱桃视频在线直播观看免费想要的。然而,檢查失敗的可能性非常小,這為係統指出硬件問題提供了一個極好的機會。
技巧四、使用堆棧監視器
對於很多嵌入式開發人員來說,棧似乎是一種神秘的力量。當奇怪的事情開始發生時,工程師們終於被難倒了,他們開始想,也許堆棧裏發生了什麽。結果就是盲目調整棧的大小和位置等等。但是錯誤往往是與棧無關的,但是你怎麽能這麽肯定呢?畢竟,有多少工程師實際執行過最壞情況下的堆棧大小分析?
堆棧大小是在編譯時靜態分配的,但堆棧是動態使用的。隨著代碼的執行,應用程序所需的變量、返回的地址和其他信息會持續存儲在堆棧中。這種機製導致堆棧在其分配的內存中增長。但是,這種增長有時會超過編譯時確定的容量限製,導致堆棧破壞相鄰內存區域中的數據。
絕對確保堆棧正常工作的一種方法是將堆棧監視器作為係統“健康護理”代碼的一部分來實現(有多少工程師會這樣做?).堆棧監視器在堆棧和“其他”存儲區之間創建一個緩衝區,並用已知的位模式填充它。然後顯示器會不斷地監控圖案是否有變化。如果位模式變了,說明棧長太大,會把係統推向黑暗地獄!此時,監視器可以記錄事件的發生、係統狀態和任何其他有用的數據,以便將來診斷問題。
大多數實時操作係統(RTOS)或實現內存保護單元(微處理器)的微控製器係統都提供堆棧監視器。可怕的是,這些功能都是默認關閉的,或者經常是開發人員故意關閉的。網上快速搜索發現,很多人建議關閉實時操作係統中的堆棧監控,以節省56字節的閃存空間,這是得不償失的!
技巧五、避免易失存儲器分配
不習慣在資源有限的環境中工作的工程師可能會嚐試使用他們的編程語言的功能,這允許他們使用易失性內存分配。畢竟,這是計算器係統中經常使用的一種技術,隻有在必要時才會分配內存。例如,在用C語言開發時,工程師可能傾向於使用malloc來分配堆上的空間。有一個操作將被執行。一旦完成,free可以用來返回分配給堆使用的內存。
在資源受限的係統中,這可能是一場災難!使用易失性內存分配的一個問題是,錯誤或不適當的技術可能會導致內存泄漏或內存碎片。如果出現這些問題,大多數嵌入式係統沒有資源或知識來監控堆或正確處理它。當它們發生時,如果應用程序請求空間,但請求的空間不可用,會發生什麽?
使用易失性內存分配帶來的問題非常複雜,妥善處理這些問題可以說是一場噩夢!另一種方法是直接以靜態方式簡化內存分配。例如,隻需在程序中創建一個256字節大小的緩衝區,而不是通過malloc請求一個這樣大小的內存緩衝區。這種分配的內存可以在應用程序的整個生命周期中得到維護,而不用擔心堆或內存碎片。
技巧六、建立一個強大的看門狗係統
您經常會發現,最受歡迎的看門狗實現之一是啟用看門狗,但它也可以通過定期計時器清除;定時器的激活與程序中發生的任何情況完全隔離。使用看門狗的目的是幫助確保如果出現錯誤,看門狗不會被清除,即當工作暫停時,係統將被迫執行硬件複位以進行恢複。使用獨立於係統活動的定時器可以保持看門狗清零,即使係統出現故障。
嵌入式開發人員需要仔細考慮和設計如何將應用任務集成到看門狗係統中。例如,可能有一種技術允許在某個時間段內運行的每個任務表明它們可以成功完成任務。在這種情況下,看門狗不會被清零,而是被強製複位。有一些先進的技術,例如使用外部看門狗處理器,可以用來監控主處理器的行為,反之亦然。對於一個可靠的係統來說,構建一個強大的看門狗係統非常重要。
技巧七、使用MPU
以前在小而便宜的微控製器中很難找到內存保護單元(MPU),但這種情況已經開始改變。現在從高端到低端的微控製器都有了MPU,而這些MPU為嵌入式軟件開發人員提供了極大提高固件健壯性的機會。
MPU已經逐漸與操作係統耦合,從而建立一個處理分離的內存空間,或者任務可以執行其代碼而不用擔心被踩。如果真的發生了什麽,不受控製的治療將被取消,並實施其他保護措施。請注意有這個組件的微控製器,如果有,請多利用這個功能。
以上嵌入式樱桃视频免费观看機主板開發教程可以幫助開發者獲得更好的嵌入式係統方式。這些技術都是設計人員開發可靠性更高的嵌入式係統的秘訣。
工業控製係統一直以來都是許多行業中不可或缺的一部分,而人工智能和機器視...
2023-11-06 查看內容樱桃视频免费观看機作為工業自動化的核心設備,正迎接著產業升級的巨大需求。本文將從市...
2023-10-10 查看內容物聯網技術的迅猛發展,樱桃视频免费观看機被賦予了更廣泛的應用場景和更高的智能化要求...
2023-09-05 查看內容樱桃视频免费观看機在能源行業中發揮著重要的作用,推動能源生產、傳輸和管理的創新發展...
2023-08-11 查看內容