• 沒有找到結果。

嵌入式產品 嵌入式產品 嵌入式產品 嵌入式產品

簡單說來,嵌入式產品是透過一個小型微控器控制相關電路的系統,而手機、數位 相機、汽車內的微電腦、各類型家電、導航系統…等均屬於嵌入式產品9,嵌入式產品不 需要像個人電腦一樣使用功能強大的中央處理器(Central Processing Unit,簡稱為 CPU), 程式操作流程也較為簡易,因此一般的產品使用者(消費者)不會意識到這些產品需要 使用控制晶片來提供各種操作功能。

3.1.1. 嵌入式產品的硬體架構與產業分工 嵌入式產品的硬體架構與產業分工 嵌入式產品的硬體架構與產業分工 嵌入式產品的硬體架構與產業分工

根據前述的說明可以發現,許多消費性電子產品均屬於嵌入式產品的範疇,目前與 消費性電子產品的生產過程相關的廠商,可以根據產品的不同而區分為晶片設計公司、

系統開發廠商與品牌廠商三類。簡單來說,消費性電子產品常見的開發模式是,晶片設 計公司為了證明自己所販售的控制晶片功能正常,常需要將控制晶片所需的軟體功能一 併開發完成,讓系統開發廠商可以直接使用,也可以節省系統開發廠商的開發時程,而 系統開發廠商的客戶為品牌廠商,無論是軟體或硬體,品牌廠商鮮少對嵌入式產品的內 部加以改動,而是要求系統開發廠商配合,由系統開發廠商完成品牌廠商所要求之功能 選項或操作介面。

也就是說,目前嵌入式產品的系統程式,往往由對晶片功能較為了解的晶片設計公 司來提供,而系統開發廠商相當於晶片設計公司的後手,兩者均可能利用開放原始碼來 輔助系統程式的開發,而品牌廠商則因較少參與系統程式的開發,故不在本研究討論之 列。

承上,嵌入式產品的系統開發過程,可以依據生產的階段而概括區分為:晶片設計 與系統開發兩種階段。在晶片設計階段,晶片設計公司設計並販售嵌入式系統中,主要 用來執行核心操作的控制晶片;在系統開發階段,系統開發廠商向晶片設計公司購入控

9 Rick Lehrbaum, The Linux Devices Showcase,

http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/The-Linux-Devices-Showcase/, (last visited Jan. 17, 2010).

12

制晶片,之後再搭配不同的軟體功能與硬體元件來販售。需注意的是,無論嵌入式產品 的種類為數位電視、手機或其他產品,這種依據生產階段的分類方式並不會因為其功能 或產品的不同而異,因此以下將以這兩種類型的硬體開發廠商作為討論的對象。

3.1.2. 嵌入式產品的 嵌入式產品的 嵌入式產品的 嵌入式產品的軟體架構與開發環境 軟體架構與開發環境 軟體架構與開發環境 軟體架構與開發環境

在進行嵌入式產品的系統程式開發時,為了管理與維護的目的會將系統程式內的原 始碼進行劃分,劃分的方式主要有分層與模組的分別,以蓋房子比喻系統程式的開發 時,分層相當於不同樓層的區別,而模組則代表在各個樓層中的各個房間規劃。

在功能較為強大的嵌入式產品中,至少可將系統程式的軟體架構區分為四個層級,

分別是:與硬體習習相關的驅動程式(driver)、用來控制整體系統程式之操作流程的作業 系統層(OS)、提供消費者操作時的功能之應用層(Application),以及呈現給消費者進行操 作之使用者介面層(User Interface,UI)。

軟體的開發過程需要從原始碼轉換成目的碼,而嵌入式產品的相關系統資源有限,

無法提供完整的除錯(debug)與編譯(compile)環境,因此,嵌入式產品在進行系統 程式開發時必須透過其他應用平台(如:個人電腦)的輔助才能進行原始碼的開發,並 進而產生執行的目的碼。目前最普遍的嵌入式產品的開發環境,是由 GNU 所開發出來 的工具鍊(GNU tool chain)10,使用GNU 工具鍊作為開發環境的好處是,微處理器開 發廠商可以降低提供開發環境所需的研發人力,晶片設計公司與系統開發廠商,也得以 用較低廉的成本取得開發環境。

經由上述說明可以發現,嵌入式產品的開發過程中,除了系統程式可能會使用以 GPLv2 授權條款所授權的 Linux 外,系統程式開發所需搭配使用的開發環境亦可能會使 用由GNU 所提供的工具鍊,也就是 GNU 的存在對於嵌入式產品廠商而言確實相當有助 益。

若以做菜比喻系統程式的開發時,開放原始碼可被類比為公開、免費的食譜,而 GNU 工具鍊則相當於 GNU 所提供的公用廚房。開放原始碼授權條款要求被授權者在該 免費食譜的協助下,若作出新的菜色並加以散布時,被授權人需要提供他完成該菜色之 細節,讓其他的被授權人有更多的食譜可以參考;而 GNU 工具鍊則讓程式開發者在烹 調前,不必另外花力氣籌備一個廚房,而能夠使用現成的廚房設備來烹調,但是程式開

10處理器核心大廠如 ARM、MIPS 在提供開發環境時,都會以 GNU 工具鏈為基礎提供客戶程式開發的環 境。以 MIPS 為例,該公司所提供的開發環境均以 GNU 工具鏈為基礎,而 ARM 則同時提供一種由該公 司內部發展的開發環境,以及以 GNU 工具鏈為基礎的開發環境,採用雙重管道的方式提供給客戶,其客 戶便能視自身的需要而選用。

13

發者利用這個現成廚房所烹調的菜色並不以開放原始碼為限,也就是程式開發者可以利 用 GNU 工具鍊來開發各種類型之程式,無論該程式之授權方式為商業授權或開放原始 碼授權。

易言之,對於嵌入式產品開發廠商而言,GNU 不但提供了食譜,還提供了相關的設 備讓使用者使用,而嵌入式產品開發廠商得以利用免費提供的環境,以及免費食譜所提 供的資源,發揮其巧思來進行系統程式的開發。

3.1.3. 嵌入式產品的 嵌入式產品的 嵌入式產品的 嵌入式產品的作業系統 作業系統 作業系統 作業系統

作業系統可以被簡單形容是一個協調系統資源的平台,特別是對於系統程式中,所 需要執行的功能較多而需透過多工處理的情形。也就是說,在單工處理無法滿足系統需 求時,便常常透過多工處理的作業系統來進行資源分配。

對於一般使用者而言,作業系統並不影響使用者的操作介面,而只是一個用來提供 上層軟體運作的資源管理程式而已。因此,在上層的應用軟體相同,且作業系統均可以 支援上層的應用軟體時,一般使用者並不會因為作業系統的不同而感到差異。在個人電 腦平台上,微軟的視窗作業系統具有獨占地位,這是因為許多應用程式都僅支援微軟的 視窗作業系統,而不支援其他作業系統的關係,久而久之,多數的使用者便相當倚賴微 軟的視窗作業系統。

隨著嵌入式產品的複雜化,當前許多嵌入式產品也導入了作業系統的作法,然而作 業系統的開發相當費時,因此多數的廠商不會自行開發專用的作業系統,而是採用市面 上可得之作業系統以節省產品的開發時程。與個人電腦上以微軟的視窗作業系統為大宗 的情形不同,嵌入式產品所使用的作業系統種類相當多元,且根據授權費用的收取與否 而可分為需要收取授權費用與不需要收取費用兩種類型。需要授權費用的作業系統有:

VxWorks 作業系統、Palm OS 作業系統、Windows CE 作業系統、Nucleus 作業系統等;而 不需要收取授權費用的作業系統則有 Linux 作業系統、eCos 作業系統、uCLinux 作業系 統等。

在前述兩種類型之嵌入式產品的作業系統中,前者屬於商業化銷售的產品,採用此 類型的作業系統時,系統程式的開發者不用擔心作業系統內部的管理,對於公司在開發 新一代產品或不同系列產品時,具有容易取得授權公司的支援,以及容易移植應用軟體 等優勢,若廠商對作業系統的程式有疑問時,也有明確的被諮詢對象;而後者的優點則 是廠商在使用時,不需要支付軟體授權費用,該些作業系統係以公開原始碼的方式提 供,讓廠商的取得成本大幅降低。

14

由於開放原始碼容易被散布,相關的口碑也較容易流傳,在成本較低且資訊透明化 的考量下,嵌入式產品使用開放原始碼的情形也越來越普遍。但是廠商在使用開放原始 碼的作業系統時,還需要進一步考慮作業系統是否提供足夠的支援服務,廠商使用開放 原始碼的作業系統時,一旦遭遇問題,並沒有明確的諮詢對象,也不一定能仰賴社群來 解決,而必須由廠商自行克服,因此廠商的技術能力也是影響作業系統選擇的關鍵因素。

無論嵌入式產品的使用的是何種作業系統,與個人電腦上的作業系統相當不同的 是,個人電腦上的作業系統選擇很少,而且一般使用者可以清楚知道自己所使用的作業 系統種類,而應用於嵌入式產品的作業系統種類卻多如牛毛,就一般使用者而言,在使 用作業系統時,作業系統的存在與否,以及使用的作業系統種類等問題,並不會影響一 般使用者操作的流程。

相關文件