1. gzyueqian
      13352868059

      硬件抽象層(HAL)改變項目的5種方式

      更新時間: 2024-05-14 10:25:56來源: 粵嵌教育瀏覽量:964

      嵌入式軟件開發(fā)人員通常避硬件抽象層(HAL ),聲稱它們會降低性能并增加代碼復(fù)雜性。是,當(dāng)開發(fā)人員采用HAL時,供應(yīng)商提供的HAL通常不抽象硬件,仍然保證與硬件的緊密耦合。畢竟,一個真正抽象的HAL將使嵌入式開發(fā)人員能夠立即使用任何供應(yīng)商。然而,使用或開發(fā)你自己的HAL會在很多方面影響你的軟件。在本中,我們將探索5HAL可以改變你的軟件項目的方式。

       

      方式1–硬件獨立性

      開發(fā)人員通常有一個最喜歡的微控制器供應(yīng)商。通常是第一次編寫嵌入式軟件的供應(yīng)商或者熟悉的供應(yīng)商。和其他人一樣,我也有自己的愛好,但是依賴他們的HAL或軟件庫來編寫軟件可能是危險的。比如你突然拿不到他們的微控制器怎么辦?你必須選擇一個新的供應(yīng)商,然后重寫,測試,甚至認證你的產(chǎn)品。那不算快也不算便宜!

       

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

       

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

       

      方式2——實現(xiàn)自動化單元和集成測試

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

       

      將硬件從等式中移除并將測試轉(zhuǎn)移到主機有利于開發(fā)人員。首先,它更快。不必擔(dān)心器件的緩慢擦除和寫入周期。其次,不需要擔(dān)心的測試工具有多大或者有多少測試。只需首先在主機上測試所有應(yīng)用程序代碼,而不是嘗試在微控制器上運行的代碼和測試。接下來,轉(zhuǎn)移到非目標(biāo)測試使可以利用持續(xù)集成甚至持續(xù)部署。其結(jié)果將是越來越快地發(fā)現(xiàn)缺陷,降低成本,提高質(zhì)量。

       

      方式3–執(zhí)行脫靶模擬的能力

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

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

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

       

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

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

      如果允許HAL提供的其他轉(zhuǎn)換實現(xiàn),將使用單元測試來驅(qū)動開發(fā),這意味著甚至可以花更少的時間進行調(diào)試。將只編寫通過測試的代碼。你的軟件將會以小增量的方式編寫,測試會一直驗證它。如果你破壞了什么東西,回歸測試會立即發(fā)現(xiàn)它。其結(jié)果將是更快、更有效的調(diào)試

       

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

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

      隨著上市時間的縮短,成本顯然會降低。為了確保開發(fā)周期順利進行,在HAL開發(fā)、測試工具和其他工具方面肯定有投資。然而,這些成本通常比節(jié)省的成本低一個數(shù)量級。

      免費預(yù)約試聽課

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

      
      

      1. 午夜国产狂喷潮在线观看 | 中文字幕AV中文字幕 | 亚洲欧美在线看h | 亚洲狠狠婷婷综合久久久久 | 中文字幕亚洲二区婷婷 | 中文字字幕在线中文乱码不 |