西門子plc嵌入式係統常用的技巧
雖然許多充滿希望和夢想,但代碼的高可靠性的嵌入式係統工程師是不是一次性的過程。當一個應用程序被認定為“成功”,他們往往感到放鬆,但僅僅是因為在受控條件下運行的軟件,並不意味著它將運行明天或一年後。正常。從開發到實施和嚴格的檢測係統良好的發展周期,有可用於開發高可靠嵌入式係統的許多技術。
以下就是小編為大家介紹的7個技巧方法
技巧1——用已知值填充ROM 軟件進行開發工作人員管理往往是一個非常積極樂觀主義的人,隻要讓學生他們的代碼忠實地運行需要很長一段時間,就是通過這樣。西門子plc控製器似乎已經很少跳出應用研究程序設計空間並在非預期的代碼空間中執行它。但是,發生改變這種學習情況的可能性不小於緩衝區溢出或錯誤指針丟失引用。確實發生了!發生對於這種教學情況後係統的行為影響將是未定義的,因為丝瓜视频app污默認情況下內存空間為0xFF,或者不能因為人們通常不寫入內存區域,所以該值可能導致隻有上帝知道。 但是,有相當全麵的鏈接器或IDE技巧可用於幫助識別此類風險事件並從中得到恢複。要填充未使用的內存,可以有效使用存在許多國家不同的可能組合,但是中國如果要構建更可靠的係統,顯而易見的選擇是將ISR錯誤及時處理技術程序放在解決這些重要位置。如果這個係統之間出現安全問題能力並且處理器開始在程序空間環境之外執行代碼,它會觸發ISR並提供存儲處理器,寄存器和係統結構狀態的機會,然後再決定糾正操作。
技巧2——檢查CRC嵌入式工程師應用程序的***大好處之一是,丝瓜视频app污的IDE和工具鏈可以自動生成應用程序或內存校驗和(校驗和),以驗證基於此校驗和的應用程序是否完整。 有趣的是,在許多情況下,校驗和隻在程序代碼加載到設備時使用。 然而,如果將CRC或校驗和保留在內存中,則驗證應用程序在啟動時(甚至對於長時間運行的係統)仍然是確保不發生事故的極好方法。 編程應用程序現在幾乎不可能改變,但考慮到每年交付數十億的西門子plc控製器和潛在的惡劣工作環境,應用程序崩潰的可能性不是零。
技巧3——為了構建一個更可靠的係統,通過在啟動時執行內存檢查來確保您的硬件工作正常是很重要的。 畢竟,硬件會失靈。 幸運的是,軟件從來不會失敗,它隻是執行代碼來做它該做的事情,不管是對是錯。 驗證 ram 在啟動時沒有內部或外部問題是確保硬件按預期運行的好方法。 有許多不同的方法來執行 ram 檢查,但通常的方法是寫入一個已知的模式,在讀回之前等待一小段時間。 結果應該是你寫的東西。 事實上,在大多數情況下,內存檢查已經通過,這正是丝瓜视频app官网下载想要的。 然而,有一個非常小的機會,檢查不會通過,這提供了一個極好的機會,為係統指出一個硬件問題。
技巧4--使用許多嵌入式開發堆棧監視器,堆似乎是一個非常神秘的力量。當奇怪的事情開始發生,工程師終於難倒,他們開始想,也許正在發生的事情在堆棧中。其結果是,調整大小和盲堆的位置,等等。但這種錯誤通常是無關的堆棧,但它怎麽能這麽肯定?畢竟,在惡劣的情況下,有多少工程師實際上是一個堆棧大小分析?當執行代碼,應用程序,返回地址和存儲在堆棧中的其他信息所需的變量將會繼續。在堆棧這種機製導致生長在它的內存分配。然而,這種增長可能超過容量限製在編譯時被確定,導致對堆中的相鄰數據存儲區域的損壞。 確保棧的正常運行的一種方法是代碼的堆棧監控係統“健康”部分實現(有多少工程師呢?)。監視器堆以創建堆棧和“其他”的存儲區,並填充已知的比特模式之間的緩衝區。然後,監視器將繼續監控模式,如果有任何變化。如果此位模式被改變,這意味著堆棧增長太多,正要使係統進入地獄的黑暗!在這一點上,監視器可以記錄事件,係統狀態的發生,並為以後的任何其他有用的數據診斷問題。提供了堆疊顯示器的西門子plc控製器係統***實時操作係統(RTOS)或在一個存儲器保護單元(MPU)。可怕的是,這些功能默認關閉,或開發商往往故意關閉。在網絡上快速搜索顯示,許多人建議在實時操作係統堆棧關閉顯示器以節省56個字節的閃存空間。等等,這是不值得的努力!
技巧5 - 使用MPU 過去,很難在小型廉價的西門子plc控製器中找到存儲器保護單元(MPU),但這已經開始發生變化,MPU現在可從高端到低端西門子plc控製器提供,這些MPU為嵌入式軟件開發人員提供了大幅提高其固件穩健性的機會。 MPU已經逐漸耦合到操作係統以創建處理是獨立的存儲空間,或者任務可以執行其代碼而不必擔心被踩踏。如果發生某些事情,將取消不受控製的處理,並實施其他保護措施。請注意帶有該組件的西門子plc控製器,如果有的話,請利用此功能。
技巧6 - 建立一個強大的看門狗係統 當看門狗被啟用時,您經常會發現看門狗實現*(這是一個好的開始),但它也可以通過周期性定時器來完成。看門狗被清除;啟用計時器與程序中發生的任何事情完全隔離。使用看門狗的目的是幫助確保如果發生錯誤,看門狗將不會被清除,即當工作暫停時,係統將被強製執行硬件複位以進行恢複。即使係統出現故障,使用獨立於係統活動的計時器也可以使監視程序保持清晰。 嵌入式開發人員需要仔細思考並設計應用程序任務如何集成到監視係統中。例如,有一種技術允許在特定時間段內運行的每個任務表明他們可以成功完成任務。在這種情況下,看門狗不會被清除並強製重置。 對於可靠的係統,構建強大的監視係統非常重要。由於技術太多,很難在這些段落中完全覆蓋它們,但對於本主題,作者將在未來發表相關文章。
技巧7 - 避免易失存儲器分配 不習慣在資源受限環境中工作的工程師可能會嚐試使用其編程語言的功能,這允許他們使用易失性內存分配,畢竟,這是一種常用於計算器係統的技術,隻在必要時才分配內存。例如,在使用C開發時,工程師可能更喜歡使用malloc在堆上分配空間。有一個執行的操作,一旦完成,你可以使用free來返回分配的內存供堆使用。當它們發生時,如果應用程序要求空間但沒有所請求的空間,會發生什麽?使用易失性內存分配引起的問題非常複雜。妥善處理這些問題是一場噩夢!另一種方法是以靜態方式直接簡化存儲器的分配。例如,不是簡單地在程序中創建256字節長的緩衝區,而是通過malloc請求這個大小的內存緩衝區。可以在應用程序的整個生命周期內維護此分配的內存,而無需考慮堆或內存碎片問題。
結論:這些隻是開發人員可以開始構建更可靠的嵌入式係統的一些方法,所有這些技術都使設計人員能夠開發出更可靠的嵌入式係統的秘密。
標題:西門子plc嵌入式係統常用的技巧 地址:http://www.girlywedding.com/ask/3046.html