

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)論文(設(shè)計(jì))</p><p> 題 目:基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)</p><p> 學(xué) 院:</p><p> 學(xué)生姓名:</p><p> 專 業(yè):電子信息工程</p><p> 班 級(jí):</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ā)展,人們對(duì)網(wǎng)絡(luò)應(yīng)用的要求也就越來越高。與傳統(tǒng)的數(shù)據(jù)格式如文本、圖像和圖形已被數(shù)字化,可通過網(wǎng)絡(luò)存儲(chǔ)、傳送和表現(xiàn)的方式不同,視頻和音頻等連續(xù)媒體具有較大容量的數(shù)據(jù)存儲(chǔ)和占用較
3、高的網(wǎng)絡(luò)帶寬,以及實(shí)現(xiàn)在網(wǎng)絡(luò)上傳輸連續(xù)媒體最重要的準(zhǔn)則――實(shí)時(shí)傳輸并連續(xù)播放決定了其在網(wǎng)絡(luò)中傳輸需要采用一些特定的技術(shù),如視頻傳輸技術(shù)、視頻流控制技術(shù)、帶寬技術(shù)等。隨著嵌入式技術(shù)的不斷發(fā)展和人們對(duì)降低視頻傳輸成本提高傳輸質(zhì)量的要求,基于ARM的網(wǎng)絡(luò)視頻傳輸研究已成為研究的熱點(diǎn)。本文提出了一種嵌入式網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計(jì)方案,以S3C2410為嵌入式處理器,Linux為操作系統(tǒng)構(gòu)建了嵌入式網(wǎng)路視頻的傳輸系統(tǒng)軟硬件平臺(tái),文中在研究Linux
4、的基礎(chǔ)上,從系統(tǒng)總體設(shè)計(jì)角度把嵌入式系統(tǒng)技術(shù)和internet技術(shù)結(jié)合起來,實(shí)現(xiàn)了基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng),文中簡(jiǎn)要介紹了基于ARM的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計(jì)方案,重點(diǎn)闡述了軟件系統(tǒng)的設(shè)計(jì)、調(diào)試和實(shí)現(xiàn)。主要進(jìn)行了如下研究:</p><p> 首先分析了嵌入式系統(tǒng)的特點(diǎn)與優(yōu)勢(shì),結(jié)合本文的要求提出了系統(tǒng)的整體結(jié)構(gòu)框架。</p><p> 搭建基于S3C2410的嵌入式開發(fā)環(huán)境,重點(diǎn)介紹了
5、ARM處理器、視頻采集與傳輸?shù)饶K的介紹,主要考慮設(shè)備的選擇和兼容性。</p><p> 然后從系統(tǒng)的功能出發(fā),結(jié)合搭建的軟硬件環(huán)境和實(shí)現(xiàn)原理,完成軟件部分。重點(diǎn)介紹了視頻采集與接收等應(yīng)用軟件模塊。從數(shù)據(jù)結(jié)構(gòu)、功能結(jié)構(gòu)、系統(tǒng)實(shí)現(xiàn)和編程細(xì)想方面進(jìn)行了說明。</p><p> 最后通過實(shí)驗(yàn)結(jié)果測(cè)試分析,達(dá)到了本文的預(yù)訂目標(biāo),實(shí)現(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的特點(diǎn)及優(yōu)勢(shì)[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 其他模塊簡(jiǎn)介10</p><p> 3.3 搭建軟件環(huán)境10</p><p> 第4章 軟件平臺(tái)的搭建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ū)動(dòng)移植16</p><p> 5.1 視頻采集模塊16</p><p> 5.1.1 視
20、頻采集模塊簡(jiǎn)介16</p><p> 5.1.2 攝像頭驅(qū)動(dòng)移植16</p><p> 5.1.3 客戶端視頻流移植16</p><p> 5.1.4 視頻流采集16</p><p> 5.2 MPEG-4 簡(jiǎn)介18</p><p> 5.3 視頻傳輸模塊19</p><p&g
21、t; 5.3.1 視頻傳輸模塊簡(jiǎn)介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)測(cè)試21</p><p> 6.1 Linux調(diào)試環(huán)境21</p&
22、gt;<p> 6.2 系統(tǒng)運(yùn)行結(jié)果21</p><p><b> 總結(jié)22</b></p><p><b> 致謝23</b></p><p><b> ?。蹍⒖嘉墨I(xiàn)]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é)會(huì))的定義,嵌入式系統(tǒng)是“控制、監(jiān)視和設(shè)備有耐性的裝置”(devices used to control, monitor, or assist the operation of equipm
24、ent, machinery or plants)??梢钥闯銮度胧较到y(tǒng)是電腦軟件和硬件的結(jié)合體,還可以涵蓋機(jī)械等附屬裝置,由嵌入式處理器、應(yīng)用軟件、外圍設(shè)備和嵌入式操作系統(tǒng)組成。目前國內(nèi)一個(gè)普遍被認(rèn)同的定義是:主要是以應(yīng)用為中心、其基礎(chǔ)是計(jì)算機(jī)技術(shù)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。</p><p> 嵌入式系統(tǒng)主要是是面向用戶、面向產(chǎn)品、面向應(yīng)用的,它必須和
25、具體的應(yīng)用相結(jié)合才會(huì)有生命力,更具有優(yōu)勢(shì),因此嵌入式系統(tǒng)是與應(yīng)用緊密相結(jié)合的,具有很強(qiáng)的專用性,必須結(jié)合實(shí)際應(yīng)用需求對(duì)軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的體積、可靠性、功能、成本等要求。</p><p> 1.1.2 嵌入式系統(tǒng)的特征[2]</p><p> 嵌入式系統(tǒng)主要包括系統(tǒng)和應(yīng)用軟件,之前嵌入式系統(tǒng)的設(shè)計(jì)方法是采用硬件優(yōu)先的原則(在只粗略估計(jì)軟件任務(wù)的需求情況下進(jìn)行硬件設(shè)計(jì)與實(shí)現(xiàn))。
26、這種設(shè)計(jì)方法只能用來改善硬件軟件各自的性能,在短短的設(shè)計(jì)時(shí)間內(nèi)無法對(duì)軟硬件系統(tǒng)設(shè)計(jì)出更加優(yōu)化的性能,還是要靠設(shè)計(jì)者不斷的實(shí)驗(yàn)與從中得到的經(jīng)驗(yàn)</p><p> 隨著電子系統(tǒng)功能的日益強(qiáng)大,硬件與軟件不再是分開的兩個(gè)概念,它們是緊密結(jié)合、互相影響的。軟硬件協(xié)同設(shè)計(jì)方法的出現(xiàn)對(duì)軟硬件進(jìn)行描述、綜合和驗(yàn)證采用同一的方法和工具。協(xié)同設(shè)計(jì)軟硬件體系的結(jié)構(gòu),最大限度挖掘系統(tǒng)的能力,可避免獨(dú)立設(shè)計(jì)軟硬件系統(tǒng)結(jié)構(gòu)帶來的弊端,得
27、到高性能低代價(jià)的設(shè)計(jì)方案。</p><p> 從嵌入式系統(tǒng)的定義我們可以看出如今嵌入式系統(tǒng)具有如下特征:相對(duì)于Windows的內(nèi)核要小的多,系統(tǒng)也比較精簡(jiǎn),有利于控制成本和系統(tǒng)的安全性;嵌入式系統(tǒng)的專用性很強(qiáng),嵌入式系統(tǒng)的軟硬件都有著其獨(dú)特的設(shè)計(jì),根據(jù)不同的任務(wù)往往系統(tǒng)的硬件也會(huì)隨之變化,所以嵌入式系統(tǒng)的軟硬件之間具有很強(qiáng)的專用性,很多設(shè)備微處理器是不能通用的,一般要對(duì)硬件系統(tǒng)進(jìn)行移植;嵌入式系統(tǒng)中要求軟件是固
28、話儲(chǔ)存,用來提高其運(yùn)行速度,軟件的代碼可靠性也提高,只是嵌入式系統(tǒng)高時(shí)效的作用;嵌入式系統(tǒng)的開發(fā)也需要有其獨(dú)有的開發(fā)工具與環(huán)境,這是因?yàn)榍度胧较到y(tǒng)本身是沒有自主開發(fā)的能力的,其也不能直接修改程序功能,開發(fā)時(shí),主機(jī)主要進(jìn)行程序的開發(fā),目標(biāo)機(jī)進(jìn)行發(fā)開完畢后的執(zhí)行工作,主機(jī)與目標(biāo)機(jī)交替結(jié)合進(jìn)行開發(fā);為了保證在執(zhí)行程序運(yùn)行時(shí)的實(shí)時(shí)性、可靠性等,嵌入式系統(tǒng)的開發(fā)更加的標(biāo)準(zhǔn)化,多任務(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多年的歷史,近幾年隨著計(jì)算機(jī)、通信、消費(fèi)電子的不斷發(fā)展,嵌入式技術(shù)已經(jīng)成為一個(gè)技術(shù)研究熱點(diǎn)??v觀嵌入式技的發(fā)展過程,大致經(jīng)歷了四個(gè)階段。</p><p> 第一階段是以單片機(jī)為核心的可編程控制器系統(tǒng),主要功能是控
30、制設(shè)備,具有監(jiān)測(cè)、伺服、指令設(shè)備的功能。系統(tǒng)在工業(yè)控制系統(tǒng)應(yīng)用廣泛,這一階段的系統(tǒng)一般沒有操作系統(tǒng)的支持,通過匯編語言對(duì)系統(tǒng)直接控制。這個(gè)階段系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口,價(jià)格低,主要用于國內(nèi)工業(yè)領(lǐng)域。</p><p> 第二階段是以嵌入式CPU為基礎(chǔ),以簡(jiǎn)單操作系統(tǒng)為核心的嵌入式系統(tǒng)。主要特點(diǎn)是CPU種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)具有一定的兼容性和
31、擴(kuò)展性。</p><p> 第三階段是以嵌入式操縱系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。主要特點(diǎn)是嵌入式操作系統(tǒng)能運(yùn)行于各種不同類型的微處理上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、多任務(wù)、網(wǎng)絡(luò)支持、窗形接口以及用戶界面功能;具有大量的應(yīng)用程序接口API,開發(fā)應(yīng)用程序較簡(jiǎn)單;嵌入式應(yīng)用軟件豐富。</p><p> 第四階段是以Internet為標(biāo)志的嵌入
32、式系統(tǒng),這是一個(gè)正在迅速發(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)深入到各個(gè)領(lǐng)域,嵌入式操作系統(tǒng)已經(jīng)從
33、簡(jiǎn)單走向成熟,嵌入使系統(tǒng)應(yīng)用將日益廣泛。</p><p> 1.2.2 嵌入式的研究意義[4]</p><p> 嵌入式系統(tǒng)是一種以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),結(jié)合了先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)等的專用計(jì)算機(jī)系統(tǒng),被看作技術(shù)密集、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。近幾年有著前所未有的發(fā)展,以軟硬件組成為顯著特征、以消費(fèi)電子類為主導(dǎo)的智能設(shè)備發(fā)展迅速。嵌入式Linux是一個(gè)開放的、可
34、裁減的、32 位的實(shí)時(shí)操作系統(tǒng),與其他操作系統(tǒng)相比,其具有可靠性好、實(shí)時(shí)性高、內(nèi)核體積小等特點(diǎn),被廣泛用于各種嵌入式設(shè)備的開發(fā),尤其應(yīng)用于工業(yè)控制、信息家電、移動(dòng)通信、個(gè)人電子消費(fèi)品等各個(gè)領(lǐng)域。</p><p> 未來的嵌入式設(shè)備為了適應(yīng)網(wǎng)絡(luò)發(fā)展的要求,必然要求硬件上提供各種網(wǎng)絡(luò)通信接口。傳統(tǒng)的單片機(jī)對(duì)于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開始內(nèi)嵌網(wǎng)絡(luò)接口,除了支持TCP/IP協(xié)議,還有的支IEEE1394
35、、USB、CAN、Bluetooth[20]或IrDA通信接口中的一種或者幾種,同時(shí)也需要提供相應(yīng)的通信組網(wǎng)協(xié)議軟件和物理層驅(qū)動(dòng)軟件。軟件方面系統(tǒng)系統(tǒng)內(nèi)核支持網(wǎng)絡(luò)模塊,甚至可以在設(shè)備上嵌入Web瀏覽器,真正實(shí)現(xiàn)隨時(shí)隨地用各種設(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)整,因此它是可以在嵌入式計(jì)算機(jī)系統(tǒng)上運(yùn)行的操作系統(tǒng)[7]。嵌入式Linux繼承了互聯(lián)網(wǎng)無限制的開放源碼的資源,同時(shí)也有嵌入式操作系統(tǒng)的特點(diǎn)。嵌入式Linux的特征是版權(quán)費(fèi)免費(fèi),采購成本媒體成本技術(shù)支持世界的自由軟件開發(fā)者提供免費(fèi)的支持網(wǎng)絡(luò)屬性,同時(shí)其優(yōu)異的性能,能夠簡(jiǎn)單的移植軟件,開放的源碼,有許多應(yīng)用程序支持,應(yīng)用的產(chǎn)品開發(fā)周期短,新產(chǎn)品快速推向市場(chǎng),因?yàn)橛泻芏嚅_放代碼可以引用和移植,實(shí)時(shí)性能
37、的RT_Linux Hardhat Linux[19]等嵌入式Linux支持實(shí)時(shí)性能穩(wěn)定性及安全性好。</p><p> 現(xiàn)在隨著科學(xué)技術(shù)的不斷進(jìn)步,以及集成電路的規(guī)模一直在擴(kuò)大提高,一批數(shù)量多、價(jià)格低、結(jié)構(gòu)精巧、功能強(qiáng)大的CPU出現(xiàn)在市場(chǎng)上,同時(shí)這也給了嵌入式Linux系統(tǒng)提供了一個(gè)豐富的硬件平臺(tái)。目前嵌入式Linux在應(yīng)用上遠(yuǎn)遠(yuǎn)超過了普通的計(jì)算機(jī)系統(tǒng),其應(yīng)用領(lǐng)域非常廣泛,主要的應(yīng)用領(lǐng)域是信息家電、PDA、機(jī)
38、頂盒、數(shù)字電話答錄機(jī)、以太網(wǎng)交換機(jī)、數(shù)據(jù)網(wǎng)絡(luò)、路由器、集線器、遠(yuǎn)程訪問服務(wù)器、ATM、醫(yī)療電子、交通電腦外圍設(shè)備、工業(yè)控制、航空航天等領(lǐng)域[8]。</p><p> 2.2 嵌入式 Linux的特點(diǎn)及優(yōu)勢(shì)[11]</p><p> Linux是一個(gè)類似于Unix操作系統(tǒng),起源于芬蘭名為Linux Torvalds的愛好者,是現(xiàn)在最流行的是一個(gè)開源的操作系統(tǒng)。Linux操作系統(tǒng)的最大優(yōu)點(diǎn)
39、是其自由和開放的源代碼,和它的穩(wěn)定性和可靠性。Linux操作系統(tǒng),因?yàn)樗拈_放性和得到了最多的公司的支持,用戶可以根據(jù)自己的需要修改,還可以使用眾多的在線資源和網(wǎng)絡(luò)開發(fā)人員,更方便地獲得必要的技術(shù)支持。網(wǎng)絡(luò)技術(shù)的進(jìn)步和Linux的開發(fā),Linux系統(tǒng)已經(jīng)成為了微軟公司的Windows系列產(chǎn)品的一個(gè)強(qiáng)大的對(duì)手。許多開發(fā)人員自己不希望在操作系統(tǒng)上的程序受制于他人和增加產(chǎn)品開發(fā)成本,所以開源Linux是最好的起點(diǎn)。Linux有偉大的自由發(fā)展小
40、組。此外,由于其開放性工程師對(duì)系統(tǒng)可以更好的理解,而且可以針對(duì)特定的硬件解決方案和產(chǎn)品需要優(yōu)化。目前,在行業(yè)已經(jīng)達(dá)成了一項(xiàng)共識(shí):嵌入式Linux是代表總體趨勢(shì),其巨大的市場(chǎng)潛力和釀造的無限的商機(jī)將吸引眾多制造商進(jìn)入這一領(lǐng)域。</p><p> Linux系統(tǒng)不僅可以運(yùn)行在PC平臺(tái),同時(shí)在嵌入式系統(tǒng)中大放異彩。Linux從1991年開始至今,在20年的短時(shí)間已經(jīng)發(fā)展成為一個(gè)強(qiáng)大的、提高設(shè)計(jì)的操作系統(tǒng),Linux由
41、于其自身的特點(diǎn),在這個(gè)領(lǐng)域的嵌入式系統(tǒng)可以說是取得了快速的發(fā)展,</p><p> 該操作系統(tǒng)有以下優(yōu)勢(shì):</p><p> Linux是開源的,沒有黑箱技術(shù),許多Linux世界各地的愛好者們是Linux開發(fā)人員強(qiáng)有力的技術(shù)支持,和其他嵌入式操作系統(tǒng),比如Windows CE、VxWorks系統(tǒng)是一個(gè)非開放的操作系統(tǒng),這樣第三方很難實(shí)現(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首次實(shí)現(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è)計(jì)考慮自適應(yīng)系統(tǒng)可以降低要求,因此用戶可以根據(jù)自己的需求使用內(nèi)核來減少。</p><p> Linux可靠性高,可以說是經(jīng)驗(yàn)證的,可以用在這里的主要任務(wù)和操作系統(tǒng)的情況。例如,Web服務(wù)器在世界中,絕大多數(shù)是Linux操作系統(tǒng)。每天我們通
44、過網(wǎng)絡(luò)瀏覽,24小時(shí)運(yùn)行,證明了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、像信號(hào)壓縮過之后,由內(nèi)部的總線傳送到內(nèi)置的Web服務(wù)器上,客服端通過B/S結(jié)構(gòu)可以在IE瀏覽器上訪問Web服務(wù)器上看到視頻傳輸后的畫面。</p><p> 嵌入式系統(tǒng)的基本結(jié)構(gòu)包含3個(gè)部分,如圖3.1所示。</p><p> 圖 3.1 嵌入式系統(tǒng)的基本結(jié)構(gòu)</p><p> 嵌入式應(yīng)用程序是利用操作系統(tǒng)運(yùn)用在操作系統(tǒng)上,通過操作系統(tǒng)的機(jī)制來完成特定功能的嵌入
46、式應(yīng)用。</p><p> 嵌入式操作系統(tǒng)有著內(nèi)核小專用性強(qiáng)等特點(diǎn),是完成嵌入式任務(wù)的跳讀和控制的核心。不同的應(yīng)用通常有不同的硬件環(huán)境,硬件環(huán)境是整個(gè)嵌入式操作系統(tǒng)和應(yīng)用程序運(yùn)行的硬件平臺(tái)且硬件平臺(tái)的多樣性是嵌入式系統(tǒng)的一個(gè)主要特點(diǎn)。</p><p> 3.2 構(gòu)建系統(tǒng)硬件環(huán)境</p><p> 系統(tǒng)硬件平臺(tái)功能如圖3.2所示。硬件方面采用S3C2410處理器
47、,基于ARM處理器的常用系統(tǒng),嵌入式硬件平臺(tái)采用以S3C2410處理器為核心,主要包括了以太網(wǎng)接口模塊、USB接口模塊、LCD接口模塊和JTAG模塊等。</p><p> 圖 3.2 系統(tǒng)硬件框圖</p><p> 3.2.1 ARM處理器的介紹</p><p> ARM是Advanced RISC Machines的簡(jiǎn)稱,它是一種處理器,它也是一個(gè)公司的名字
48、。ARM公司成立于1990年11月在英國劍橋,這是一個(gè)世界領(lǐng)先的16 / 32處理器的嵌入式解決方案供應(yīng)商,為全球各大電子公司提供高性能,低成本高效率的精簡(jiǎn)指令集處理器,外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。相比其他嵌入式處理器,ARM有三個(gè)特點(diǎn):體積小,低功耗,低成本和高性能;16 / 32雙指令集;全球眾多合作伙伴。</p><p> ARM公司專注于設(shè)計(jì)。ARM核以其優(yōu)異的性能、體積小、功耗低、緊湊的代碼密度和多個(gè)來源
49、的優(yōu)秀組合而著名的,它的RISC性能是行業(yè)的領(lǐng)導(dǎo)者,具有體積小集成在一起,成本最低的芯片,以很低的功耗和價(jià)格來提供高性能處理器。ARM已經(jīng)成為手機(jī)、掌上電腦、多媒體數(shù)碼消費(fèi)者和其他嵌入式RISC解決方案的標(biāo)準(zhǔn)。</p><p> ARM處理器以優(yōu)異的性能,使系統(tǒng)設(shè)計(jì)者可以充分滿足要求的精確解答。從第三方制造商的廣泛的支持,設(shè)計(jì)師可以使用豐富的標(biāo)準(zhǔn)開發(fā)工具和臂優(yōu)化軟件。ARM架構(gòu)基于RISC精簡(jiǎn)指令集計(jì)算機(jī)(RI
50、SC)原則。RISC指令集相關(guān)聯(lián)的解碼機(jī)制比復(fù)雜指令集(CISC)設(shè)計(jì)更簡(jiǎn)單。這個(gè)簡(jiǎn)單的體系結(jié)構(gòu)的ARM已經(jīng)充分反映:高指令的吞吐量;優(yōu)秀的實(shí)時(shí)中斷響應(yīng);體積小高性價(jià)比處理器宏單元。ARM32架構(gòu)被公認(rèn)為行業(yè)領(lǐng)先的32位嵌入式RISC微處理器核心,所有的ARM處理器分享這個(gè)系統(tǒng)結(jié)構(gòu)。這確保當(dāng)開發(fā)人員更高性能處理器,在軟件開發(fā)中可以獲得最大回報(bào)的。ARM處理器本身是32位設(shè)計(jì),還配備了16個(gè)THUMB指令集,來運(yùn)行這個(gè)軟件編碼為更短的16
51、位指令。和相當(dāng)于32代碼,thumb指令集使用的內(nèi)存空間的儲(chǔ)蓄的35%,但是保留了一部分32位優(yōu)勢(shì)的系統(tǒng)。Thumb狀態(tài)和正常的ARM之間的切換狀態(tài)是零的開銷。如果需要,每個(gè)例程使用切換。這允許設(shè)計(jì)者完成優(yōu)化控制軟件。ARM的Jazelle技術(shù)提供了Java加速,可以基于軟件的Java虛擬機(jī)(JVM)更高的性能。與相同的非Java加速原子核相比,減少了80%的電力消耗。這些</p><p> 3.2.2 S3C
52、2410</p><p> 基于上面的介紹,該系統(tǒng)采用ARM9 S3C2410處理器。圖3.3為S3C2410實(shí)物圖。三星電子公司生產(chǎn)S3C2410是基于ARM920T處理器RISC核心16/32。 為了降低系統(tǒng)的成本和降低的外圍設(shè)備,芯片還整合成以下組件:16 K緩存命令,16 K數(shù)據(jù)緩存、MMU、外部?jī)?nèi)存控制器,控制器的液晶(支持STN和TFT),NAND閃存控制器,4 DMA通道,3通道UART、1個(gè)I2
53、C總線控制器,I2S總線控制器以及4頻道PWM定時(shí)器和一個(gè)內(nèi)部定時(shí)器,通用I / O端口、實(shí)時(shí)時(shí)鐘、8通道10 位ADC和觸摸屏界面,USB主/從口,SD卡界面,及2頻道SPI和PLL鎖相環(huán)的時(shí)鐘。本芯片是目前廣泛應(yīng)用于PDA、移動(dòng)通訊、路由器、工業(yè)控制等。</p><p> 圖3.3 S3C2410實(shí)物圖</p><p> S3C2410片上外設(shè)詳細(xì)介紹如下:</p>
54、<p> (1)1.8 V核心電壓、電壓3.3伏內(nèi)存,3.3 V外部I / O電壓;</p><p> (2)外部存儲(chǔ)控制器(SDRAM控制器和芯片邏輯);</p><p> ?。?)LCD控制器(支持4 K色STN和256 K色液晶顯示器);</p><p> (4)與外部請(qǐng)求插頭的4通道DMA;</p><p> (5)
55、3通道UART,2通道SPI;</p><p> ?。?)1通道主要IIC總線和1通道道IIC控制器;</p><p> (7)2 USBl.1主要的設(shè)備接口,USB1.1從設(shè)備接口;</p><p> ?。?)4頻道PWM定時(shí)器以及通道內(nèi)部定時(shí)器;</p><p> ?。?)看門狗定時(shí)器;</p><p> (1
56、0)版本1 SD接口,兼容2.11版本的MMC接口;</p><p> ?。?1)117個(gè)常見的I / O端口,一個(gè)24外部中斷源;</p><p> (12)電源模式:正常、低功耗、休閑和省電模式;</p><p> ?。?3)8頻道10位ADC和觸摸屏口;</p><p> (14)與日歷功能RTC(實(shí)時(shí)控制器);</p>
57、<p> ?。?5)在芯片與PLL時(shí)鐘生成器。</p><p> 圖3.4為S3C2410的外部資源結(jié)構(gòu)圖。</p><p> 圖3.4 S3C2410資源結(jié)構(gòu)圖</p><p> 在具有豐富的外圍資源S3C2410芯片上,大大減少的外圍設(shè)備了需求,提高系統(tǒng)的集成和可靠性。在一個(gè)內(nèi)存管理系統(tǒng),S3C2410也有自己的突出特點(diǎn)。芯片支持大端和小端處
58、理器模式,支持8個(gè)128M的內(nèi)存地址空間,每個(gè)Bank支持8/16/32位數(shù)據(jù)總線編程,擁有一個(gè)起始地址和大小的可編程Bank7和7個(gè)開始地址固定Bank0-6,所有內(nèi)存Bank可以編程解決尋址周期,支持外部信號(hào)擴(kuò)展總線周期。支持SDRAM的自動(dòng)刷新,支持多種類型的ROM啟動(dòng),包括: NOR 閃存、,NAND閃存,9eeprom等。</p><p><b> 3.2.3 以太網(wǎng)</b>&l
59、t;/p><p> 以太網(wǎng)是一種廣泛使用的通用PC機(jī)的局域網(wǎng)技術(shù),嵌入式系統(tǒng)是連接到以太網(wǎng),從而讓嵌入式有更多的智能設(shè)備。我在這里使用了低功耗、高性能16位CS8900A以太網(wǎng)控制器。這個(gè)芯片使用起來較靈活,它的物理層接口、數(shù)據(jù)傳輸模式和工作模式可以根據(jù)需要?jiǎng)討B(tài)調(diào)整,根據(jù)內(nèi)部寄存器的設(shè)置以適應(yīng)不同的應(yīng)用程序。</p><p> CS8900A主要特點(diǎn)有:內(nèi)置引擎為802.3MAC;符合IE
60、EE802.3以太網(wǎng)標(biāo)準(zhǔn),并帶有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)閉存儲(chǔ)器方式。CS8900A通過一個(gè)隔離變壓器連接到以太網(wǎng)上。在發(fā)送端隔離變壓器E2023變壓
61、比為1:2.5,在接受端隔離變壓器E2023變壓比為l:l。變壓器的作用是將外部線路與CS8900A隔離開,防止干擾和帶電插拔的時(shí)候燒壞元器件。</p><p> 3.2.4 JTAG</p><p> JTAG是聯(lián)合測(cè)試團(tuán)隊(duì)(Joint Test ActionGroup)的英文縮寫,由JTAG團(tuán)隊(duì)采用的芯片測(cè)試協(xié)議的問題被確定為國際標(biāo)準(zhǔn)和使用的名字。在這個(gè)系統(tǒng)中,JTAG接口用于Fl
62、ash燒錄程序和模擬接口,并在同一時(shí)間,作為一個(gè)共同的平臺(tái),擴(kuò)展性和適應(yīng)性都要求有JTAG接口系統(tǒng)。JTAG基于ieeell49.1系統(tǒng)是標(biāo)準(zhǔn)的邊界掃描測(cè)試,主要用于集成電路芯片掃描測(cè)試。最先進(jìn)的芯片,如:數(shù)字信號(hào)處理器(DSP),可編程邏輯器件(CPLD),現(xiàn)場(chǎng)可編程門陣列(FPGA)和該系統(tǒng)使用的ARM芯片測(cè)試接口,支持JTAG邊界掃描測(cè)試標(biāo)準(zhǔn)。</p><p> JTAG4條主要的接口信號(hào):測(cè)試時(shí)鐘輸入線
63、,測(cè)試數(shù)據(jù)輸入線,測(cè)試數(shù)據(jù)輸出線的應(yīng)用和測(cè)試模式選擇線,及一個(gè)可選的信號(hào)線:測(cè)試復(fù)位線,和地線。在設(shè)計(jì)與雙列引腳連接器的S3C 2410測(cè)試線可以得出。如圖3.5為JTAG的接口電路圖。</p><p> 圖3.5 JTAG接口電路圖</p><p> 3.2.5 USB[17]</p><p> S3C2410成功的集成了USB主機(jī)控制器和設(shè)備控制器,在其外
64、部有2個(gè)USB主設(shè)備接口和一個(gè)從設(shè)備接口。S3C2410的USB模塊遵從OHCll.0標(biāo)準(zhǔn)并兼容USB1.1標(biāo)準(zhǔn),USB控制器有著三種傳輸方式:DMA的批量傳輸、中斷傳輸和控制傳輸。S3C2410按照USB1.1標(biāo)準(zhǔn)協(xié)議連接即可,引出的USB連接口十分方便,同時(shí)支持低速和高速的USB設(shè)備傳輸。下圖為USB主機(jī)接口電路圖。</p><p> 圖3.6 USB主機(jī)接口電路</p><p>
65、 其中,DNO與NPO是S3C2410的USB主機(jī)控制模塊引腳。</p><p> 3.2.6 其他模塊簡(jiǎn)介</p><p> 鍵盤和液晶顯示LCD模塊嵌入在人機(jī)界面設(shè)計(jì)的最重要的一部分。在設(shè)計(jì)的獨(dú)立式鍵盤按鍵的方法,每一個(gè)關(guān)鍵環(huán)節(jié)S3C2410的外部中斷的管腳。當(dāng)按鈕被按下,產(chǎn)生電平觸發(fā)中斷信號(hào)。S3C2410內(nèi)置液晶控制器,并支持三種類型的液晶屏幕:四位雙掃描,四位單掃描,八位單掃
66、描顯示類型;支持單色模式,4級(jí)和16級(jí)灰度液晶,256色和4096色液晶;支持不同大小的LCD(640 x480,320×240,160 x160)等。</p><p> 3.3 搭建軟件環(huán)境</p><p> 搭建軟件平臺(tái)主要設(shè)計(jì)做了以下工作:編譯的環(huán)境搭建為建立交叉編譯環(huán)境;嵌入式Linux的移植,對(duì)嵌入式Linux內(nèi)核移植和Bootloader的移植。下圖3.7為軟件部
67、分整體框架。</p><p> 圖3.7 軟件部分整體框架</p><p> 第4章 軟件平臺(tái)的搭建</p><p><b> 4.1編譯環(huán)境搭建</b></p><p> 嵌入式系統(tǒng)軟件開發(fā)通常采用交叉編譯調(diào)試模式。在主機(jī)上建立交叉編譯器調(diào)試環(huán)境,使用開發(fā)板叫做目標(biāo)板。一般的主機(jī)和目標(biāo)板上使用不同的CPU,所以
68、我們使用相應(yīng)的交叉編譯器來生成相應(yīng)的目標(biāo)板操作的代碼。由理查德·斯托爾曼發(fā)展GNU編譯器將提供這個(gè)功能,在嵌入式開發(fā)工作之前,我們必須準(zhǔn)備一個(gè)PC作為主機(jī),和電腦安裝了相對(duì)的操作系統(tǒng),在目標(biāo)板安裝在嵌入式Linux操作系統(tǒng)。然后,在主機(jī)上建立交叉編譯調(diào)試開發(fā)環(huán)境。當(dāng)然,我們可以直接下載相應(yīng)的交叉編譯工具,本文的主機(jī)arm-linux-gcc3.1.4,使用C語言編碼視頻采集程序,使用一個(gè)交叉編譯器工具調(diào)試,并最終生成可執(zhí)行代碼
69、,然后將可執(zhí)行代碼移植到目標(biāo)平臺(tái)。構(gòu)建交叉編譯環(huán)境是嵌入式開發(fā)是一個(gè)至關(guān)重要的一個(gè)步驟。大多數(shù)的ARM設(shè)備平臺(tái)并沒有提供充足的資源進(jìn)行編譯的過程,所以大部分的翻譯工作在主機(jī)中進(jìn)行,搭建一個(gè)ARM-Linux交叉編譯環(huán)境在主機(jī)上編譯相應(yīng)的應(yīng)用程序,生成的代碼可以在ARM平臺(tái)上運(yùn)行。</p><p> 在Linux下的嵌入式交叉編譯環(huán)境主要目標(biāo)系統(tǒng)的編譯器gcc;目標(biāo)系統(tǒng)的二進(jìn)制工具binutils,包括ar,ob
70、jeopy,strip工具集;目標(biāo)系統(tǒng)庫glibc;目標(biāo)系統(tǒng)的Linux內(nèi)核頭文件以和 GNU Make工具。</p><p> 由于建立一個(gè)交叉編譯器環(huán)境是一個(gè)很復(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主機(jī),將提取安裝到宿主Linux系統(tǒng)中,步驟如下:</p>&
71、lt;p> (1)在宿主機(jī)/usr/local目錄下建一個(gè)目錄名為ARM;命令對(duì)#:MKDIR/usr/local/ARM;</p><p> ?。?)cross-3.3.2.tar.bz2副本;</p><p> ?。?)到當(dāng)前目錄轉(zhuǎn)到/usr/local/arm,解壓壓縮包;命令:tar-jxvf cross-3.3.2.tar. ba2;</p><p&g
72、t; (4)將解壓下的目錄/bin添加到環(huán)境變量當(dāng)中去,并且命令:</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作為一個(gè)完整和穩(wěn)定的開放源代碼的操作系統(tǒng)
73、,可以運(yùn)行在多種硬件平臺(tái),包括X86,電腦電源,ARM等使標(biāo)準(zhǔn)Linux可以在不同的處理器上運(yùn)行的工作臺(tái),需要后移植的過程。移植從軟件是一套軟件可以在不同的硬件平臺(tái),在正常操作過程。這意味著,我們的軟件為Linux操作系統(tǒng),硬件的ARM 9處理器為核心芯片的平臺(tái)。操作系統(tǒng)作為硬件上運(yùn)行平臺(tái)和應(yīng)用程序之間的程序代碼,操作系統(tǒng)的移植以ARM 9處理器平臺(tái),說一些很受歡迎的ARM 9處理器結(jié)構(gòu),操作系統(tǒng)相應(yīng)的修正,將很快的平臺(tái)的部分進(jìn)行修改。
74、內(nèi)核移植一方面包括:,Linux內(nèi)核的移植,啟動(dòng)代碼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> 進(jìn)入內(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以及在啟動(dòng)時(shí)并在/sbin/init運(yùn)行之前能自動(dòng)掛載/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、做的是針對(duì)文件系統(tǒng)的設(shè)置,目標(biāo)板上要上的文件系統(tǒng)是cramfs,故做如下<>Second extended fs support#去除對(duì)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> #這里會(huì)看到我們先前修改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)核是相對(duì)比較簡(jiǎn)單的,只要實(shí)施以下命令:</p><p> (1) make clean這個(gè)命令在正式編譯內(nèi)核時(shí)先清理環(huán)境,以確保沒有錯(cuò)誤.O文件存在。</p><p> (2) make dep這個(gè)命令是要編譯相關(guān)的依賴文件。</p><p> (3) make zlmage這個(gè)命令是最終的編碼命令。</p><p> (4) m
89、ake install這個(gè)命令可以相關(guān)文件復(fù)制到默認(rèn)目錄。當(dāng)然,在嵌入式設(shè)備的編譯時(shí)這一步可以去掉。因?yàn)樘囟ǖ膬?nèi)核安裝應(yīng)該手動(dòng)執(zhí)行,生成的zlmage(bzlmage)文件是最終得到的內(nèi)核映像文件,它是與我們的硬件平臺(tái)相關(guān)的,是建立在Makefile文件中,因?yàn)槲覀兪褂肁RM平臺(tái),因此圖像文件在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)核操作前的一個(gè)小程序,用于初始化硬件設(shè)備、內(nèi)存空間,為最后調(diào)用操作系統(tǒng)內(nèi)核環(huán)境好。Bootloader引導(dǎo)加載程序是嚴(yán)重依賴硬件實(shí)現(xiàn),所以沒有一般的Bootloader,但可以得出結(jié)論,以指導(dǎo)用戶特定的Bootloader引導(dǎo)裝載程序設(shè)計(jì)和實(shí)現(xiàn)。大多數(shù)的Bootloader分為第一和第二階
91、段兩大部分。在第一階段的存儲(chǔ)設(shè)備的初始化代碼依賴系統(tǒng)結(jié)構(gòu)的匯編代碼。第二階段的代碼有相對(duì)較高的可讀性和可移植性,通常使用C語言來實(shí)現(xiàn)更復(fù)雜的功能。</p><p> Bootloader引導(dǎo)裝載程序首先出現(xiàn)在計(jì)算機(jī)領(lǐng)域。在個(gè)人計(jì)算機(jī)系統(tǒng),當(dāng)系統(tǒng)開始,第一個(gè)程序運(yùn)行的是主板BIOS。BIOS程序負(fù)責(zé)底層硬件初始化和后續(xù)程序提供了訪問硬件接口的功能。當(dāng)BIOS過程完成后,將推動(dòng)MBR開始的代碼復(fù)制到內(nèi)存并執(zhí)行,該代
92、碼的操作系統(tǒng)啟動(dòng)過程通常被稱為Bootloader引導(dǎo)加載程序。在這里,BIOS系統(tǒng)將給控制權(quán)給引導(dǎo)加載程序,引導(dǎo)加載程序?qū)⑻峁┮恍┫到y(tǒng)的參數(shù)來操作系統(tǒng)內(nèi)核,操作系統(tǒng)可以在一個(gè)特定的系統(tǒng)環(huán)境可以成功啟動(dòng)。</p><p> 然而,對(duì)于嵌入式系統(tǒng),它通常不喜歡BIOS固件,這樣整個(gè)系統(tǒng)加載啟動(dòng)任務(wù)全由引導(dǎo)裝載程序完成。和嵌入式系統(tǒng),不同的硬件系統(tǒng)有成千上萬的方式,這些硬件的一些初始化工作之前還必須執(zhí)行操作系統(tǒng)啟動(dòng)
93、。這導(dǎo)致了嵌入式系統(tǒng)引導(dǎo)裝載程序功能和特定的實(shí)現(xiàn)遠(yuǎn)遠(yuǎn)超過PC系統(tǒng)的復(fù)雜程度。嵌入式系統(tǒng)BootLoader:是一個(gè)單獨(dú)的程序代碼存儲(chǔ)在目標(biāo)平臺(tái),非易失性存儲(chǔ)介質(zhì)。通過這個(gè)項(xiàng)目,我們可以初始化硬件設(shè)備,設(shè)置內(nèi)存空間映射,將系統(tǒng)的硬件和軟件環(huán)境放在一個(gè)相對(duì)適當(dāng)?shù)奈恢茫员銥樽罱K調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。因?yàn)橐龑?dǎo)裝載程序代碼直接面對(duì)處理器核心和硬件控制器編程,通常使用匯編語言。一般的內(nèi)容包括中斷矢量表、初始化內(nèi)存系統(tǒng),初始化堆棧,初始
94、化用戶程序的執(zhí)行環(huán)境、改變處理器模式和調(diào)用主應(yīng)用程序。</p><p> 4.2.2 Bootloader的功能</p><p> Bootloader是過度依賴于硬件而實(shí)現(xiàn)的。每一個(gè)不同體系結(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í)際上取決于特定的嵌板設(shè)備配置,也就是說,對(duì)于兩塊不同的嵌入式板而言,即使它們是由同一種處理器構(gòu)建的,要想讓運(yùn)行在一塊板子上的Bootloader程序也能運(yùn)行在另一塊板子上,通常也都需要對(duì)Bootloader進(jìn)行移植。所以在嵌入式世界里建立一個(gè)通用的Bootloader幾乎是不可能的。于是出現(xiàn)多種引導(dǎo)加載程序,如armboot,blob,redboot,vivi和U-Boo
96、t等。盡管如此,我們?nèi)匀豢梢詫?duì)Bootloader歸納出一個(gè)通用的啟動(dòng)流程來。</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)和識(shí)別;</p><p> (7)實(shí)現(xiàn)的POST來標(biāo)識(shí)現(xiàn)有設(shè)備,并報(bào)告任何問題;</p><p> (8)為電源管理提供一個(gè)暫停/恢
98、復(fù)支持;</p><p> (9)跳轉(zhuǎn)到開始內(nèi)核。一旦你將引導(dǎo)裝載程序安裝到目標(biāo)的閃存,它將會(huì)執(zhí)行我們上面提到的所有初始化。然后,它準(zhǔn)備接收來自主機(jī)的內(nèi)核和文件系統(tǒng)。一旦加載到內(nèi)核,引導(dǎo)加載程序?qū)⒖刂茩?quán)交給內(nèi)核。</p><p> 在啟動(dòng)時(shí)Bootloader只運(yùn)行在很短的時(shí)間,但對(duì)于嵌入式系統(tǒng),它是一個(gè)非常重要的系統(tǒng)組成部分。當(dāng)我們使用單片機(jī)這種操作系統(tǒng),通常只需要初始化CPU和其他
99、硬件設(shè)備,可以直接加載程序,不需要單獨(dú)建立一個(gè)引導(dǎo)加載程序。但對(duì)于一個(gè)大型的系統(tǒng),建立或移植的引導(dǎo)程序,可以給后續(xù)發(fā)展帶來很多便利。大多數(shù)的引導(dǎo)裝載程序包含兩個(gè)不同的操作模式:啟動(dòng)加載程序模式和下載模式。</p><p> 啟動(dòng)加載程序模式:在這種模式下, Bootloader從目標(biāo)機(jī)的固態(tài)存儲(chǔ)設(shè)備中將操作系統(tǒng)加載到RAM運(yùn)行,整個(gè)過程沒有用戶干預(yù)。這個(gè)模式是引導(dǎo)裝載程序正常模式,因此在嵌入式產(chǎn)品的發(fā)布時(shí),引導(dǎo)
100、裝載程序必須工作在這個(gè)模式。</p><p> 下載模式:在這種模式下,目標(biāo)機(jī)上的Bootloader通過串口、USB接口或網(wǎng)絡(luò)等通訊手段從開發(fā)機(jī)上下載內(nèi)核映像和根文件系統(tǒng)映像等到RAM中。然后可以再被Bootloader寫到目標(biāo)機(jī)上的固態(tài)存儲(chǔ)介質(zhì),或者直接引導(dǎo)系統(tǒng)。前一種功能通常是第一次使用編寫內(nèi)核與根文件系統(tǒng)到固態(tài)存儲(chǔ)介質(zhì)時(shí)或者當(dāng)系統(tǒng)更新使用;后者為開發(fā)人員早期的發(fā)展過程。工作于這種模式下的Bootload
101、er通常都會(huì)向它的終端用戶提供簡(jiǎn)單的命令行接口。Bootloader與主機(jī)之間進(jìn)行文件傳輸所用的通信設(shè)備及協(xié)議,最常見的情況就是通過串口與主機(jī)之間進(jìn)行文件傳輸,傳輸協(xié)議通常是Xmodem/Ymodem/Zmodem協(xié)議中的一種。但串行傳輸速度是有限的,所以通過以太網(wǎng)連接,并通過使用TFTP協(xié)議或通過USB接口下載該文件是一個(gè)更好的選擇。</p><p> 4.2.3 vivi 介紹</p><
102、;p> Vivi是現(xiàn)今很受歡迎的一款專門為ARM9處理器的設(shè)計(jì)的Bootloader,其操作方便的同時(shí)還提供一個(gè)完整的命令系統(tǒng)。Vivi是韓國Mizi公司開發(fā)了一個(gè)Bootloader,適合ARM9處理器,支持S3C2410處理器,它的源代碼可以在www.mizi.com網(wǎng)站上下載。就像和其他的Bootloader一樣,vivi的兩種工作模式,即啟動(dòng)加載程序模式和下載模式。在啟動(dòng)加載模式系統(tǒng)可以及時(shí)啟動(dòng)Linux內(nèi)核。在下載模式
103、,vivi提供了一個(gè)命令行接口,該接口可以使vivi完成相應(yīng)的功能。</p><p> 4.3根文件系統(tǒng)的移植</p><p> 根文件系統(tǒng)是存放Linux系統(tǒng)所必需的各種工具軟件、庫文件、腳本、配置文件和其他特殊文件的地方。根文件的移植具有以下幾個(gè)步驟:建立根文件系統(tǒng)目錄root,并在root目錄下創(chuàng)建一些子目錄/Bin、zetc、 /Proe、/lib、/user;編譯busybo
104、x可以提供一百多種GNU常用工具。Busybox所有命令都編譯成一個(gè)文件,sh、ep、is等其他命令都是指向busybox文件的鏈接;啟動(dòng)腳本的編寫的一般系統(tǒng)啟動(dòng),都被要求能夠執(zhí)行相應(yīng)的初始化操作,寫在命令行的init=/linuxrc;制作eramfs映像,#mkcramfs root root.cramfs,root.cramfs是支持yaffs的cramfs格式根文件映像。到此為止,根文件系統(tǒng)生成完成,通過bootloader的燒
105、寫功能移植到目標(biāo)板上。</p><p> 第5章 嵌入式Linux驅(qū)動(dòng)移植</p><p> 5.1 視頻采集模塊</p><p> 5.1.1 視頻采集模塊簡(jiǎn)介</p><p> 在Linux操作系統(tǒng),所有外部設(shè)備被視為是一種特殊的文件,稱為外設(shè)文件。內(nèi)核和應(yīng)用程序之間的接口是一個(gè)系統(tǒng)調(diào)用,而外部設(shè)備驅(qū)動(dòng)是內(nèi)核之間的接口和外圍設(shè)備,
106、外部設(shè)備驅(qū)動(dòng)程序可以完成設(shè)備的初始化,提供各種操作設(shè)備文件和中斷處理功能,使得對(duì)外操作像正常文件。攝像頭屬于視頻設(shè)備類,按照標(biāo)準(zhǔn)videoforlinux(v4l)標(biāo)準(zhǔn)。v4l標(biāo)準(zhǔn)可提供音頻接口規(guī)范,是所有的音頻和視頻設(shè)備的接口驅(qū)動(dòng)程序,包括內(nèi)核,驅(qū)動(dòng)程序,應(yīng)用程序的通信標(biāo)準(zhǔn)。目前v4l標(biāo)準(zhǔn)除了包括音頻和視頻捕獲和處理的內(nèi)容,包括USB攝像頭。視頻應(yīng)用程序通過標(biāo)準(zhǔn)系統(tǒng),操作各種不同的視頻捕獲設(shè)備。v4l注冊(cè)視頻設(shè)備的虛擬文件,可通過應(yīng)用
107、視頻設(shè)備訪問的實(shí)現(xiàn)。</p><p> 該系統(tǒng)的視頻采集分成兩個(gè)步驟,第一步是在內(nèi)核接口寫入攝像頭相機(jī)的驅(qū)動(dòng)程序,下一步是為獲取視頻數(shù)據(jù)上的應(yīng)用開發(fā)。我們利用現(xiàn)有的接口的攝像頭的驅(qū)動(dòng)程序,同時(shí)編譯了上層視頻數(shù)據(jù)采集和編碼程序。</p><p> 5.1.2 攝像頭驅(qū)動(dòng)移植</p><p> 我們使用USB攝像頭是中星微公司設(shè)計(jì)的zc301芯片的攝像頭,其輸出J
108、PEG格式的圖像,圖像質(zhì)量,和自動(dòng)曝光控制和白平衡控制,市場(chǎng)目前主流的視頻處理芯片。USB攝像頭的程序是一種復(fù)雜的模塊,因?yàn)樗粌H關(guān)系到攝像頭內(nèi)部CMOS圖像采集芯片的操作,而且還可以和USB接口的相關(guān)操作的,獨(dú)立發(fā)展的相對(duì)難度比較大。這里我們使用互聯(lián)網(wǎng)對(duì)這些攝像頭驅(qū)動(dòng)程序補(bǔ)丁,將遷移到嵌入式ARM板子上。</p><p> 5.1.3 客戶端視頻流移植</p><p> 客戶端的流媒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于ARM的無線視頻傳輸系統(tǒng)設(shè)計(jì).pdf
- 大學(xué)生g視頻傳輸畢業(yè)論文
- 基于ARM9的視頻傳輸系統(tǒng)研究.pdf
- 基于ARM的遠(yuǎn)程視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于rtprtcp協(xié)議的實(shí)時(shí)視頻傳輸實(shí)現(xiàn)與應(yīng)用---畢業(yè)論文
- 基于rtprtcp協(xié)議的實(shí)時(shí)視頻傳輸實(shí)現(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è)計(jì).pdf
- 畢業(yè)論文---基于arm的視頻采集系統(tǒng)的設(shè)計(jì)
- 基于ARM的無線視頻傳輸硬件系統(tǒng)的初步研究與開發(fā).pdf
- 基于802.11網(wǎng)絡(luò)的無線視頻傳輸系統(tǒng)設(shè)計(jì)
- 網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計(jì)與應(yīng)用
- 基于ARM的無線視頻傳輸系統(tǒng)大容量存儲(chǔ)技術(shù)研究.pdf
- 基于ARM的數(shù)據(jù)采集及視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 網(wǎng)絡(luò)視頻傳輸系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 基于IP網(wǎng)絡(luò)的MPEG—2視頻傳輸.pdf
- 基于ARM的嵌入式系統(tǒng)在無線視頻傳輸中的應(yīng)用.pdf
評(píng)論
0/150
提交評(píng)論