

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)論文(設(shè)計)</p><p> 題 目:基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)</p><p> 學(xué) 院:</p><p> 學(xué)生姓名:</p><p> 專 業(yè):電子信息工程</p><p> 班 級:</p><p> 指導(dǎo)教師:</p>
2、;<p> 起止日期:</p><p> 基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)</p><p><b> 摘要</b></p><p> 隨著網(wǎng)絡(luò)應(yīng)用技術(shù)的飛速發(fā)展,人們對網(wǎng)絡(luò)應(yīng)用的要求也就越來越高。與傳統(tǒng)的數(shù)據(jù)格式如文本、圖像和圖形已被數(shù)字化,可通過網(wǎng)絡(luò)存儲、傳送和表現(xiàn)的方式不同,視頻和音頻等連續(xù)媒體具有較大容量的數(shù)據(jù)存儲和占用較
3、高的網(wǎng)絡(luò)帶寬,以及實現(xiàn)在網(wǎng)絡(luò)上傳輸連續(xù)媒體最重要的準則――實時傳輸并連續(xù)播放決定了其在網(wǎng)絡(luò)中傳輸需要采用一些特定的技術(shù),如視頻傳輸技術(shù)、視頻流控制技術(shù)、帶寬技術(shù)等。隨著嵌入式技術(shù)的不斷發(fā)展和人們對降低視頻傳輸成本提高傳輸質(zhì)量的要求,基于ARM的網(wǎng)絡(luò)視頻傳輸研究已成為研究的熱點。本文提出了一種嵌入式網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計方案,以S3C2410為嵌入式處理器,Linux為操作系統(tǒng)構(gòu)建了嵌入式網(wǎng)路視頻的傳輸系統(tǒng)軟硬件平臺,文中在研究Linux
4、的基礎(chǔ)上,從系統(tǒng)總體設(shè)計角度把嵌入式系統(tǒng)技術(shù)和internet技術(shù)結(jié)合起來,實現(xiàn)了基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng),文中簡要介紹了基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計方案,重點闡述了軟件系統(tǒng)的設(shè)計、調(diào)試和實現(xiàn)。主要進行了如下研究:</p><p> 首先分析了嵌入式系統(tǒng)的特點與優(yōu)勢,結(jié)合本文的要求提出了系統(tǒng)的整體結(jié)構(gòu)框架。</p><p> 搭建基于S3C2410的嵌入式開發(fā)環(huán)境,重點介紹了
5、ARM處理器、視頻采集與傳輸?shù)饶K的介紹,主要考慮設(shè)備的選擇和兼容性。</p><p> 然后從系統(tǒng)的功能出發(fā),結(jié)合搭建的軟硬件環(huán)境和實現(xiàn)原理,完成軟件部分。重點介紹了視頻采集與接收等應(yīng)用軟件模塊。從數(shù)據(jù)結(jié)構(gòu)、功能結(jié)構(gòu)、系統(tǒng)實現(xiàn)和編程細想方面進行了說明。</p><p> 最后通過實驗結(jié)果測試分析,達到了本文的預(yù)訂目標,實現(xiàn)了基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)。</p><
6、;p> 關(guān)鍵詞:視頻流;嵌入式;Linux;S3C2410</p><p><b> Abstract</b></p><p> With the rapid development of network application technology, the network application requirements also more and m
7、ore high.. And the traditional data formats such as text, images and graphics has been digital, but through the network storage, transport and performance in different ways, Video and audio and continuous media has a gre
8、at capacity data storage and take up higher network bandwidth, as well as the realization on the network transmission continuous media's most important rules-real-tim</p><p> The first analysis of the e
9、mbedded system characteristics and advantages, combined with the design requirements of this paper put forward the integral design of the system architecture.</p><p> Build the development environment based
10、 on S3C2410 embedded, focusing on the ARM processor, video collection and transmission of the module introduces, the main consideration of the choice of equipments and compatibility.</p><p> Then from the f
11、unction of the system, combining with the hardware and software environment and build realize principle, complete the software of the design. Focusing on the video collection and receiving application software modules. F
12、rom function structure, programming, data structure to dwell on the system and the instructions.</p><p> The experimental results test analysis to this paper reservation goal to realize the network based on
13、 ARM video transmission system.</p><p> Keywords: streaming video; Embedded; Linux; S3C2410 </p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p>
14、AbstractII</p><p><b> 第1章 引言1</b></p><p> 1.1 嵌入式系統(tǒng)的概念1</p><p> 1.1.1 嵌入式系統(tǒng)的定義[1]1</p><p> 1.1.2 嵌入式系統(tǒng)的特征[2]1</p><p> 1.2 嵌入式系統(tǒng)的發(fā)展與研究
15、意義2</p><p> 1.2.1 嵌入式的發(fā)展[6]2</p><p> 1.2.2 嵌入式的研究意義[4]2</p><p> 第2章 嵌入式linux系統(tǒng)3</p><p> 2.1 嵌入式Linux系統(tǒng)3</p><p> 2.2 嵌入式 Linux的特點及優(yōu)勢[11]3</p&g
16、t;<p> 第3章 系統(tǒng)的硬件與軟件環(huán)境5</p><p> 3.1 系統(tǒng)的基本原理與結(jié)構(gòu)[15]5</p><p> 3.2 構(gòu)建系統(tǒng)硬件環(huán)境5</p><p> 3.2.1 ARM處理器的介紹6</p><p> 3.2.2 S3C24106</p><p> 3.2.3 以太
17、網(wǎng)8</p><p> 3.2.4 JTAG9</p><p> 3.2.5 USB[17]9</p><p> 3.2.6 其他模塊簡介10</p><p> 3.3 搭建軟件環(huán)境10</p><p> 第4章 軟件平臺的搭建11</p><p> 4.1編譯環(huán)境搭建
18、11</p><p> 4.2 嵌入式Linux移植11</p><p> 4.1.1 Linux內(nèi)核的移植12</p><p> 4.1.2 Linux內(nèi)核的編譯13</p><p> 4.2 Bootloader13</p><p> 4.2.1 Bootloader的概念13</p>
19、;<p> 4.2.2 Bootloader的功能14</p><p> 4.2.3 vivi 介紹15</p><p> 4.3根文件系統(tǒng)的移植15</p><p> 第5章 嵌入式Linux驅(qū)動移植16</p><p> 5.1 視頻采集模塊16</p><p> 5.1.1 視
20、頻采集模塊簡介16</p><p> 5.1.2 攝像頭驅(qū)動移植16</p><p> 5.1.3 客戶端視頻流移植16</p><p> 5.1.4 視頻流采集16</p><p> 5.2 MPEG-4 簡介18</p><p> 5.3 視頻傳輸模塊19</p><p&g
21、t; 5.3.1 視頻傳輸模塊簡介19</p><p> 5.3.2 視頻服務(wù)器移植19</p><p> 5.3.3 WEB服務(wù)器的搭建20</p><p> 5.3.4 IE瀏覽器搭建20</p><p> 第6章 系統(tǒng)測試21</p><p> 6.1 Linux調(diào)試環(huán)境21</p&
22、gt;<p> 6.2 系統(tǒng)運行結(jié)果21</p><p><b> 總結(jié)22</b></p><p><b> 致謝23</b></p><p><b> ?。蹍⒖嘉墨I]24</b></p><p><b> 第1章 引言</b&g
23、t;</p><p> 1.1 嵌入式系統(tǒng)的概念</p><p> 1.1.1 嵌入式系統(tǒng)的定義[1]</p><p> 何謂嵌入式系統(tǒng)?根據(jù)IEEE(電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視和設(shè)備有耐性的裝置”(devices used to control, monitor, or assist the operation of equipm
24、ent, machinery or plants)。可以看出嵌入式系統(tǒng)是電腦軟件和硬件的結(jié)合體,還可以涵蓋機械等附屬裝置,由嵌入式處理器、應(yīng)用軟件、外圍設(shè)備和嵌入式操作系統(tǒng)組成。目前國內(nèi)一個普遍被認同的定義是:主要是以應(yīng)用為中心、其基礎(chǔ)是計算機技術(shù)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。</p><p> 嵌入式系統(tǒng)主要是是面向用戶、面向產(chǎn)品、面向應(yīng)用的,它必須和
25、具體的應(yīng)用相結(jié)合才會有生命力,更具有優(yōu)勢,因此嵌入式系統(tǒng)是與應(yīng)用緊密相結(jié)合的,具有很強的專用性,必須結(jié)合實際應(yīng)用需求對軟硬件進行裁剪,滿足應(yīng)用系統(tǒng)的體積、可靠性、功能、成本等要求。</p><p> 1.1.2 嵌入式系統(tǒng)的特征[2]</p><p> 嵌入式系統(tǒng)主要包括系統(tǒng)和應(yīng)用軟件,之前嵌入式系統(tǒng)的設(shè)計方法是采用硬件優(yōu)先的原則(在只粗略估計軟件任務(wù)的需求情況下進行硬件設(shè)計與實現(xiàn))。
26、這種設(shè)計方法只能用來改善硬件軟件各自的性能,在短短的設(shè)計時間內(nèi)無法對軟硬件系統(tǒng)設(shè)計出更加優(yōu)化的性能,還是要靠設(shè)計者不斷的實驗與從中得到的經(jīng)驗</p><p> 隨著電子系統(tǒng)功能的日益強大,硬件與軟件不再是分開的兩個概念,它們是緊密結(jié)合、互相影響的。軟硬件協(xié)同設(shè)計方法的出現(xiàn)對軟硬件進行描述、綜合和驗證采用同一的方法和工具。協(xié)同設(shè)計軟硬件體系的結(jié)構(gòu),最大限度挖掘系統(tǒng)的能力,可避免獨立設(shè)計軟硬件系統(tǒng)結(jié)構(gòu)帶來的弊端,得
27、到高性能低代價的設(shè)計方案。</p><p> 從嵌入式系統(tǒng)的定義我們可以看出如今嵌入式系統(tǒng)具有如下特征:相對于Windows的內(nèi)核要小的多,系統(tǒng)也比較精簡,有利于控制成本和系統(tǒng)的安全性;嵌入式系統(tǒng)的專用性很強,嵌入式系統(tǒng)的軟硬件都有著其獨特的設(shè)計,根據(jù)不同的任務(wù)往往系統(tǒng)的硬件也會隨之變化,所以嵌入式系統(tǒng)的軟硬件之間具有很強的專用性,很多設(shè)備微處理器是不能通用的,一般要對硬件系統(tǒng)進行移植;嵌入式系統(tǒng)中要求軟件是固
28、話儲存,用來提高其運行速度,軟件的代碼可靠性也提高,只是嵌入式系統(tǒng)高時效的作用;嵌入式系統(tǒng)的開發(fā)也需要有其獨有的開發(fā)工具與環(huán)境,這是因為嵌入式系統(tǒng)本身是沒有自主開發(fā)的能力的,其也不能直接修改程序功能,開發(fā)時,主機主要進行程序的開發(fā),目標機進行發(fā)開完畢后的執(zhí)行工作,主機與目標機交替結(jié)合進行開發(fā);為了保證在執(zhí)行程序運行時的實時性、可靠性等,嵌入式系統(tǒng)的開發(fā)更加的標準化,多任務(wù)的操作系統(tǒng)是必須使用的。</p><p>
29、 1.2 嵌入式系統(tǒng)的發(fā)展與研究意義</p><p> 1.2.1 嵌入式的發(fā)展[6]</p><p> 嵌入式系統(tǒng)自1971年興起,至今己經(jīng)歷30多年的歷史,近幾年隨著計算機、通信、消費電子的不斷發(fā)展,嵌入式技術(shù)已經(jīng)成為一個技術(shù)研究熱點。縱觀嵌入式技的發(fā)展過程,大致經(jīng)歷了四個階段。</p><p> 第一階段是以單片機為核心的可編程控制器系統(tǒng),主要功能是控
30、制設(shè)備,具有監(jiān)測、伺服、指令設(shè)備的功能。系統(tǒng)在工業(yè)控制系統(tǒng)應(yīng)用廣泛,這一階段的系統(tǒng)一般沒有操作系統(tǒng)的支持,通過匯編語言對系統(tǒng)直接控制。這個階段系統(tǒng)結(jié)構(gòu)和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口,價格低,主要用于國內(nèi)工業(yè)領(lǐng)域。</p><p> 第二階段是以嵌入式CPU為基礎(chǔ),以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。主要特點是CPU種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)具有一定的兼容性和
31、擴展性。</p><p> 第三階段是以嵌入式操縱系統(tǒng)為標志的嵌入式系統(tǒng)。主要特點是嵌入式操作系統(tǒng)能運行于各種不同類型的微處理上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理、多任務(wù)、網(wǎng)絡(luò)支持、窗形接口以及用戶界面功能;具有大量的應(yīng)用程序接口API,開發(fā)應(yīng)用程序較簡單;嵌入式應(yīng)用軟件豐富。</p><p> 第四階段是以Internet為標志的嵌入
32、式系統(tǒng),這是一個正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表嵌入式系統(tǒng)的未來。</p><p> 綜上所述,嵌入式系統(tǒng)技術(shù)日益完善,從16位嵌入式微處理器的推出,到如今32位微處理器占主導(dǎo)地位,微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域,嵌入式操作系統(tǒng)已經(jīng)從
33、簡單走向成熟,嵌入使系統(tǒng)應(yīng)用將日益廣泛。</p><p> 1.2.2 嵌入式的研究意義[4]</p><p> 嵌入式系統(tǒng)是一種以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),結(jié)合了先進的計算機技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)等的專用計算機系統(tǒng),被看作技術(shù)密集、不斷創(chuàng)新的知識集成系統(tǒng)。近幾年有著前所未有的發(fā)展,以軟硬件組成為顯著特征、以消費電子類為主導(dǎo)的智能設(shè)備發(fā)展迅速。嵌入式Linux是一個開放的、可
34、裁減的、32 位的實時操作系統(tǒng),與其他操作系統(tǒng)相比,其具有可靠性好、實時性高、內(nèi)核體積小等特點,被廣泛用于各種嵌入式設(shè)備的開發(fā),尤其應(yīng)用于工業(yè)控制、信息家電、移動通信、個人電子消費品等各個領(lǐng)域。</p><p> 未來的嵌入式設(shè)備為了適應(yīng)網(wǎng)絡(luò)發(fā)展的要求,必然要求硬件上提供各種網(wǎng)絡(luò)通信接口。傳統(tǒng)的單片機對于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開始內(nèi)嵌網(wǎng)絡(luò)接口,除了支持TCP/IP協(xié)議,還有的支IEEE1394
35、、USB、CAN、Bluetooth[20]或IrDA通信接口中的一種或者幾種,同時也需要提供相應(yīng)的通信組網(wǎng)協(xié)議軟件和物理層驅(qū)動軟件。軟件方面系統(tǒng)系統(tǒng)內(nèi)核支持網(wǎng)絡(luò)模塊,甚至可以在設(shè)備上嵌入Web瀏覽器,真正實現(xiàn)隨時隨地用各種設(shè)備上網(wǎng)。</p><p> 第2章 嵌入式linux系統(tǒng)</p><p> 2.1 嵌入式Linux系統(tǒng)</p><p> 嵌入式Lin
36、ux是日益流行的Linux操作系統(tǒng)的修改調(diào)整,因此它是可以在嵌入式計算機系統(tǒng)上運行的操作系統(tǒng)[7]。嵌入式Linux繼承了互聯(lián)網(wǎng)無限制的開放源碼的資源,同時也有嵌入式操作系統(tǒng)的特點。嵌入式Linux的特征是版權(quán)費免費,采購成本媒體成本技術(shù)支持世界的自由軟件開發(fā)者提供免費的支持網(wǎng)絡(luò)屬性,同時其優(yōu)異的性能,能夠簡單的移植軟件,開放的源碼,有許多應(yīng)用程序支持,應(yīng)用的產(chǎn)品開發(fā)周期短,新產(chǎn)品快速推向市場,因為有很多開放代碼可以引用和移植,實時性能
37、的RT_Linux Hardhat Linux[19]等嵌入式Linux支持實時性能穩(wěn)定性及安全性好。</p><p> 現(xiàn)在隨著科學(xué)技術(shù)的不斷進步,以及集成電路的規(guī)模一直在擴大提高,一批數(shù)量多、價格低、結(jié)構(gòu)精巧、功能強大的CPU出現(xiàn)在市場上,同時這也給了嵌入式Linux系統(tǒng)提供了一個豐富的硬件平臺。目前嵌入式Linux在應(yīng)用上遠遠超過了普通的計算機系統(tǒng),其應(yīng)用領(lǐng)域非常廣泛,主要的應(yīng)用領(lǐng)域是信息家電、PDA、機
38、頂盒、數(shù)字電話答錄機、以太網(wǎng)交換機、數(shù)據(jù)網(wǎng)絡(luò)、路由器、集線器、遠程訪問服務(wù)器、ATM、醫(yī)療電子、交通電腦外圍設(shè)備、工業(yè)控制、航空航天等領(lǐng)域[8]。</p><p> 2.2 嵌入式 Linux的特點及優(yōu)勢[11]</p><p> Linux是一個類似于Unix操作系統(tǒng),起源于芬蘭名為Linux Torvalds的愛好者,是現(xiàn)在最流行的是一個開源的操作系統(tǒng)。Linux操作系統(tǒng)的最大優(yōu)點
39、是其自由和開放的源代碼,和它的穩(wěn)定性和可靠性。Linux操作系統(tǒng),因為它的開放性和得到了最多的公司的支持,用戶可以根據(jù)自己的需要修改,還可以使用眾多的在線資源和網(wǎng)絡(luò)開發(fā)人員,更方便地獲得必要的技術(shù)支持。網(wǎng)絡(luò)技術(shù)的進步和Linux的開發(fā),Linux系統(tǒng)已經(jīng)成為了微軟公司的Windows系列產(chǎn)品的一個強大的對手。許多開發(fā)人員自己不希望在操作系統(tǒng)上的程序受制于他人和增加產(chǎn)品開發(fā)成本,所以開源Linux是最好的起點。Linux有偉大的自由發(fā)展小
40、組。此外,由于其開放性工程師對系統(tǒng)可以更好的理解,而且可以針對特定的硬件解決方案和產(chǎn)品需要優(yōu)化。目前,在行業(yè)已經(jīng)達成了一項共識:嵌入式Linux是代表總體趨勢,其巨大的市場潛力和釀造的無限的商機將吸引眾多制造商進入這一領(lǐng)域。</p><p> Linux系統(tǒng)不僅可以運行在PC平臺,同時在嵌入式系統(tǒng)中大放異彩。Linux從1991年開始至今,在20年的短時間已經(jīng)發(fā)展成為一個強大的、提高設(shè)計的操作系統(tǒng),Linux由
41、于其自身的特點,在這個領(lǐng)域的嵌入式系統(tǒng)可以說是取得了快速的發(fā)展,</p><p> 該操作系統(tǒng)有以下優(yōu)勢:</p><p> Linux是開源的,沒有黑箱技術(shù),許多Linux世界各地的愛好者們是Linux開發(fā)人員強有力的技術(shù)支持,和其他嵌入式操作系統(tǒng),比如Windows CE、VxWorks系統(tǒng)是一個非開放的操作系統(tǒng),這樣第三方很難實現(xiàn)定制產(chǎn)品。</p><p>
42、; Linux源代碼是可用的,內(nèi)容豐富,文檔是完整的,容易解決各種問題。</p><p> Linux內(nèi)核小,效率高,內(nèi)核的更新速度很快,而且是可以定制的,其系統(tǒng)內(nèi)核最小只有約134KB,WindowsCE在這很尷尬,占據(jù)了過多的RAM。</p><p> Linux首次實現(xiàn)了TCP / IP協(xié)議棧的操作系統(tǒng),他的核心結(jié)構(gòu)在網(wǎng)絡(luò)方面很完整,并提供包括10Mbit、100Mbit和10
43、00Mbit以太網(wǎng)網(wǎng)絡(luò),以及無線網(wǎng)絡(luò), Token Ring和光纖和衛(wèi)星支持,它是依賴于網(wǎng)絡(luò)設(shè)備是最好的選擇。</p><p> Linux內(nèi)核結(jié)構(gòu)設(shè)計考慮自適應(yīng)系統(tǒng)可以降低要求,因此用戶可以根據(jù)自己的需求使用內(nèi)核來減少。</p><p> Linux可靠性高,可以說是經(jīng)驗證的,可以用在這里的主要任務(wù)和操作系統(tǒng)的情況。例如,Web服務(wù)器在世界中,絕大多數(shù)是Linux操作系統(tǒng)。每天我們通
44、過網(wǎng)絡(luò)瀏覽,24小時運行,證明了Linux的可靠性[13]。</p><p> 第3章 系統(tǒng)的硬件與軟件環(huán)境</p><p> 3.1 系統(tǒng)的基本原理與結(jié)構(gòu)[15]</p><p> 通過查閱的大量有關(guān)嵌入式系統(tǒng)的資料,了解到本系統(tǒng)的基本原理思想是將攝像頭通過USB接口連接到嵌入式系統(tǒng)板的USBHOST,將嵌入式Web服務(wù)器與視頻端整合在一起。攝像頭采集視頻圖
45、像信號壓縮過之后,由內(nèi)部的總線傳送到內(nèi)置的Web服務(wù)器上,客服端通過B/S結(jié)構(gòu)可以在IE瀏覽器上訪問Web服務(wù)器上看到視頻傳輸后的畫面。</p><p> 嵌入式系統(tǒng)的基本結(jié)構(gòu)包含3個部分,如圖3.1所示。</p><p> 圖 3.1 嵌入式系統(tǒng)的基本結(jié)構(gòu)</p><p> 嵌入式應(yīng)用程序是利用操作系統(tǒng)運用在操作系統(tǒng)上,通過操作系統(tǒng)的機制來完成特定功能的嵌入
46、式應(yīng)用。</p><p> 嵌入式操作系統(tǒng)有著內(nèi)核小專用性強等特點,是完成嵌入式任務(wù)的跳讀和控制的核心。不同的應(yīng)用通常有不同的硬件環(huán)境,硬件環(huán)境是整個嵌入式操作系統(tǒng)和應(yīng)用程序運行的硬件平臺且硬件平臺的多樣性是嵌入式系統(tǒng)的一個主要特點。</p><p> 3.2 構(gòu)建系統(tǒng)硬件環(huán)境</p><p> 系統(tǒng)硬件平臺功能如圖3.2所示。硬件方面采用S3C2410處理器
47、,基于ARM處理器的常用系統(tǒng),嵌入式硬件平臺采用以S3C2410處理器為核心,主要包括了以太網(wǎng)接口模塊、USB接口模塊、LCD接口模塊和JTAG模塊等。</p><p> 圖 3.2 系統(tǒng)硬件框圖</p><p> 3.2.1 ARM處理器的介紹</p><p> ARM是Advanced RISC Machines的簡稱,它是一種處理器,它也是一個公司的名字
48、。ARM公司成立于1990年11月在英國劍橋,這是一個世界領(lǐng)先的16 / 32處理器的嵌入式解決方案供應(yīng)商,為全球各大電子公司提供高性能,低成本高效率的精簡指令集處理器,外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。相比其他嵌入式處理器,ARM有三個特點:體積小,低功耗,低成本和高性能;16 / 32雙指令集;全球眾多合作伙伴。</p><p> ARM公司專注于設(shè)計。ARM核以其優(yōu)異的性能、體積小、功耗低、緊湊的代碼密度和多個來源
49、的優(yōu)秀組合而著名的,它的RISC性能是行業(yè)的領(lǐng)導(dǎo)者,具有體積小集成在一起,成本最低的芯片,以很低的功耗和價格來提供高性能處理器。ARM已經(jīng)成為手機、掌上電腦、多媒體數(shù)碼消費者和其他嵌入式RISC解決方案的標準。</p><p> ARM處理器以優(yōu)異的性能,使系統(tǒng)設(shè)計者可以充分滿足要求的精確解答。從第三方制造商的廣泛的支持,設(shè)計師可以使用豐富的標準開發(fā)工具和臂優(yōu)化軟件。ARM架構(gòu)基于RISC精簡指令集計算機(RI
50、SC)原則。RISC指令集相關(guān)聯(lián)的解碼機制比復(fù)雜指令集(CISC)設(shè)計更簡單。這個簡單的體系結(jié)構(gòu)的ARM已經(jīng)充分反映:高指令的吞吐量;優(yōu)秀的實時中斷響應(yīng);體積小高性價比處理器宏單元。ARM32架構(gòu)被公認為行業(yè)領(lǐng)先的32位嵌入式RISC微處理器核心,所有的ARM處理器分享這個系統(tǒng)結(jié)構(gòu)。這確保當開發(fā)人員更高性能處理器,在軟件開發(fā)中可以獲得最大回報的。ARM處理器本身是32位設(shè)計,還配備了16個THUMB指令集,來運行這個軟件編碼為更短的16
51、位指令。和相當于32代碼,thumb指令集使用的內(nèi)存空間的儲蓄的35%,但是保留了一部分32位優(yōu)勢的系統(tǒng)。Thumb狀態(tài)和正常的ARM之間的切換狀態(tài)是零的開銷。如果需要,每個例程使用切換。這允許設(shè)計者完成優(yōu)化控制軟件。ARM的Jazelle技術(shù)提供了Java加速,可以基于軟件的Java虛擬機(JVM)更高的性能。與相同的非Java加速原子核相比,減少了80%的電力消耗。這些</p><p> 3.2.2 S3C
52、2410</p><p> 基于上面的介紹,該系統(tǒng)采用ARM9 S3C2410處理器。圖3.3為S3C2410實物圖。三星電子公司生產(chǎn)S3C2410是基于ARM920T處理器RISC核心16/32。 為了降低系統(tǒng)的成本和降低的外圍設(shè)備,芯片還整合成以下組件:16 K緩存命令,16 K數(shù)據(jù)緩存、MMU、外部內(nèi)存控制器,控制器的液晶(支持STN和TFT),NAND閃存控制器,4 DMA通道,3通道UART、1個I2
53、C總線控制器,I2S總線控制器以及4頻道PWM定時器和一個內(nèi)部定時器,通用I / O端口、實時時鐘、8通道10 位ADC和觸摸屏界面,USB主/從口,SD卡界面,及2頻道SPI和PLL鎖相環(huán)的時鐘。本芯片是目前廣泛應(yīng)用于PDA、移動通訊、路由器、工業(yè)控制等。</p><p> 圖3.3 S3C2410實物圖</p><p> S3C2410片上外設(shè)詳細介紹如下:</p>
54、<p> ?。?)1.8 V核心電壓、電壓3.3伏內(nèi)存,3.3 V外部I / O電壓;</p><p> (2)外部存儲控制器(SDRAM控制器和芯片邏輯);</p><p> ?。?)LCD控制器(支持4 K色STN和256 K色液晶顯示器);</p><p> ?。?)與外部請求插頭的4通道DMA;</p><p> ?。?)
55、3通道UART,2通道SPI;</p><p> (6)1通道主要IIC總線和1通道道IIC控制器;</p><p> ?。?)2 USBl.1主要的設(shè)備接口,USB1.1從設(shè)備接口;</p><p> ?。?)4頻道PWM定時器以及通道內(nèi)部定時器;</p><p> ?。?)看門狗定時器;</p><p> ?。?
56、0)版本1 SD接口,兼容2.11版本的MMC接口;</p><p> ?。?1)117個常見的I / O端口,一個24外部中斷源;</p><p> ?。?2)電源模式:正常、低功耗、休閑和省電模式;</p><p> ?。?3)8頻道10位ADC和觸摸屏口;</p><p> ?。?4)與日歷功能RTC(實時控制器);</p>
57、<p> ?。?5)在芯片與PLL時鐘生成器。</p><p> 圖3.4為S3C2410的外部資源結(jié)構(gòu)圖。</p><p> 圖3.4 S3C2410資源結(jié)構(gòu)圖</p><p> 在具有豐富的外圍資源S3C2410芯片上,大大減少的外圍設(shè)備了需求,提高系統(tǒng)的集成和可靠性。在一個內(nèi)存管理系統(tǒng),S3C2410也有自己的突出特點。芯片支持大端和小端處
58、理器模式,支持8個128M的內(nèi)存地址空間,每個Bank支持8/16/32位數(shù)據(jù)總線編程,擁有一個起始地址和大小的可編程Bank7和7個開始地址固定Bank0-6,所有內(nèi)存Bank可以編程解決尋址周期,支持外部信號擴展總線周期。支持SDRAM的自動刷新,支持多種類型的ROM啟動,包括: NOR 閃存、,NAND閃存,9eeprom等。</p><p><b> 3.2.3 以太網(wǎng)</b>&l
59、t;/p><p> 以太網(wǎng)是一種廣泛使用的通用PC機的局域網(wǎng)技術(shù),嵌入式系統(tǒng)是連接到以太網(wǎng),從而讓嵌入式有更多的智能設(shè)備。我在這里使用了低功耗、高性能16位CS8900A以太網(wǎng)控制器。這個芯片使用起來較靈活,它的物理層接口、數(shù)據(jù)傳輸模式和工作模式可以根據(jù)需要動態(tài)調(diào)整,根據(jù)內(nèi)部寄存器的設(shè)置以適應(yīng)不同的應(yīng)用程序。</p><p> CS8900A主要特點有:內(nèi)置引擎為802.3MAC;符合IE
60、EE802.3以太網(wǎng)標準,并帶有ISA接口;內(nèi)置4K字節(jié)RAM;有I/O、DMA等多種操作模式;支持10Base2、10Base5和10BaseT的AUI接口;全雙工操作。</p><p> 在S3C2410與CS8900A之間的數(shù)據(jù)傳輸采用I/O模式,然后讀寫管腳nMEMR#和nMEMW#需要設(shè)置成高電平,從而可以關(guān)閉存儲器方式。CS8900A通過一個隔離變壓器連接到以太網(wǎng)上。在發(fā)送端隔離變壓器E2023變壓
61、比為1:2.5,在接受端隔離變壓器E2023變壓比為l:l。變壓器的作用是將外部線路與CS8900A隔離開,防止干擾和帶電插拔的時候燒壞元器件。</p><p> 3.2.4 JTAG</p><p> JTAG是聯(lián)合測試團隊(Joint Test ActionGroup)的英文縮寫,由JTAG團隊采用的芯片測試協(xié)議的問題被確定為國際標準和使用的名字。在這個系統(tǒng)中,JTAG接口用于Fl
62、ash燒錄程序和模擬接口,并在同一時間,作為一個共同的平臺,擴展性和適應(yīng)性都要求有JTAG接口系統(tǒng)。JTAG基于ieeell49.1系統(tǒng)是標準的邊界掃描測試,主要用于集成電路芯片掃描測試。最先進的芯片,如:數(shù)字信號處理器(DSP),可編程邏輯器件(CPLD),現(xiàn)場可編程門陣列(FPGA)和該系統(tǒng)使用的ARM芯片測試接口,支持JTAG邊界掃描測試標準。</p><p> JTAG4條主要的接口信號:測試時鐘輸入線
63、,測試數(shù)據(jù)輸入線,測試數(shù)據(jù)輸出線的應(yīng)用和測試模式選擇線,及一個可選的信號線:測試復(fù)位線,和地線。在設(shè)計與雙列引腳連接器的S3C 2410測試線可以得出。如圖3.5為JTAG的接口電路圖。</p><p> 圖3.5 JTAG接口電路圖</p><p> 3.2.5 USB[17]</p><p> S3C2410成功的集成了USB主機控制器和設(shè)備控制器,在其外
64、部有2個USB主設(shè)備接口和一個從設(shè)備接口。S3C2410的USB模塊遵從OHCll.0標準并兼容USB1.1標準,USB控制器有著三種傳輸方式:DMA的批量傳輸、中斷傳輸和控制傳輸。S3C2410按照USB1.1標準協(xié)議連接即可,引出的USB連接口十分方便,同時支持低速和高速的USB設(shè)備傳輸。下圖為USB主機接口電路圖。</p><p> 圖3.6 USB主機接口電路</p><p>
65、 其中,DNO與NPO是S3C2410的USB主機控制模塊引腳。</p><p> 3.2.6 其他模塊簡介</p><p> 鍵盤和液晶顯示LCD模塊嵌入在人機界面設(shè)計的最重要的一部分。在設(shè)計的獨立式鍵盤按鍵的方法,每一個關(guān)鍵環(huán)節(jié)S3C2410的外部中斷的管腳。當按鈕被按下,產(chǎn)生電平觸發(fā)中斷信號。S3C2410內(nèi)置液晶控制器,并支持三種類型的液晶屏幕:四位雙掃描,四位單掃描,八位單掃
66、描顯示類型;支持單色模式,4級和16級灰度液晶,256色和4096色液晶;支持不同大小的LCD(640 x480,320×240,160 x160)等。</p><p> 3.3 搭建軟件環(huán)境</p><p> 搭建軟件平臺主要設(shè)計做了以下工作:編譯的環(huán)境搭建為建立交叉編譯環(huán)境;嵌入式Linux的移植,對嵌入式Linux內(nèi)核移植和Bootloader的移植。下圖3.7為軟件部
67、分整體框架。</p><p> 圖3.7 軟件部分整體框架</p><p> 第4章 軟件平臺的搭建</p><p><b> 4.1編譯環(huán)境搭建</b></p><p> 嵌入式系統(tǒng)軟件開發(fā)通常采用交叉編譯調(diào)試模式。在主機上建立交叉編譯器調(diào)試環(huán)境,使用開發(fā)板叫做目標板。一般的主機和目標板上使用不同的CPU,所以
68、我們使用相應(yīng)的交叉編譯器來生成相應(yīng)的目標板操作的代碼。由理查德·斯托爾曼發(fā)展GNU編譯器將提供這個功能,在嵌入式開發(fā)工作之前,我們必須準備一個PC作為主機,和電腦安裝了相對的操作系統(tǒng),在目標板安裝在嵌入式Linux操作系統(tǒng)。然后,在主機上建立交叉編譯調(diào)試開發(fā)環(huán)境。當然,我們可以直接下載相應(yīng)的交叉編譯工具,本文的主機arm-linux-gcc3.1.4,使用C語言編碼視頻采集程序,使用一個交叉編譯器工具調(diào)試,并最終生成可執(zhí)行代碼
69、,然后將可執(zhí)行代碼移植到目標平臺。構(gòu)建交叉編譯環(huán)境是嵌入式開發(fā)是一個至關(guān)重要的一個步驟。大多數(shù)的ARM設(shè)備平臺并沒有提供充足的資源進行編譯的過程,所以大部分的翻譯工作在主機中進行,搭建一個ARM-Linux交叉編譯環(huán)境在主機上編譯相應(yīng)的應(yīng)用程序,生成的代碼可以在ARM平臺上運行。</p><p> 在Linux下的嵌入式交叉編譯環(huán)境主要目標系統(tǒng)的編譯器gcc;目標系統(tǒng)的二進制工具binutils,包括ar,ob
70、jeopy,strip工具集;目標系統(tǒng)庫glibc;目標系統(tǒng)的Linux內(nèi)核頭文件以和 GNU Make工具。</p><p> 由于建立一個交叉編譯器環(huán)境是一個很復(fù)雜的過程,所以本系統(tǒng)采用預(yù)編譯完的交叉編譯器工具鏈,交叉工具鏈cross-3.3.2.tar.bz2可以很好地應(yīng)用于該系統(tǒng)使用Linux-2.6.8內(nèi)核。從互聯(lián)網(wǎng)下載到PC主機,將提取安裝到宿主Linux系統(tǒng)中,步驟如下:</p>&
71、lt;p> ?。?)在宿主機/usr/local目錄下建一個目錄名為ARM;命令對#:MKDIR/usr/local/ARM;</p><p> ?。?)cross-3.3.2.tar.bz2副本;</p><p> ?。?)到當前目錄轉(zhuǎn)到/usr/local/arm,解壓壓縮包;命令:tar-jxvf cross-3.3.2.tar. ba2;</p><p&g
72、t; ?。?)將解壓下的目錄/bin添加到環(huán)境變量當中去,并且命令:</p><p> #exportPATH =/usr/local/arm/3.3.2/bin:$PATH</p><p> 的交叉編譯器構(gòu)建環(huán)境。</p><p> 4.2 嵌入式Linux移植</p><p> Linux作為一個完整和穩(wěn)定的開放源代碼的操作系統(tǒng)
73、,可以運行在多種硬件平臺,包括X86,電腦電源,ARM等使標準Linux可以在不同的處理器上運行的工作臺,需要后移植的過程。移植從軟件是一套軟件可以在不同的硬件平臺,在正常操作過程。這意味著,我們的軟件為Linux操作系統(tǒng),硬件的ARM 9處理器為核心芯片的平臺。操作系統(tǒng)作為硬件上運行平臺和應(yīng)用程序之間的程序代碼,操作系統(tǒng)的移植以ARM 9處理器平臺,說一些很受歡迎的ARM 9處理器結(jié)構(gòu),操作系統(tǒng)相應(yīng)的修正,將很快的平臺的部分進行修改。
74、內(nèi)核移植一方面包括:,Linux內(nèi)核的移植,啟動代碼Bootloader的移植。</p><p> 4.1.1 Linux內(nèi)核的移植</p><p> 從http://www.kernel.org/pub/linux/kernel/v2.6/linux2.6.14.tar.bz2下載linux2.6.14內(nèi)核至home/arm/dev_home/kernel。</p>&
75、lt;p> [root@localhost~]#su arm</p><p> [arm@localhost~]#cd $KERNEL</p><p> [arm@localhost kernel]#tar xzvf linux2.6.14.tar.gz</p><p> [arm@localhost kernel]#pwd</p>&l
76、t;p> /home/arm/dev_home/kernel</p><p> [arm@localhost kernel]#cd linux2.6.14</p><p> 進入內(nèi)核解壓后的目錄。</p><p> 修改內(nèi)核目錄樹根下的的Makefile,指明交叉編譯器。</p><p> [arm@localhost lin
77、ux2.6.14]#</p><p> vi Makefile</p><p> 找到ARCH和CROSS_COMPILE,修改</p><p><b> ARCH?=arm</b></p><p> CROSS_COMPILE?=armlinux</p><p> 然后設(shè)置PATH環(huán)境
78、變量,使其可以找到交叉編譯工具鏈。</p><p> [arm@localhost linux2.6.14]#</p><p> echo $PATH</p><p> /usr/local/arm/3.4.4/bin:/usr/kerberos/bin:/usr/10cal/bin:/usr/bin:/bin:/</p><p>
79、usr/X1lR6/bin:/home/ly/bin</p><p> 如果/usr/local/arm/3.4.4/bin搜索路徑,加入下面語句在~/.bashrc中</p><p> [arm@localhost linux2.6.14]#</p><p> vi~/.bashrc</p><p> export PATH=/us
80、r/local/arm/3.4.4/bin: $PATH</p><p> 為了我們的內(nèi)核支持devfs以及在啟動時并在/sbin/init運行之前能自動掛載/dev21為devfs文件系統(tǒng),修改fs/Kconfig文件</p><p> [arm@localhost linux2.6.14]$</p><p> vi fs/Kconfig</p>
81、<p> 找至menu”Pseudo filesystems”添加如下語句:</p><p> config DEVFs_FS</p><p> bool”/dev file system support(OBSOLETE)”</p><p><b> default y</b></p><p>
82、 config DEVFS_MOUNT</p><p> bool”Automatically mount at boot”</p><p><b> default y</b></p><p> depends on DEVFS_FS</p><p> 配置內(nèi)核產(chǎn)生config文件:</p>&l
83、t;p> [arm@localhost linux2.6.14]$</p><p> cp arch/arm/configs/smdk2410_defconfig/config</p><p> [arm@localhost linux2.6.14]$</p><p> make menuconfig</p><p> 接下來
84、做的是針對文件系統(tǒng)的設(shè)置,目標板上要上的文件系統(tǒng)是cramfs,故做如下<>Second extended fs support#去除對ext2的支持</p><p> Pseudo filesystems></p><p> [*]/proc file system support</p><p> [*]Virtual memory fi
85、le system support(former shm fs)</p><p> [*]/dev file system support(OBSOLETE)</p><p> [*]Automatically mount at boot(NEW)</p><p> #這里會看到我們先前修改fs/Kconfig的成果,devfs已經(jīng)被支持上了</p>
86、;<p> Miscellaneous filesystems></p><p> <*>Compressed ROM file system support(cramfs)</p><p><b> #支持cramfs</b></p><p> Network File Systems></
87、p><p> <*>NFS file system support</p><p> 保存退出,產(chǎn)生.config文件。</p><p> .config文件能從提供的2.6.14的內(nèi)核包中找到,文件名為config.back。</p><p> 4.1.2 Linux內(nèi)核的編譯</p><p> 編
88、譯內(nèi)核是相對比較簡單的,只要實施以下命令:</p><p> (1) make clean這個命令在正式編譯內(nèi)核時先清理環(huán)境,以確保沒有錯誤.O文件存在。</p><p> (2) make dep這個命令是要編譯相關(guān)的依賴文件。</p><p> (3) make zlmage這個命令是最終的編碼命令。</p><p> (4) m
89、ake install這個命令可以相關(guān)文件復(fù)制到默認目錄。當然,在嵌入式設(shè)備的編譯時這一步可以去掉。因為特定的內(nèi)核安裝應(yīng)該手動執(zhí)行,生成的zlmage(bzlmage)文件是最終得到的內(nèi)核映像文件,它是與我們的硬件平臺相關(guān)的,是建立在Makefile文件中,因為我們使用ARM平臺,因此圖像文件在arch/arm/boot/zlmage下。</p><p> 4.2 Bootloader</p>&
90、lt;p> 4.2.1 Bootloader的概念</p><p> Bootloader引導(dǎo)加載程序是在操作系統(tǒng)內(nèi)核操作前的一個小程序,用于初始化硬件設(shè)備、內(nèi)存空間,為最后調(diào)用操作系統(tǒng)內(nèi)核環(huán)境好。Bootloader引導(dǎo)加載程序是嚴重依賴硬件實現(xiàn),所以沒有一般的Bootloader,但可以得出結(jié)論,以指導(dǎo)用戶特定的Bootloader引導(dǎo)裝載程序設(shè)計和實現(xiàn)。大多數(shù)的Bootloader分為第一和第二階
91、段兩大部分。在第一階段的存儲設(shè)備的初始化代碼依賴系統(tǒng)結(jié)構(gòu)的匯編代碼。第二階段的代碼有相對較高的可讀性和可移植性,通常使用C語言來實現(xiàn)更復(fù)雜的功能。</p><p> Bootloader引導(dǎo)裝載程序首先出現(xiàn)在計算機領(lǐng)域。在個人計算機系統(tǒng),當系統(tǒng)開始,第一個程序運行的是主板BIOS。BIOS程序負責(zé)底層硬件初始化和后續(xù)程序提供了訪問硬件接口的功能。當BIOS過程完成后,將推動MBR開始的代碼復(fù)制到內(nèi)存并執(zhí)行,該代
92、碼的操作系統(tǒng)啟動過程通常被稱為Bootloader引導(dǎo)加載程序。在這里,BIOS系統(tǒng)將給控制權(quán)給引導(dǎo)加載程序,引導(dǎo)加載程序?qū)⑻峁┮恍┫到y(tǒng)的參數(shù)來操作系統(tǒng)內(nèi)核,操作系統(tǒng)可以在一個特定的系統(tǒng)環(huán)境可以成功啟動。</p><p> 然而,對于嵌入式系統(tǒng),它通常不喜歡BIOS固件,這樣整個系統(tǒng)加載啟動任務(wù)全由引導(dǎo)裝載程序完成。和嵌入式系統(tǒng),不同的硬件系統(tǒng)有成千上萬的方式,這些硬件的一些初始化工作之前還必須執(zhí)行操作系統(tǒng)啟動
93、。這導(dǎo)致了嵌入式系統(tǒng)引導(dǎo)裝載程序功能和特定的實現(xiàn)遠遠超過PC系統(tǒng)的復(fù)雜程度。嵌入式系統(tǒng)BootLoader:是一個單獨的程序代碼存儲在目標平臺,非易失性存儲介質(zhì)。通過這個項目,我們可以初始化硬件設(shè)備,設(shè)置內(nèi)存空間映射,將系統(tǒng)的硬件和軟件環(huán)境放在一個相對適當?shù)奈恢?,以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。因為引導(dǎo)裝載程序代碼直接面對處理器核心和硬件控制器編程,通常使用匯編語言。一般的內(nèi)容包括中斷矢量表、初始化內(nèi)存系統(tǒng),初始化堆棧,初始
94、化用戶程序的執(zhí)行環(huán)境、改變處理器模式和調(diào)用主應(yīng)用程序。</p><p> 4.2.2 Bootloader的功能</p><p> Bootloader是過度依賴于硬件而實現(xiàn)的。每一個不同體系結(jié)構(gòu)的處理器都有不同的Bootloader。但是Bootloader的發(fā)展也傾向于支持各種體系結(jié)構(gòu),如U-Boot從開始就只支持PowerPC,如今還支持PowerPC,ARM,MIPS,X86和
95、其他體系結(jié)構(gòu)。除了依靠于處理器的體系結(jié)構(gòu)外,Bootloader實際上取決于特定的嵌板設(shè)備配置,也就是說,對于兩塊不同的嵌入式板而言,即使它們是由同一種處理器構(gòu)建的,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,通常也都需要對Bootloader進行移植。所以在嵌入式世界里建立一個通用的Bootloader幾乎是不可能的。于是出現(xiàn)多種引導(dǎo)加載程序,如armboot,blob,redboot,vivi和U-Boo
96、t等。盡管如此,我們?nèi)匀豢梢詫ootloader歸納出一個通用的啟動流程來。</p><p> Bootloader通常是任何硬件上執(zhí)行的第一段代碼。要安裝它并給出其控制,引導(dǎo)加載程序來執(zhí)行以下類型的功能:</p><p> (1)初始化CPU速度;</p><p> (2)初始化內(nèi)存,包括啟用內(nèi)存銀行、初始化內(nèi)存配置寄存器;</p><
97、p> (3)來初始化串行端口;</p><p> (4)啟用指令/數(shù)據(jù)緩存;</p><p> (5)設(shè)置堆棧指針;</p><p> (6)設(shè)置參數(shù)和結(jié)構(gòu)參數(shù)的區(qū)域結(jié)構(gòu)和識別;</p><p> (7)實現(xiàn)的POST來標識現(xiàn)有設(shè)備,并報告任何問題;</p><p> (8)為電源管理提供一個暫停/恢
98、復(fù)支持;</p><p> (9)跳轉(zhuǎn)到開始內(nèi)核。一旦你將引導(dǎo)裝載程序安裝到目標的閃存,它將會執(zhí)行我們上面提到的所有初始化。然后,它準備接收來自主機的內(nèi)核和文件系統(tǒng)。一旦加載到內(nèi)核,引導(dǎo)加載程序?qū)⒖刂茩?quán)交給內(nèi)核。</p><p> 在啟動時Bootloader只運行在很短的時間,但對于嵌入式系統(tǒng),它是一個非常重要的系統(tǒng)組成部分。當我們使用單片機這種操作系統(tǒng),通常只需要初始化CPU和其他
99、硬件設(shè)備,可以直接加載程序,不需要單獨建立一個引導(dǎo)加載程序。但對于一個大型的系統(tǒng),建立或移植的引導(dǎo)程序,可以給后續(xù)發(fā)展帶來很多便利。大多數(shù)的引導(dǎo)裝載程序包含兩個不同的操作模式:啟動加載程序模式和下載模式。</p><p> 啟動加載程序模式:在這種模式下, Bootloader從目標機的固態(tài)存儲設(shè)備中將操作系統(tǒng)加載到RAM運行,整個過程沒有用戶干預(yù)。這個模式是引導(dǎo)裝載程序正常模式,因此在嵌入式產(chǎn)品的發(fā)布時,引導(dǎo)
100、裝載程序必須工作在這個模式。</p><p> 下載模式:在這種模式下,目標機上的Bootloader通過串口、USB接口或網(wǎng)絡(luò)等通訊手段從開發(fā)機上下載內(nèi)核映像和根文件系統(tǒng)映像等到RAM中。然后可以再被Bootloader寫到目標機上的固態(tài)存儲介質(zhì),或者直接引導(dǎo)系統(tǒng)。前一種功能通常是第一次使用編寫內(nèi)核與根文件系統(tǒng)到固態(tài)存儲介質(zhì)時或者當系統(tǒng)更新使用;后者為開發(fā)人員早期的發(fā)展過程。工作于這種模式下的Bootload
101、er通常都會向它的終端用戶提供簡單的命令行接口。Bootloader與主機之間進行文件傳輸所用的通信設(shè)備及協(xié)議,最常見的情況就是通過串口與主機之間進行文件傳輸,傳輸協(xié)議通常是Xmodem/Ymodem/Zmodem協(xié)議中的一種。但串行傳輸速度是有限的,所以通過以太網(wǎng)連接,并通過使用TFTP協(xié)議或通過USB接口下載該文件是一個更好的選擇。</p><p> 4.2.3 vivi 介紹</p><
102、;p> Vivi是現(xiàn)今很受歡迎的一款專門為ARM9處理器的設(shè)計的Bootloader,其操作方便的同時還提供一個完整的命令系統(tǒng)。Vivi是韓國Mizi公司開發(fā)了一個Bootloader,適合ARM9處理器,支持S3C2410處理器,它的源代碼可以在www.mizi.com網(wǎng)站上下載。就像和其他的Bootloader一樣,vivi的兩種工作模式,即啟動加載程序模式和下載模式。在啟動加載模式系統(tǒng)可以及時啟動Linux內(nèi)核。在下載模式
103、,vivi提供了一個命令行接口,該接口可以使vivi完成相應(yīng)的功能。</p><p> 4.3根文件系統(tǒng)的移植</p><p> 根文件系統(tǒng)是存放Linux系統(tǒng)所必需的各種工具軟件、庫文件、腳本、配置文件和其他特殊文件的地方。根文件的移植具有以下幾個步驟:建立根文件系統(tǒng)目錄root,并在root目錄下創(chuàng)建一些子目錄/Bin、zetc、 /Proe、/lib、/user;編譯busybo
104、x可以提供一百多種GNU常用工具。Busybox所有命令都編譯成一個文件,sh、ep、is等其他命令都是指向busybox文件的鏈接;啟動腳本的編寫的一般系統(tǒng)啟動,都被要求能夠執(zhí)行相應(yīng)的初始化操作,寫在命令行的init=/linuxrc;制作eramfs映像,#mkcramfs root root.cramfs,root.cramfs是支持yaffs的cramfs格式根文件映像。到此為止,根文件系統(tǒng)生成完成,通過bootloader的燒
105、寫功能移植到目標板上。</p><p> 第5章 嵌入式Linux驅(qū)動移植</p><p> 5.1 視頻采集模塊</p><p> 5.1.1 視頻采集模塊簡介</p><p> 在Linux操作系統(tǒng),所有外部設(shè)備被視為是一種特殊的文件,稱為外設(shè)文件。內(nèi)核和應(yīng)用程序之間的接口是一個系統(tǒng)調(diào)用,而外部設(shè)備驅(qū)動是內(nèi)核之間的接口和外圍設(shè)備,
106、外部設(shè)備驅(qū)動程序可以完成設(shè)備的初始化,提供各種操作設(shè)備文件和中斷處理功能,使得對外操作像正常文件。攝像頭屬于視頻設(shè)備類,按照標準videoforlinux(v4l)標準。v4l標準可提供音頻接口規(guī)范,是所有的音頻和視頻設(shè)備的接口驅(qū)動程序,包括內(nèi)核,驅(qū)動程序,應(yīng)用程序的通信標準。目前v4l標準除了包括音頻和視頻捕獲和處理的內(nèi)容,包括USB攝像頭。視頻應(yīng)用程序通過標準系統(tǒng),操作各種不同的視頻捕獲設(shè)備。v4l注冊視頻設(shè)備的虛擬文件,可通過應(yīng)用
107、視頻設(shè)備訪問的實現(xiàn)。</p><p> 該系統(tǒng)的視頻采集分成兩個步驟,第一步是在內(nèi)核接口寫入攝像頭相機的驅(qū)動程序,下一步是為獲取視頻數(shù)據(jù)上的應(yīng)用開發(fā)。我們利用現(xiàn)有的接口的攝像頭的驅(qū)動程序,同時編譯了上層視頻數(shù)據(jù)采集和編碼程序。</p><p> 5.1.2 攝像頭驅(qū)動移植</p><p> 我們使用USB攝像頭是中星微公司設(shè)計的zc301芯片的攝像頭,其輸出J
108、PEG格式的圖像,圖像質(zhì)量,和自動曝光控制和白平衡控制,市場目前主流的視頻處理芯片。USB攝像頭的程序是一種復(fù)雜的模塊,因為它不僅關(guān)系到攝像頭內(nèi)部CMOS圖像采集芯片的操作,而且還可以和USB接口的相關(guān)操作的,獨立發(fā)展的相對難度比較大。這里我們使用互聯(lián)網(wǎng)對這些攝像頭驅(qū)動程序補丁,將遷移到嵌入式ARM板子上。</p><p> 5.1.3 客戶端視頻流移植</p><p> 客戶端的流媒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于ARM的無線視頻傳輸系統(tǒng)設(shè)計.pdf
- 大學(xué)生g視頻傳輸畢業(yè)論文
- 基于ARM9的視頻傳輸系統(tǒng)研究.pdf
- 基于ARM的遠程視頻傳輸系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于rtprtcp協(xié)議的實時視頻傳輸實現(xiàn)與應(yīng)用---畢業(yè)論文
- 基于rtprtcp協(xié)議的實時視頻傳輸實現(xiàn)與應(yīng)用---畢業(yè)論文
- 基于ARM9的無線視頻傳輸系統(tǒng)的研究.pdf
- 基于無線Mesh網(wǎng)絡(luò)的井下視頻傳輸系統(tǒng).pdf
- 基于XMPP的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的研究.pdf
- 基于SOPC的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的研制.pdf
- 基于ARM的嵌入式無線視頻傳輸系統(tǒng)的設(shè)計.pdf
- 畢業(yè)論文---基于arm的視頻采集系統(tǒng)的設(shè)計
- 基于ARM的無線視頻傳輸硬件系統(tǒng)的初步研究與開發(fā).pdf
- 基于802.11網(wǎng)絡(luò)的無線視頻傳輸系統(tǒng)設(shè)計
- 網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計與應(yīng)用
- 基于ARM的無線視頻傳輸系統(tǒng)大容量存儲技術(shù)研究.pdf
- 基于ARM的數(shù)據(jù)采集及視頻傳輸系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)視頻傳輸系統(tǒng)的研究與實現(xiàn).pdf
- 基于IP網(wǎng)絡(luò)的MPEG—2視頻傳輸.pdf
- 基于ARM的嵌入式系統(tǒng)在無線視頻傳輸中的應(yīng)用.pdf
評論
0/150
提交評論