1. gzyueqian
      13352868059

      嵌入式開發(fā):硬件抽象層(HAL)改變項目的5種令人驚訝的方式

      更新時間: 2023-09-08 15:43:05來源: 粵嵌教育瀏覽量:9203

        嵌入式軟件開發(fā)人員通常會避免硬件抽象層(HAL),聲稱它們會降低性能并增加代碼復(fù)雜性。不幸的是,當(dāng)嵌入式開發(fā)人員采用HAL時,供應(yīng)商提供的HAL通常不會抽象硬件,并且仍然保證與硬件的緊密耦合。畢竟,一個真正的抽象HAL將使開發(fā)人員能夠輕而易舉地使用任何供應(yīng)商。然而,使用或開發(fā)自己的HAL會通過多種方式影響你的軟件。在這篇文章中,我們將探索HAL可以改變你的軟件項目的五種令人驚訝的方式,并釋放你沒有意識到的速度和價值。

        方式1:硬件獨(dú)立性

        開發(fā)人員通常有一個最喜歡的微控制器供應(yīng)商。通常是你第一次編寫嵌入式軟件的供應(yīng)商或者你熟悉的供應(yīng)商。

        使用一個好的HAL將允許你編寫更易移植和可重用的獨(dú)立于硬件的應(yīng)用程序代碼。對于許多嵌入式團(tuán)隊來說,這是一個巨大的轉(zhuǎn)變。例如,你可以使用供應(yīng)商A運(yùn)行代碼,并通過更改版本中的標(biāo)志,為供應(yīng)商b編譯代碼。硬件獨(dú)立性使你可以靈活地使用任何你想要的硬件,并消除你對微控制器供應(yīng)商的依賴。

        如果你喜歡使用供應(yīng)商提供的HAL,只要你回顧幾個基本特性,這是可以的。首先,HAL必須是一個真正的HAL。這意味著你必須有一個定義好的接口來打破對硬件的依賴。接下來,HAL應(yīng)該與實現(xiàn)分開定義。最后,你應(yīng)該能夠快速換出接口調(diào)用的函數(shù)。如果你沒有這三樣?xùn)|西,那么你就沒有硬件獨(dú)立性;你有硬件依賴!

        方式2:啟用自動化單元和集成測試

        釋放價值和轉(zhuǎn)變軟件開發(fā)的關(guān)鍵從使用HAL開始。HAL進(jìn)一步支持額外的轉(zhuǎn)換,比如支持自動化單元和集成測試。嵌入式開發(fā)人員經(jīng)常糾結(jié)于單元測試,因為他們編寫的代碼會接觸到硬件。這意味著你必須在微控制器上運(yùn)行你的測試。當(dāng)你有了一個合適的HAL,你仍然需要在目標(biāo)上測試你的驅(qū)動,但是你所有的應(yīng)用程序代碼突然被釋放了!你的應(yīng)用程序代碼現(xiàn)在可以在獨(dú)立于硬件的主機(jī)上進(jìn)行單元和集成測試。

        方式3:執(zhí)行偏離目標(biāo)模擬的能力

        當(dāng)你用一個好的HAL把硬件從等式中去掉時,它允許你把任何實現(xiàn)放在它后面。這意味著你可以為你的目標(biāo)、你的測試工具和一個模擬環(huán)境擁有一個實現(xiàn)!在許多情況下,嵌入式軟件開發(fā)人員必須在硬件可用之前開始編寫軟件。因此,雖然我們可以使用開發(fā)板開始,但有了一個好的HAL,我們可以在我們的應(yīng)用程序代碼上運(yùn)行模擬!

        模擬應(yīng)用程序代碼對嵌入式開發(fā)人員來說有很多好處。首先,它允許他們更早而不是更晚地在客戶面前獲得應(yīng)用程序代碼。我們都知道,客戶喜歡改變主意,在體驗之前,他們很難想象產(chǎn)品的工作方式。模擬可以幫助客戶理解產(chǎn)品,并更快地提供富有成效的反饋,減少開發(fā)周期后期昂貴而耗時的變更。

        其次,通過允許在沒有硬件的情況下測試故障和其他異常行為,模擬實現(xiàn)了更健壯的測試。例如,讓一個傳感器行為不當(dāng)或在目標(biāo)處理器上強(qiáng)制硬件異常通常是具有挑戰(zhàn)性的。在模擬環(huán)境中,這不是問題。結(jié)果又是更健壯的軟件。



        方式4:更快、更高效的調(diào)試

        當(dāng)你在目標(biāo)上調(diào)試時,每次進(jìn)行更改時,都會有一個交叉編譯、擦除閃存、編程閃存和運(yùn)行應(yīng)用程序的循環(huán)。整個過程可能需要相當(dāng)長的時間,這取決于應(yīng)用程序,即使使用專業(yè)工具。使用HAL來分離應(yīng)用程序可以更快地調(diào)試代碼!在主機(jī)上,編譯和運(yùn)行周期要短得多。這意味著開發(fā)人員可以更快地解決問題,然后在必要時在他們的硬件上測試最終的調(diào)試版本。

        如果你允許HAL提供的其他方式實現(xiàn),你將使用單元測試來驅(qū)動開發(fā),這意味著你甚至可以減少調(diào)試時間。你只會編寫通過測試的代碼。你的軟件會以小的增量編寫,測試會一直驗證它。如果你破壞了什么東西,回歸測試會立即發(fā)現(xiàn)它。其結(jié)果將是更快、更高效的調(diào)試,并且?guī)缀跬耆珡哪愕纳詈晚椖恐腥コ{(diào)試!聽起來是不是很棒?

        方式5:上市時間和成本降低

        使用HAL開發(fā)嵌入式軟件的最終轉(zhuǎn)變是降低成本和上市時間。HAL為嵌入式開發(fā)軟件創(chuàng)造了靈活性,這是大多數(shù)團(tuán)隊做夢也想不到的。你可以很容易地看到,如果你能很快得到客戶的反饋,你在開發(fā)周期的后期會有更少的返工。此外,如果你能消除調(diào)試,那就太棒了!大多數(shù)團(tuán)隊平均花費(fèi)20–40%的開發(fā)周期進(jìn)行調(diào)試!也就是每人每年2.4-4.5個月!這都是因為你使用了HAL,它能夠測試你的應(yīng)用程序代碼并減少調(diào)試時間。

        隨著上市時間的縮短,成本顯然會降低。當(dāng)然,在HAL開發(fā)、測試工具和其他工具上也有投資,以確保開發(fā)周期順利進(jìn)行。然而,這些成本通常比節(jié)省的成本少一個數(shù)量級。我甚至沒有提到與維護(hù)相關(guān)的費(fèi)用,這些費(fèi)用很容易超過最初的開發(fā)成本。

        結(jié)論

        我們討論的一些方式可能看起來有點陌生,因為嵌入式開發(fā)人員傳統(tǒng)上沒有使用過這些技術(shù)。然而,不需要花太多時間就能掌握它們,并允許它們極大地改進(jìn)你開發(fā)嵌入式軟件的方式。你已經(jīng)看到了好處;問題是你是否會接受它們,并開始在你的軟件中構(gòu)建一個獨(dú)立于微控制器的HAL。如果你這樣做了,我認(rèn)為你將徹底改變你開發(fā)嵌入式產(chǎn)品的方式。

      免費(fèi)預(yù)約試聽課

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

      
      

      1. 亚洲国产精品日韩AV专区 | 最新精品国偷自产在线91 | 韩国日本亚洲国产不卡 | 亚洲一级在线色香蕉 | 久久精品国产乱子伦免费 | 制服丝袜99在线不卡 |