2016-11-15 61 views
3

儘管通讀Embedded Linux System Design and Development,我碰到下面的文字來澄清硬件抽象層上

所以,當我們談論 MIPS HAL這意味着對於MIPS處理器和內置支持 與MIPS處理器的主板。當我們談論BSP時,我們可以參考軟件 ,該軟件沒有處理器支持軟件,而只有附加的 軟件來支持該板。 HAL可以理解爲所有支持的BSP的超集 ,並且它還包括處理器專用的 軟件。

什麼是硬件抽象層(就Linux而言)?這在某種程度上與BSP有關嗎?根據我的理解,BSP是特定於主板的代碼,例如引導加載程序,內核核心,外設的特定驅動程序等。HAL如何作爲BSP的超集出現?

+0

Linux沒有真正的HAL。如果這個概念有用,幾十年來一直在進行討論。也許你最好問作者他們的意思。 – Olaf

回答

0

我不認爲HAL是Linux特有的概念,即它不是子系統或合適的邏輯分組代碼。爲了幫助解釋其他概念,作者可能已經介紹了它。在某種程度上,操作系統內核可以被描述爲HAL,因爲它們抽象出硬件,爲用戶空間提供統一的接口。所以確切的答案只會在本書的背景下。在基於裸機/ RTOS的嵌入式系統中,HAL層(如果存在)將位於驅動器之上,以便爲較高層提供相同的API,即使在底層驅動器或物理組件(如外設或總線連接微控制器到外設)的改變。這與在HAL變得有用之前運行的主板啓動代碼或引導程序不同。

希望能夠解決您的查詢問題。

+2

微控制器是否有MMU,爲什麼要重要?我認爲你的意思是裸機或RTOS應用程序。 – Lundin

+0

@Lundin,這是正確的。通常帶有MMU的處理器往往會有更復雜的設置,我想排除它們。但裸機或RTOS更好地表達了這一點。如果你喜歡,請編輯。 – bytefire

+0

MCU通常沒有HAL。這隻會增加無用的膨脹。它實際上是一種營銷活動(例如ST),可以讓經理們迫使他們的開發人員使用這些設備,因爲它允許「便攜式代碼和更快的開發」。在這些平臺上都是無稽之談。 – Olaf