1. 程式人生 > >板級支援包BSP和硬體抽象層HAL的區別和關聯

板級支援包BSP和硬體抽象層HAL的區別和關聯

就我跟人理解而言BSP就是硬體驅動程式,它包含了操控硬體的必要函式,微控制器系統使用BSP可以直接進行應用開發,這時候應用開發的hierarchy如下圖所示:

但是由於日益增長的晶片種類和晶片複雜度,直接使用BSP進行應用開發將會受到巨大的挑戰,因此為了程式的可閱讀性以及可移植性提出了硬體抽象層HAL這一個概念。引入HAl之後的系統hierarchy如下圖所示:

引入HAL之後作業系統將會使用相對更為統一的HAL介面來實現對硬體的操作,而不是直接使用BSP庫。當然,HAL庫的實現是基於BSP庫的,只是將其進一步封裝,形成統一的標準。因此一個完整、強健的嵌入式系統的系統hierarchy應該為:

hardware --> board support package --> hardware abstract layer --> driver --> operating system --> application

當然嵌入式系統中作業系統並不是必須的,並且在作業系統和應用程式之間可以在有一層中介軟體Middleware層,用於提供更多的系統功能,這個中介軟體Middleware層也被稱作SDK。

相關推薦

支援BSP硬體抽象HAL區別關聯

就我跟人理解而言BSP就是硬體驅動程式,它包含了操控硬體的必要函式,微控制器系統使用BSP可以直接進行應用開發,這時候應用開發的hierarchy如下圖所示: 但是由於日益增長的晶片種類和晶片複雜度,直接使用BSP進行應用開發將會受到巨大的挑戰,因此為了程式的可閱讀性以及

(linux)BSP支援開發理解

1. 概述 嵌入式系統由硬體環境、嵌入式作業系統和應用程式組成,硬體環境是作業系統和應用程式執行的硬體平臺,它隨應用的不同而有不同的要求。硬體平臺的多樣性是嵌入式系統的主要特點,如何使嵌入式作業系統在不同的硬體平臺上有效地執行,是嵌入式系統開發中需要解決的關鍵

Android架構分析之使用自定義硬體抽象(HAL)模組

作者:劉昊昱  Android版本:2.3.7_r1 Linux核心版本:android-goldfish-2.6.29 在上一篇部落格《》中,我們瞭解了硬體抽象層的基本資料結構和模組編寫規則,現在,我們就來看怎樣編寫一個自定義的硬體抽象層模組並加入到Android

Android硬體抽象(HAL)深入剖析(一)

作為一個搞android驅動或者說搞底層的人,我覺得對於hal那是必須要掌握的,而且必須達到一定深度,於是我總結了一下,將整個自己的分析思路寫下來。 主要是看android原始碼,根據原始碼得到的思路。(看原始碼比看什麼著作書籍都管用) android HAL是什麼?為什麼

Android架構分析之硬體抽象(HAL)

作者:劉昊昱  Android版本:2.3.7_r1 Linux核心版本:android-goldfish-2.6.29 一、硬體抽象層核心資料結構 Android硬體抽象層有三個核心資料結構,分別是hw_module_t , hw_module_methods_t,

硬體抽象(HAL)

 Windows設計的關鍵要素之一是,它能被移植到各種不同的硬體平臺上。硬體抽象層是使得這種移植性成為可能的一個關鍵部分。HAL是一個可載入的、核心模式的模組,它提供了針對Windows當前執行所在的硬體平臺的低層介面。它隱藏了與硬體相關的細節,比如I/O介面、中斷控制器,以

Android硬體抽象HAL)概要介紹學習計劃

      Android的硬體抽象層,簡單來說,就是對Linux核心驅動程式的封裝,向上提供介面,遮蔽低層的實現細節。也就是說,把對硬體的支援分成了兩層,一層放在使用者空間(User Space),一層放在核心空間(Kernel Space),其中,硬體抽象層執行在使用者空

Android系統硬體抽象原理與實現之WIFI

http://m.blog.csdn.net/linux_zkf/article/details/7492720 整個WIFIHAL實現都很簡單,都是對wpa_supplicant的操作和使用,如果需要自己實現 WIFI HAL可以參考wifi.c來實現wifi.h中所定義的

淺談簡單工廠,工廠方法,抽象工廠的區別使用

  工廠模式是分為三種,分別是簡單工廠,工廠方法,抽象工廠。其中工廠方法和抽象工廠是GoF23種設計模式中的一種,而簡單工廠則不是一種設計模式,更加可以理解的是一種編碼時候預定俗稱的一種習慣。那麼,就在接下來三點中分別去分析理解工廠模式。 一 簡單工廠:通過例項化一個工廠類,來獲取對應的產品例項。我們不需要

【PHP面向物件】介面跟抽象類的區別各自的用法

author:咔咔 wechat:fangkangfk   介面: 介面是用interface宣告的 介面中定義的方法都是公共的 介面只需要宣告自定義方法不需要具體內容 實現介面使用implements實現,介面支援多實現,使用逗號隔開即可 繼承介面的類

JAVA面試題:介面抽象類的區別聯絡

一、介面的概念: 介面(Interface),在JAVA程式語言中是一個抽象型別,是抽象方法的集合。介面通常以interface來宣告。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。 如果一個類只由抽象方法和全域性常量組成,那麼這種情況下不會將其定義為一個抽象類。只

java介面抽象類的區別作用(功能、用途、好處)

Java介面: 總結了4點關於JAVA中介面存在的意義:        1、重要性:在Java語言中, abstract class 和interface 是支援抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向物件能力。

android硬體抽象HAL)詳解

今天給大家講一下android框架中的硬體抽象層HAL(hardware abstract layer),硬體抽象層在軟體與硬體之間起到了橋樑作用,作為一個framework工程師是必須掌握的,如果你是一個應用軟體工程師或者framework工程師,向驅動工程師轉型,hal層

android硬體抽象兩種架構

Android Hal 分析                                                                                                  -------rockchip  Andy 本文

Android8.0 硬體抽象實現分析

眾所周知Android是基於Linux核心的開放性系統,我們可以看到Google開放的大部分作業系統實現程式碼。之所以說它是開放的而不是開源的,是因為Android系統程式碼不是完全開源的。這始於Linux核心開源協議和第三方廠商隱私安全的矛盾,為了繞過之一矛盾

Android HAL(硬體抽象)介紹以及呼叫

1 HAL簡介 Android 的 HAL(Hardware Abstract Layer硬體抽象層)是Google因應廠商「希望不公開原始碼」的要求下,所推出的新觀念,其架構如下圖。雖然 HAL 現在的「抽象程度」還不足,現階段實作還不是全面符合 HAL的架構規劃,

介面抽象類的區別作用

1.介面(interface),介面被用來建立類與類之間關聯的標準。 Java code publicinterface ITest{ publicvoid test(); } publicclass TestImpl implements ITest{

php裏單引雙引的用法區別連接符(.)

jce 編譯器 last 進行 一個 tar 字串 string clas " "雙引號裏面的字段會經過編譯器解釋,然後再當作HTML代碼輸出。 ‘ ‘單引號裏面的不進行解釋,直接輸出。 例如: $abc=‘my name is tome‘; echo $abc //結果是

breakcontinue以及label的區別作用

跳出循環 跟著 但是 一次循環 循環語句 怎麽辦 次循環 完全 語句 break和continue的區別和作用:break用於完全結束一個循環[一般只退出一重循環],跳出循環體執行循環後面的語句continue是跳過當次循環中剩下的語句,執行下一次循環。標號label  

Android硬件抽象(HAL)深入剖析(二)

truct 入口 兩個 andro dream filename 庫文件 需要 sum 上一篇我們分析了android HAL層的主要的兩個結構體hw_module_t(硬件模塊)和hw_device_t(硬件設備)的成員,下面我們來具體看看上層app到底是怎麽實現操作硬件