2012-11-27 61 views
-1

當定義一個嵌入式系統架構中,有兩個選擇,當談到定義HAL -定義HAL高於還是低於驅動程序層?

  • 定義驅動層之上的HAL(這意味着one'll需要重寫每一個平臺,你端口驅動程序)
  • 定義驅動層下方的HAL(這意味着one'll需要重寫HAL爲每個平臺,您端口)

哪一個更好,爲什麼?

回答

5

簡答:是的。

擁有一個HAL(或穩定的驅動程序ABI低於驅動程序是很好的,特別是對於驅動程序編寫者) 具有高於驅動程序的HAL對應用程序員來說很好。

你可以這樣做:查看Unix設備驅動程序;相當便攜。[字節序但仍然咬]

哪個是更好的依賴於嵌入式架構的產品開發路線圖。

讓我們試試一些例子。

讓我們說這是一個商業產品,您的公司並不需要跨平臺移植。在這種情況下,你不在乎。

如果您的公司正在使用它,例如電視機,並且預計平臺會發生變化,但設備將保持不變(電視機是電視機是電視機,但最便宜的微型設備會隨着時間而改變)然後你會用低於司機的車,並保持對司機的投資。

如果你的公司做,例如智能手機,處理器的變化等方面做了設備,如分辨率改變,額外的傳感器得到補充...所以在這種情況下,你會與HAL-上面去驅動,並保持軟件負載的很大一部分是通用的。

如果你放入兩個HAL,對於嵌入式,你可能會冒險成爲一名建築宇航員。如果兩個HAL(運行時間和設計時間)的成本超過跨平臺移植所節省的人力,那麼這是浪費時間和金錢。

對HAL投入多少努力同樣是一種折衷。在一個小小的嵌入式系統中抽象得太多是無法提供的。

同樣,這種折衷依賴於一個很小的平臺,爲您的應用程序,這最終取決於時間對市場的相對重要性,並設有與費用,每個設備的正確選擇。關於需要爲大宗市場降價的說法很多,提供了很少的科學證據。最賺錢的嵌入式設備製造商之一是蘋果,而不是使用微小的平臺。 (哎呀,他們不是在納斯達克了,因爲它們扭曲了這麼多)

如果你沒有HAL,你必須改變的平臺,例如你的處理器就要結束了,你有很大的難度。

如果您嘗試應用YAGNI規則(你不會需要它)沒有權衡研究以後可能使公司損失了一筆。

現在,如果你盲目片面的技術帶你沒想到一轉,那麼你的權衡研究將是錯誤的,你的公司將受到影響。

相關問題