您現在的位置是:首頁 > 攝影首頁攝影

嵌入式開發:成功模擬嵌入式軟體的 3 個技巧

由 學習嵌入式 發表于 攝影2022-12-17
簡介模擬嵌入式軟體技巧 #1 – 專注於業務邏輯嵌入式開發人員需要認識到,他們產品的業務邏輯,即區分他們產品的秘訣,可以編寫成獨立於硬體

演算法怎麼嵌入硬體

作為嵌入式軟體工程師,很容易認為產品的所有軟體都依賴於硬體。大多數嵌入式開發人員都希望立即獲得開發板並開始編寫軟體,這不一定是錯的,它只是熟悉,讓我們瞭解與硬體相關的複雜性和問題。但事實是,如果我們正確設計了應用程式程式碼,我們可以在沒有底層硬體的情況下模擬和測試大部分應用程式程式碼。,模擬和除錯脫靶硬體更加高效和經濟。 在今天的文章中,我們將探討成功模擬嵌入式軟體的三個技巧。

模擬嵌入式軟體技巧 #1 – 專注於業務邏輯

嵌入式開發人員需要認識到,他們產品的業務邏輯,即區分他們產品的秘訣,可以編寫成獨立於硬體。無需目標硬體即可在 PC 環境中模擬和測試與硬體無關的程式碼。

開發人員不需要為他們的目標交叉編譯業務邏輯,而是可以使用 GCC 或 g++ 編譯它。然後可以使用模擬輸入和輸出在計算機上執行該應用程式。模擬有助於顯著加快開發速度,並在硬體團隊交付原型板之前證明這一點。

我通常發現這對於直接訪問 Linux 風格終端的 Linux 和 Mac 開發人員來說更容易。 Windows 開發人員可能會發現他們需要安裝 Cygwin 或 Mingw,這兩者的設定都很簡單。然而,有傳言說新版本的 Windows 將很快,或者可能已經發布,帶有基於 Linux 的終端。

模擬嵌入式軟體技巧 #2 – 明智地構建軟體

前面我提到過設計合理的軟體可以在 PC 上進行模擬或測試。 “設計合理”的軟體是一種軟體,其架構旨在最大限度地減少依賴關係,並設計為具有獨立元件的靈活性。仔細的軟體架構開發允許在整合到產品之前單獨測試元件和模組。事實上,在 PC 上執行大部分業務邏輯測試對我來說並不少見。 PC 環境使我們能夠快速測試輸入、輸出、繪圖資料,並測試難以達到目標的極端情況。

通常情況下,嵌入式開發人員會在硬體上玩轉軟體數週,試圖找出可能導致問題的原因。 在這種情況下,團隊正在賭博,希望在任何合理的時間內找到解決方案。 由於軟體的設計和實現方式,我能夠提取演算法,人們認為它依賴於硬體,然後將其包裝在我在 PC 上執行的測試程式碼中。 然後我能夠繪製輸出並將其與預期結果進行比較。 這允許開發人員在受控和隔離的環境中對部分軟體執行完整性檢查。 如果匹配,則演算法整合到嵌入式處理器的方式存在問題。 如果不匹配,那麼目標實現可能需要一些調整。

嵌入式開發:成功模擬嵌入式軟體的 3 個技巧

模擬嵌入式軟體技巧 #32 – 利用 Matlab 等工具

Matlab 可以讓團隊模擬狀態機、演算法並深入研究系統的行為方式。事實上,在許多汽車和航空航天應用中,團隊甚至會讓 Matlab 為他們生成嵌入式程式碼,然後團隊只需要維護他們的模型!將嵌入式程式碼模擬與 Matlab 輸出進行比較,然後提供詳細資訊以顯示演算法或嵌入式系統中是否存在問題。

模擬還可以幫助嵌入式開發人員瞭解整個系統。有時我們盲目地實現演算法,卻沒有真正瞭解它們的工作原理、輸入的真正含義以及這些輸入的輸出應該是什麼樣子。有時我們可以僥倖逃脫,但如果出現問題,開發人員瞭解細節通常至關重要。模擬可以幫助解決這個問題,特別是如果包括所有旋鈕和刻度盤。開發人員可以增加引數 A 並檢視它如何更改輸出。然後可以調整引數 B 等等,直到他們完全理解系統是如何工作的。在很多情況下,問題的關鍵不是演算法,而是它與實時行為的互動。

嵌入式軟體開發人員不必依賴硬體即可完成工作。當然,當硬體可用時,它是很棒的,它可以讓開發人員透過硬體的障礙。 不過,歸根結底,可以模擬和測試許多演算法和應用程式特性。 事實上,這種模擬可以幫助證明系統正在以應有的方式工作,或者幫助解決可能需要相當長的除錯時間的細微差別。嵌入式開發人員需要在他們的技巧包中新增off-target模擬,如果他們還沒有這樣做的話。