摘要:使用Linux進行嵌入式產品開發有一個很大的優勢,就是開發資源豐富,且成本低廉。但是,技術路線復雜多樣,專業人才相對匱乏是Linux嵌入式系統開發面臨的一個難題。文章描述了嵌入式系統的特色,分析了嵌入式系統設計的過程,并從實際應用的角度,討論了如何在S3C2410開發板上移植嵌入式Linux 2.6.11.7內核系統,用于構建H.264多媒體系統。
關鍵詞:嵌入式系統;Linux;內核;文件系統
0 引言
隨著多媒體技術與通訊技術相結合的信息技術的快速發展和互聯網的廣泛應用,PC時代也過渡到了后PC時代。在數字信息技術和網絡技術高速發展的后PC時代,嵌入式技術越來越與人們的生活緊密結合。
1 嵌入式系統與Linux
操作系統為用戶使用計算機及其外部設備提供最基本的接口程序,管理計算機上的資源。隨著應用領域的擴大,為了適應不同的應用場合,考慮到系統的靈活性、可伸縮性以及可裁剪性,一種以應用為中心、以計算機技術為基礎、軟硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗要求嚴格的專用計算機系統——嵌入式操作系統隨之產生。
Linux操作系統是一種性能優良、源碼公開且被廣泛應用的免費操作系統,由于其體積小、可裁減、運行速度高、良好的網絡性能等優點,可以作為嵌入式操作系統。而Linux的低成本和開放性,更是它應用于嵌入式系統領域的優勢。嵌入式Linux是按照嵌入式操作系統的要求而設計的一種小型操作系統,與其它嵌入式操作系統相比,Linux的源代碼是開放的,不存在黑箱技術。Linux作為一種可裁剪的軟件平臺,很可能發展成為未來嵌入式設備產品的絕佳資源。因此,在保持Linux內核系統更小、更穩定、更具價格競爭力等優勢的同時,對系統內核進行實時性優化,更加使之能夠適應對各種領域的實際要求。
2 嵌入式系統設計的過程
按照嵌入式系統的工程設計方法,嵌入式系統的設計可以分成三個階段:分析、設計和實現。分析階段是確定要解決的問題及需要完成的目標,也常常被稱為“需求階段”;設計階段主要是解決如何在給定的約束條件下完成用戶的要求;實現階段主要是解決如何在所選擇的硬件和軟件的基礎上進行整個軟、硬件系統的協調實現。在分析階段結束后,通常開發者面臨的一個棘手的問題就是硬件平臺和軟件平臺的選擇,因為它的好壞直接影響著實現階段的任務完成。
在上述選擇中,通常處理器是最重要的,同時操作系統和編程語言也是非常關鍵的。處理器的選擇往往同時會限制操作系統的選擇,操作系統的選擇又會限制開發工具的選擇。
2.1 硬件平臺的選擇
嵌入式系統的核心部件是各種類型的嵌入式處理器。設計者在選擇處理器時要考慮的主要因素有:處理性能、技術指標、功耗、軟件支持工具、是否內置調試工具、供應商是否提供評估板。另外,選擇其他硬件時,我們也要考慮廠家的生產規模、開發的市場目標、軟件對硬件的依賴性。只要可能,盡量選擇使用普通的硬件。所以,在CPU及架構的選擇上,一個原則是:只要有可替代的方案,盡量不要選擇Linux尚不支持的硬件平臺。
2.2 軟件平臺的選擇
軟件平臺的選擇涉及到以下幾個方面:
操作系統的選擇 硬件的不同,會影響操作系統的選擇。可用于嵌入式系統軟件開發的操作系統很多,但關鍵是如何選擇一個適合開發項目的操作系統。經過多年的開發實踐,筆者認為應該從以下幾點進行考慮:操作系統提供的開發工具、操作系統向硬件接口移植的難度、操作系統的內存要求、開發人員是否熟悉此操作系統及其提供的API、操作系統是否提供硬件的驅動程序(如網卡等)、操作系統的可剪裁性及操作系統的實時性能。
編程語言的選擇 選擇編程語言的時候主要考慮通用性、可移植性程度、執行效率以及可維護性等因素。高級語言一般和具體機器的硬件結構聯系較少,多數微處理器都有良好的支持,通用性較好。而且高級語言對所有微處理器都是通用的,程序可以在不同的微處理器上運行,可移植性較好。另外,高級語言程序往往是模塊化設計,各個模塊之間的接口是固定的,當系統出現問題時,可以很快地將問題定位到某個模塊內,并盡快得到解決。而且,模塊化設計也便于系統功能的擴充和升級。
投件組件的選擇 有些軟件組件是免費的,有些軟件組件是授權的。授權軟件組件的費用一般都很高,但大都經過嚴格的測試,可靠性高,調試時間短。現在也有一些免費的自由軟件組件,它們的性能、可靠性也很好。因此開發人員在選擇的時候要加以權衡,確定哪種方案更好。
3 應用研究
在S3C2410開發板上移植嵌入式Linux 2.6.11.7內核系