1. gzyueqian
      13352868059

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

      更新時(shí)間: 2023-09-08 15:43:05來(lái)源: 粵嵌教育瀏覽量:9035

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

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

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

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

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

        方式2:?jiǎn)⒂米詣?dòng)化單元和集成測(cè)試

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

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

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

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

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



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

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

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

        方式5:上市時(shí)間和成本降低

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

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

        結(jié)論

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

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

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

      
      

      1. 亚洲欧美一区在线登录 | 亚洲国产精品视频2019 | 日韩精品视频在线 | 天堂AⅤ日韩欧美国产 | 中文字幕免费久久99 | 日韩精品一区二区三区中文字幕 |