數(shù)碼相框畢業(yè)論文_第1頁(yè)
數(shù)碼相框畢業(yè)論文_第2頁(yè)
數(shù)碼相框畢業(yè)論文_第3頁(yè)
數(shù)碼相框畢業(yè)論文_第4頁(yè)
數(shù)碼相框畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 .60/60 .畢業(yè)論文題目基于ARM和Linux的嵌入式數(shù)碼相框系統(tǒng)設(shè)計(jì)一、背景隨著PC時(shí)代數(shù)碼技術(shù)的發(fā)展,數(shù)碼相機(jī)以其低廉的價(jià)格,方便的操作成為攝影器材未來(lái)的發(fā)展方向。目前,很多家庭都持有數(shù)碼相機(jī),一次拍攝下來(lái)的照片往往會(huì)有上百,使用PC機(jī)來(lái)查看拍攝下來(lái)的圖片,操作繁瑣,而且依賴(lài)于PC機(jī)。作為數(shù)碼相機(jī)的一種附屬產(chǎn)品,數(shù)碼相框不僅具有傳統(tǒng)相框的特點(diǎn),而且可以直接從數(shù)碼相機(jī)中選擇心儀的照片,定時(shí)更新照片。數(shù)字相框可以擺放在家居顯眼之處,成為現(xiàn)代家庭一道靚麗的風(fēng)景線。數(shù)碼相框是展示數(shù)碼照片而非紙質(zhì)照片的相框。眾多的數(shù)碼攝影產(chǎn)生的相片保存起來(lái)后,查看過(guò)程繁瑣不方便,大量打印出來(lái)又非常浪費(fèi),如果用

2、數(shù)碼相框直接插上相機(jī)的存儲(chǔ)卡展示照片,就非常酷了。數(shù)碼攝影必然推動(dòng)數(shù)碼相框的發(fā)展,因?yàn)閾?jù)調(diào)查全世界打印的數(shù)碼相片不到35%。二、系統(tǒng)開(kāi)發(fā)目標(biāo)根據(jù)實(shí)際應(yīng)用的特點(diǎn)對(duì)產(chǎn)品進(jìn)行完整的需求分析,形成比較完善的總體設(shè)計(jì)方案。同時(shí),達(dá)到能具備Linux操作系統(tǒng)下簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、圖形用戶接口設(shè)計(jì)的能力。此外,掌握基本的系統(tǒng)功能與性能測(cè)試技術(shù),從而具備比較全面的嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)能力。另外,作為一個(gè)消費(fèi)類(lèi)電子產(chǎn)品,數(shù)碼相框的設(shè)計(jì)必須考慮以下因素:(1)用戶接口友好、操作方便。由于該產(chǎn)品的使用者大多是非專(zhuān)業(yè)人士,用戶接口是否清晰明了、操作是否簡(jiǎn)捷方便成為用戶是否能迅速的接受此產(chǎn)品的重要因素。(2)系統(tǒng)兼容

3、性強(qiáng)。數(shù)碼相框應(yīng)能識(shí)別和處理當(dāng)前數(shù)碼相機(jī)主要的圖像格式,能訪問(wèn)主流的外部半導(dǎo)體存儲(chǔ)卡。(3)穩(wěn)定可靠。作為消費(fèi)類(lèi)電子產(chǎn)品。必須通過(guò)比較嚴(yán)格的功能測(cè)試,以保證用戶在使用過(guò)程中,不會(huì)因?yàn)槌绦蝈e(cuò)誤而喪失對(duì)產(chǎn)品的信心。三、所需環(huán)境與設(shè)備(1)以GEC2440開(kāi)發(fā)板作為目標(biāo)機(jī),使用安裝了Windows XP 的PC機(jī)作為宿主機(jī),并在宿主機(jī)上安裝虛擬機(jī)軟件,虛擬機(jī)里安裝的是Red Hat EnterpriseLinux5作為開(kāi)發(fā)環(huán)境。(2)硬件部分:GEC2440模仿三星smdk2440,以ARM920T為核,控制輔助設(shè)備。基本端口包括以太網(wǎng)接口,USB接口,還有兩個(gè)RS232的串口。A/D和D/A模塊主

4、要用于現(xiàn)場(chǎng)數(shù)據(jù)的采集與控制信號(hào)的輸出。DC/DC模塊主要負(fù)責(zé)整個(gè)系統(tǒng)的供電。四、系統(tǒng)概要設(shè)計(jì)硬件部分:系統(tǒng)的主要硬件包括嵌入式開(kāi)發(fā)平臺(tái)GECC2440、LCD屏、人機(jī)交互界面、外部存儲(chǔ)介質(zhì)接口電路。大致可以分為三塊:(1)LCD屏用來(lái)展示圖片、輸出信息。(2)人機(jī)交互界面設(shè)定各個(gè)模式的播放形式、輸入信息。(3)外部存儲(chǔ)介質(zhì)接口電路用來(lái)提供外部的存儲(chǔ)介質(zhì)的接口。軟件部分:(1)交叉環(huán)境的搭建:用GNU工具鏈作為交叉編譯器。(2)超級(jí)終端。五、系統(tǒng)詳細(xì)設(shè)計(jì)(1)嵌入式Linux開(kāi)發(fā)環(huán)境的建立具體步驟過(guò)程:交叉環(huán)境的具體建立;Qt應(yīng)用界面代碼的編寫(xiě);環(huán)境的調(diào)試、仿真運(yùn)行、NFS的配置等。(2)系統(tǒng)軟

5、硬件的的連接工作:bootloader的移植、linux核配置移植、驅(qū)動(dòng)移植、根文件系統(tǒng)制作、帶庫(kù)的根文件系統(tǒng)的制作與各階段的調(diào)試、QT界面的設(shè)計(jì)。(3)運(yùn)用QT 與網(wǎng)絡(luò)編程實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)界面的可視化,與網(wǎng)絡(luò)的連接問(wèn)題。(4)對(duì)預(yù)期的目標(biāo)功能,編寫(xiě)代碼,調(diào)試仿真、運(yùn)行。(5)對(duì)應(yīng)用程序開(kāi)發(fā)的代碼編寫(xiě)與調(diào)試運(yùn)行。六、調(diào)試分析與分工對(duì)開(kāi)發(fā)過(guò)程中遇到的問(wèn)題,時(shí)時(shí)記錄,分析解決,保證階段任務(wù)能夠順完成。軍委完成環(huán)境的搭建、bootloader的燒寫(xiě),usb驅(qū)動(dòng)的移植與調(diào)試。肖奇超完成核的裁剪與移植、Qt應(yīng)用程序的設(shè)計(jì)。測(cè)試記錄要細(xì)致。七、時(shí)間安排與所用到的參考資料第一二周前期資料調(diào)查整理,準(zhǔn)備開(kāi)發(fā)板與有

6、關(guān)環(huán)境的搭建與測(cè)試。第三周系統(tǒng)概要設(shè)計(jì),對(duì)硬件和軟件部分的分析,主要是對(duì)設(shè)計(jì)的目標(biāo)功能的預(yù)計(jì)需求,作好交叉編譯環(huán)境的建立與運(yùn)行等。第五六周完成詳細(xì)系統(tǒng)設(shè)計(jì)。包括具體的代碼的編寫(xiě),核驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)的完成,以與應(yīng)用程序的開(kāi)發(fā)等。第七周完成應(yīng)用程序代碼的編譯運(yùn)行仿真,測(cè)試等參考資料: 1勇.ARM原理與C程序設(shè)計(jì).:電子科技大學(xué), 2009年4月2韋東山.嵌入式Linux應(yīng)用軟件開(kāi)發(fā)完全手冊(cè).:人民郵電,2008年8月3LUPA. Linux軟件工程師實(shí)用教程.:科學(xué),2011年11月修訂版4成潔,盧紫毅.Linux窗口程序設(shè)計(jì).:清華大學(xué),2008年11月5粵嵌技術(shù)中心.GEC2440開(kāi)發(fā)板說(shuō)明文

7、檔,GEC開(kāi)發(fā)板實(shí)驗(yàn)指導(dǎo)手冊(cè).6 :.trolltech. qt開(kāi)發(fā)白皮書(shū),qt幫助文檔7Daniel Solin著,袁鵬飛譯.24小時(shí)學(xué)通Qt編程.:人民郵電2000年10月8百度文庫(kù),中國(guó)IT實(shí)驗(yàn)室,ChinaUnix摘 要嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可以配置,通常對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格約束的一種專(zhuān)用計(jì)算機(jī)系統(tǒng)。當(dāng)前先進(jìn)的嵌入式系統(tǒng),通常由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以與嵌入式應(yīng)用程序四個(gè)部分組成,實(shí)計(jì)算機(jī)基于ARM Linux和Qt/Embedded的嵌入式數(shù)碼相框系統(tǒng)的研究和實(shí)現(xiàn)應(yīng)用系統(tǒng),稱(chēng)為嵌入式系統(tǒng)、實(shí)時(shí)系統(tǒng)或者嵌入式實(shí)時(shí)系統(tǒng)

8、。根據(jù)目前國(guó)外對(duì)嵌入式的研究和開(kāi)發(fā),結(jié)合實(shí)際的實(shí)驗(yàn)條件,本項(xiàng)目使用硬件平臺(tái)省嵌入式軟件公共技術(shù)中心開(kāi)發(fā)的GEC2440開(kāi)發(fā)板作為目標(biāo)機(jī),使用安裝Windows XP的PC機(jī)作為宿主機(jī),并在宿主機(jī)Windows平臺(tái)上安裝了一個(gè)虛擬機(jī)軟件,虛擬機(jī)里安裝的是Red Hat EnterpriseLinux 5作為開(kāi)發(fā)環(huán)境。主要實(shí)現(xiàn)工作包括:在宿主機(jī)上安裝交叉編譯工具,建立交叉編譯環(huán)境,配置tftp、DNW(或超級(jí)終端)以建立嵌入式軟件平臺(tái)。進(jìn)行一個(gè)可以瀏覽與管理圖片功能,且能進(jìn)行幻燈片播放的課程設(shè)計(jì)。針對(duì)項(xiàng)目需現(xiàn)對(duì)驅(qū)動(dòng)程序的完善和移植,制作適合此開(kāi)發(fā)板的根文件系統(tǒng),最后將基于qt設(shè)計(jì)的應(yīng)用程序程植到開(kāi)

9、發(fā)板上,實(shí)現(xiàn)個(gè)人圖片的掌上管理。關(guān)鍵詞:嵌入式系統(tǒng);GEC2440開(kāi)發(fā)板;虛擬機(jī)環(huán)境;移植。AbstractEmbedded system is used as the center, take the computer technology as the foundation, software and hardware can be configured, usually to the function, reliability, cost, volume, power consumption have strict constraints of a kind of special com

10、puter system. The current advanced Embedded system, usually by Embedded microcontroller processor,peripheral hardware equipment, Embedded operating system and Embedded application four parts, real computer based on ARM Linux and Qt/Embedded Embedded digital photo frame system research and implementa

11、tion application system, called the Embedded system, real-time systems or Embedded real-time system.According to the current domestic and foreign research and development of embedded, combining with the condition of experiment, this project use hardware platform embedded software public technology c

12、enter of guangdong province the development of GEC2440 development board as the target machine, use Windows XP install the PC as the host machine, and in the host machine Windows platform installed a virtual machine software, virtual machine is installed, the Red Hat EnterpriseLinux 5 as a developme

13、nt environment. Main realization work include: in the host machine installation cross-compiling tools, set up cross-compiling environment, the configuration TFTP, DNW (or super terminal) to establish embedded software platform. A can browse pictures and management function, and can play a course des

14、ign slides. For the project requirements to achieve the perfect for drivers and transplantation, making for the development of the board root filesystem, finally will be based on qt application ChengZhi designed to development board, realize the palm of personal pictures !Keywords: embedded system;G

15、EC2440 development board;virtual machine environment;the transplant.目 錄 TOC o 1-3 h z u HYPERLINK l _Toc321738224摘要 PAGEREF _Toc321738224 h 5HYPERLINK l _Toc321738225Abstract PAGEREF _Toc321738225 h 6HYPERLINK l _Toc321738226目錄 PAGEREF _Toc321738226 h 7HYPERLINK l _Toc321738227第一章緒論 PAGEREF _Toc3217

16、38227 h 9HYPERLINK l _Toc321738228第二章所需環(huán)境與設(shè)備 PAGEREF _Toc321738228 h 10HYPERLINK l _Toc3217382292.1硬件部分: PAGEREF _Toc321738229 h 10HYPERLINK l _Toc3217382302.1.1 GEC2440開(kāi)發(fā)板介紹 PAGEREF _Toc321738230 h 10HYPERLINK l _Toc3217382312.2軟件部分 PAGEREF _Toc321738231 h 11HYPERLINK l _Toc3217382322.2.1 Linux系統(tǒng)平臺(tái)

17、介紹: PAGEREF _Toc321738232 h 11HYPERLINK l _Toc3217382332.2.2 QT/Embeded界面介紹: PAGEREF _Toc321738233 h 11HYPERLINK l _Toc3217382342.3實(shí)現(xiàn)思路 PAGEREF _Toc321738234 h 11HYPERLINK l _Toc321738235第三章嵌入式開(kāi)發(fā)環(huán)境的搭建 PAGEREF _Toc321738235 h 12HYPERLINK l _Toc3217382363.1嵌入式交叉環(huán)境的概述 PAGEREF _Toc321738236 h 12HYPERLIN

18、K l _Toc3217382373.2 交叉編譯環(huán)境的搭建 PAGEREF _Toc321738237 h 12HYPERLINK l _Toc3217382383.3交叉調(diào)試環(huán)境的搭建 PAGEREF _Toc321738238 h 13HYPERLINK l _Toc3217382393.4交叉服務(wù)器的搭建 PAGEREF _Toc321738239 h 13HYPERLINK l _Toc3217382403.5關(guān)于交叉調(diào)試 PAGEREF _Toc321738240 h 13HYPERLINK l _Toc3217382413.6關(guān)于網(wǎng)絡(luò)掛載的配置 PAGEREF _Toc32173

19、8241 h 14HYPERLINK l _Toc321738242第四章 U-boot的移植 PAGEREF _Toc321738242 h 17HYPERLINK l _Toc3217382434.1建立工作目錄 PAGEREF _Toc321738243 h 17HYPERLINK l _Toc3217382444.2設(shè)置環(huán)境 PAGEREF _Toc321738244 h 17HYPERLINK l _Toc3217382454.2.1stage1階段硬件初始化 PAGEREF _Toc321738245 h 17HYPERLINK l _Toc3217382464.2.2修改時(shí)鐘 P

20、AGEREF _Toc321738246 h 17HYPERLINK l _Toc3217382474.2.3重定位u-boot代碼 PAGEREF _Toc321738247 h 19HYPERLINK l _Toc3217382484.3進(jìn)入目錄配置編譯 PAGEREF _Toc321738248 h 22HYPERLINK l _Toc3217382494.4 bootloader的燒寫(xiě) PAGEREF _Toc321738249 h 22HYPERLINK l _Toc321738250第五章 Linux核的移植 PAGEREF _Toc321738250 h 24HYPERLINK

21、l _Toc3217382515.1 準(zhǔn)備工作 PAGEREF _Toc321738251 h 24HYPERLINK l _Toc3217382525.2 修改核源碼頂層 PAGEREF _Toc321738252 h 24HYPERLINK l _Toc3217382535.3 修改機(jī)器碼 PAGEREF _Toc321738253 h 24HYPERLINK l _Toc3217382545.4 設(shè)置 flash 分區(qū) PAGEREF _Toc321738254 h 25HYPERLINK l _Toc3217382555.5 配置編譯核 PAGEREF _Toc321738255 h

22、26HYPERLINK l _Toc3217382565.6 Linux核編譯 PAGEREF _Toc321738256 h 30HYPERLINK l _Toc3217382575.7 使用minicon遠(yuǎn)程訪問(wèn)目標(biāo)板 PAGEREF _Toc321738257 h 30HYPERLINK l _Toc3217382585.8下載到開(kāi)發(fā)板中測(cè)試 PAGEREF _Toc321738258 h 31HYPERLINK l _Toc321738259第六章驅(qū)動(dòng)的移植 PAGEREF _Toc321738259 h 32HYPERLINK l _Toc3217382606.1關(guān)于USB驅(qū)動(dòng)移植

23、PAGEREF _Toc321738260 h 32HYPERLINK l _Toc3217382616.2 關(guān)于LCD驅(qū)動(dòng)移植 PAGEREF _Toc321738261 h 33HYPERLINK l _Toc3217382626.3關(guān)于觸摸板驅(qū)動(dòng)移植 PAGEREF _Toc321738262 h 35HYPERLINK l _Toc321738263第七章制作根文件系統(tǒng) PAGEREF _Toc321738263 h 38HYPERLINK l _Toc3217382647.1工作目錄 PAGEREF _Toc321738264 h 38HYPERLINK l _Toc32173826

24、57.2創(chuàng)建節(jié)點(diǎn) PAGEREF _Toc321738265 h 38HYPERLINK l _Toc3217382667.3拷貝動(dòng)態(tài)庫(kù) PAGEREF _Toc321738266 h 38HYPERLINK l _Toc3217382677.4交叉編譯busybox PAGEREF _Toc321738267 h 39HYPERLINK l _Toc3217382687.5交叉編譯bash(交互程序) PAGEREF _Toc321738268 h 39HYPERLINK l _Toc3217382697.6建立系統(tǒng)配置文件 PAGEREF _Toc321738269 h 40HYPERLI

25、NK l _Toc3217382707.7添加一個(gè)用戶程序 PAGEREF _Toc321738270 h 41HYPERLINK l _Toc3217382717.8帶QTE庫(kù)的根文件系統(tǒng)制作 PAGEREF _Toc321738271 h 42HYPERLINK l _Toc3217382727.9手動(dòng)校準(zhǔn) PAGEREF _Toc321738272 h 43HYPERLINK l _Toc3217382737.10根文件系統(tǒng)燒入 PAGEREF _Toc321738273 h 44HYPERLINK l _Toc321738274第八章基于qt3平臺(tái)的應(yīng)用程序 PAGEREF _Toc3

26、21738274 h 45HYPERLINK l _Toc3217382758.1新建一個(gè)數(shù)碼相框工程 PAGEREF _Toc321738275 h 45HYPERLINK l _Toc3217382768.2函數(shù)主要源代碼 PAGEREF _Toc321738276 h 46HYPERLINK l _Toc3217382778.3在主機(jī)上運(yùn)行 PAGEREF _Toc321738277 h 57HYPERLINK l _Toc3217382788.4交叉編譯生成目標(biāo)文件 PAGEREF _Toc321738278 h 57HYPERLINK l _Toc3217382798.5在目標(biāo)板上運(yùn)

27、行 PAGEREF _Toc321738279 h 57HYPERLINK l _Toc321738280第九章結(jié)束語(yǔ) PAGEREF _Toc321738280 h 59HYPERLINK l _Toc321738281致 PAGEREF _Toc321738281 h 60HYPERLINK l _Toc321738282參考文獻(xiàn) PAGEREF _Toc321738282 h 61HYPERLINK l _Toc321738283附錄 PAGEREF _Toc321738283 h 62緒論根據(jù)實(shí)際應(yīng)用的特點(diǎn)對(duì)產(chǎn)品進(jìn)行完整的需求分析,形成比較完善的總體設(shè)計(jì)方案。同時(shí),達(dá)到能具備Linux

28、操作系統(tǒng)下簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、圖形用戶接口設(shè)計(jì)的能力。此外,掌握基本的系統(tǒng)功能與性能測(cè)試技術(shù),從而具備比較全面的嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)能力。另外,作為一個(gè)消費(fèi)類(lèi)電子產(chǎn)品,數(shù)碼相框的設(shè)計(jì)必須考慮以下因素:1、用戶接口友好、操作方便。2、系統(tǒng)兼容性強(qiáng)。數(shù)碼相框應(yīng)能識(shí)別和處理當(dāng)前數(shù)碼相機(jī)主要的圖像格式,能訪問(wèn)主流的外部半導(dǎo)體存儲(chǔ)卡。3、穩(wěn)定可靠。隨著PC時(shí)代數(shù)碼技術(shù)的發(fā)展,數(shù)碼相機(jī)以其低廉的價(jià)格,方便的操作成為攝影器材未來(lái)的發(fā)展方向。目前,很多家庭都持有數(shù)碼相機(jī),一次拍攝下來(lái)的照片往往會(huì)有上百,使用PC機(jī)來(lái)查看拍攝下來(lái)的圖片,操作繁瑣,而且依賴(lài)于PC機(jī)。作為數(shù)碼相機(jī)的一種附屬產(chǎn)品,數(shù)碼相框不僅具有傳

29、統(tǒng)相框的特點(diǎn),而且可以直接從數(shù)碼相機(jī)中選擇心儀的照片,定時(shí)更新照片。數(shù)字相框可以擺放在家居顯眼之處,成為現(xiàn)代家庭一道靚麗的風(fēng)景線。數(shù)碼相框是展示數(shù)碼照片而非紙質(zhì)照片的相框。眾多的數(shù)碼攝影產(chǎn)生的相片保存起來(lái)后,查看過(guò)程繁瑣不方便,大量打印出來(lái)又非常浪費(fèi),如果用數(shù)碼相框直接插上相機(jī)的存儲(chǔ)卡展示照片,就非??崃?數(shù)碼攝影必然推動(dòng)數(shù)碼相框的發(fā)展,因?yàn)閾?jù)調(diào)查全世界打印的數(shù)碼相片不到35%。第二章 所需環(huán)境與設(shè)備2.1硬件部分:以GEC2440開(kāi)發(fā)板作為目標(biāo)機(jī),使用安裝了Windows XP 的PC機(jī)作為宿主機(jī),并在宿主機(jī)上安裝虛擬機(jī)軟件,虛擬機(jī)里安裝的是Red Hat EnterpriseLinux5作

30、為開(kāi)發(fā)環(huán)境。GEC2440模仿三星smdk2440,以ARM920T為核,控制輔助設(shè)備?;径丝诎ㄒ蕴W(wǎng)接口,USB接口,還有兩個(gè)RS232的串口。A/D和D/A模塊主要用于現(xiàn)場(chǎng)數(shù)據(jù)的采集與控制信號(hào)的輸出。DC/DC模塊主要負(fù)責(zé)整個(gè)系統(tǒng)的供電。系統(tǒng)的主要硬件包括嵌入式開(kāi)發(fā)平臺(tái)GECC2440、LCD屏、人機(jī)交互界面、外部存儲(chǔ)介質(zhì)接口電路。大致可以分為三塊:(1)LCD屏用來(lái)展示圖片、輸出信息。(2)人機(jī)交互界面設(shè)定各個(gè)模式的播放形式、輸入信息。(3)外部存儲(chǔ)介質(zhì)接口電路用來(lái)提供外部的存儲(chǔ)介質(zhì)的接口.2.1.1 GEC2440開(kāi)發(fā)板介紹使用硬件平臺(tái)省嵌入式軟件公共技術(shù)中心開(kāi)發(fā)的GEC2440開(kāi)

31、發(fā)板作為硬件平臺(tái),GEC2440是模仿廣為流行的三星smdk2440開(kāi)發(fā)板而設(shè)計(jì)的低價(jià)位開(kāi)發(fā)板,下面對(duì)GEC2440做一些簡(jiǎn)單介紹。GEC2440的設(shè)計(jì)以ARM920T為核的三星SC32440是控制核心,負(fù)責(zé)控制所有輔助設(shè)備。存儲(chǔ)器采用SDRAM和FLASH兩種類(lèi)型,能滿足系統(tǒng)運(yùn)行和調(diào)試的需要。基本端口包括以太網(wǎng)接口,USB接口,還有兩個(gè)RS232的串口。A/D和D/A模塊主要用于現(xiàn)場(chǎng)數(shù)據(jù)的采集與控制信號(hào)的輸出。DC/DC模塊主要負(fù)責(zé)整個(gè)系統(tǒng)的供電。擴(kuò)展接口考慮了系統(tǒng)的可擴(kuò)展性。開(kāi)發(fā)板外觀布局如圖2.1圖2.1GEC2440開(kāi)發(fā)板外觀圖2.2軟件部分2.2.1 Linux系統(tǒng)平臺(tái)介紹:Linu

32、x是一種類(lèi)UNIX操作系統(tǒng)。兼容POSIX 1003.1標(biāo)準(zhǔn),并包含了UNIX System V和BSD 4.3的大部分特征。它充分體現(xiàn)了操作系統(tǒng)的方展趨勢(shì),即開(kāi)放、穩(wěn)定、標(biāo)準(zhǔn)。Linux具有如下的特征:(1)真正的多用戶、多任務(wù)操作系統(tǒng)。(2)符合POSIX(可移植操作系統(tǒng)接口)標(biāo)準(zhǔn)。(3)采用頁(yè)式存儲(chǔ)管理。(4)支持動(dòng)態(tài)庫(kù)。(5)提供具有置安全措施的分層文件系統(tǒng)。(6)提供Shell命令解釋程序和編程語(yǔ)言。(7)提供強(qiáng)大的管理功能,包括遠(yuǎn)程管理功能。(8)提供核編程接口。(9)具備圖形用戶接口。(10)具備大量的實(shí)用程序和通信、聯(lián)網(wǎng)工具。(11)大量高級(jí)程序設(shè)計(jì)語(yǔ)言已經(jīng)被移植到Linux系

33、統(tǒng)上,因此它是理想的應(yīng)用程序開(kāi)發(fā)平臺(tái)。2.2.2 QT/Embeded界面介紹:當(dāng)前嵌入式Linux在手機(jī)、PDA等手持信息設(shè)備領(lǐng)域的應(yīng)用十分廣泛。各種手持設(shè)備是否擁有圖形用戶界(GUI)己經(jīng)成為其人機(jī)交互技術(shù)的關(guān)鍵體現(xiàn),所以一個(gè)十分友好的圖形用戶界面(GUI)是必不可少的。嵌入式GUI是嵌入式系統(tǒng)廣泛應(yīng)用的人機(jī)交互接口。嵌入式系統(tǒng)有限的硬件資源要求嵌入式GUI必須簡(jiǎn)單、直觀、可靠、占用資源小且反應(yīng)快速。由于嵌入式系統(tǒng)硬件本身的多樣性,嵌入式GUI應(yīng)具備高度可移植性與可裁減性。2.3實(shí)現(xiàn)思路首先在本地計(jì)算機(jī)上編寫(xiě)程序;然后通過(guò)在本地進(jìn)行交叉編譯生成目標(biāo)平臺(tái)上可以運(yùn)行的二進(jìn)制代碼格式;最后再下載

34、到目標(biāo)平臺(tái)上的特定位置上運(yùn)行。(1)交叉環(huán)境的搭建:用GNU工具鏈作為交叉編譯調(diào)試器。(2)終端使用的是DNW和secure CRT。第三章 嵌入式開(kāi)發(fā)環(huán)境的搭建3.1嵌入式交叉環(huán)境的概述嵌入式系統(tǒng)通常是一個(gè)資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫(xiě)軟件比較困難,有時(shí)候甚至是不可能的。所以需要一個(gè)交叉環(huán)境來(lái)實(shí)現(xiàn):首先在通用計(jì)算機(jī)上編寫(xiě)程序;然后通本地編譯或者交叉編譯生成目標(biāo)浹臺(tái)上可以運(yùn)行的二進(jìn)制代碼格式;最后再下載到目標(biāo)平臺(tái)上的特定的位置上去運(yùn)行。3.2 交叉編譯環(huán)境的搭建在一種平臺(tái)上編譯出能在另一種平臺(tái)(體系結(jié)構(gòu)不同)上運(yùn)行的程序,在PC平臺(tái)(X86CPU)上編譯出能在arm平臺(tái)上

35、的程序,編譯后的程序在X86上是不能運(yùn)行的,必須放到arm上才能運(yùn)行,用來(lái)編譯這種程序的編譯器叫做交做編譯器。我們用到的是arm-linux-gcc。嵌入式軟件開(kāi)發(fā)需要交叉開(kāi)發(fā)環(huán)境,這是其開(kāi)發(fā)的一顯著特點(diǎn),交叉編譯器只是交叉開(kāi)發(fā)環(huán)境的一部分,我們說(shuō)的交叉開(kāi)發(fā)環(huán)境是指編譯、和調(diào)試嵌入式應(yīng)用軟件的環(huán)境,它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,常采用宿主機(jī)目標(biāo)機(jī)模式。關(guān)于交叉工具鏈:它是交叉編譯環(huán)境所需工具的集合體,是所需軟件(binuntials、gcc與glibc等)的安裝載體,主要包括:交叉編譯器(arm-linux-gcc)、交叉匯編器(arm-linux-as)、交叉器(arm-linux-

36、ld)、各種操作所依賴(lài)的庫(kù)與用于處理可執(zhí)行程序和庫(kù)的一些基本工具(如arm-linux-strip)。交叉環(huán)境如圖所示:圖3.2 SEQ 圖3.2 * ARABIC1安裝編譯器(交叉工具鏈)軟件:eabi-4.1.2.tar.bz2安裝準(zhǔn)備 #mkdir /usr/local/arm#cp eabi-4.1.2.tar.bz2 -C /usr/local/arm#mv eabi 4.1.2添加環(huán)境變量:#vi /etc/bashrc在文件結(jié)尾添加 export PATH= /usr/local/arm/4.1.2/bin:$PATH使配置生效:#source /etc/bashrc3.3交叉調(diào)

37、試環(huán)境的搭建源碼包gdb-6.5.tar.bz2的安裝cd.(1)新建編譯目錄 #mkdir /home/build_gdb #cd /home/build_gdb 將gdb-6.5.tar.bz2拷貝到/home/build_gdb(2)解壓gdb-6.5.tar.bz2 #tar jxf gdb-6.5.tar.bz2c(3)配置 #cd gdb-6.5#./configure -target=arm-linux -prefix=/usr/local/arm/4.1.2/此步遇到的問(wèn)題是:./configuretarget =arm-linux沒(méi)有那個(gè)文件或目錄,是因?yàn)閏onfigure的

38、權(quán)限問(wèn)題,在運(yùn)行configure前chmod 755 configure)(4)編譯 #make(5)安裝#make install (在/usr/local/arm/4.1.2/bin/目錄下已生成arm-linux-gdb工具)。3.4交叉服務(wù)器的搭建源碼包:gdb-6.5/gdb/gdbserver(1)進(jìn)入 #cd gdb-6.5/gdb/gdbserver(2)配置 #chmod u+x configure #./configure -host=arm-linux (3)編譯 #make CC=/usr/local/arm/4.1.2/bin/arm-linux-gcc (完了在當(dāng)

39、前目錄生成gdbserver、gdbreplay等)這里遇到的問(wèn)題是:沒(méi)有使用絕對(duì)路徑,導(dǎo)致了無(wú)法生成(4)下載安裝到目標(biāo)板(gdbserver)gdbserver放到目標(biāo)板的/bin目錄下。3.5關(guān)于交叉調(diào)試(1)新建測(cè)試目錄 #mkdir /root/test #cd /root/test(2)編輯文件 #vim debug.c(3)交叉編譯 #arm-linux-gcc -g debug.c -o debug (加上-g選項(xiàng))(4)下載到目標(biāo)板(將整個(gè)代碼目錄)#mkdir arm_debug #cd arm_debug /將目標(biāo)程序放進(jìn)arm_debug(5)啟動(dòng)調(diào)試服務(wù)器(目標(biāo)板上進(jìn)

40、行) 成功后便開(kāi)始偵聽(tīng)本地調(diào)試端口,可以看到如下信息: bash-4.0# gdbserver 22:1234 debug Process try created; pid = 992 Listening on port 1234 (22是目標(biāo)板的IP)(6)啟動(dòng)交叉調(diào)試器(在宿主機(jī)上進(jìn)行) #/root/test (一定要進(jìn)去代碼目錄下) #arm-linux-gdb debug #target remote 22:1234 成功后打印如下:(gdb) target remote 23:1234Remote debugging using 23:1234Remote communicatio

41、n error: Connection reset by peer然后進(jìn)行調(diào)試。3.6關(guān)于網(wǎng)絡(luò)掛載的配置使用NFS服務(wù),將宿主機(jī)的一個(gè)目錄通過(guò)網(wǎng)絡(luò)可以掛載到其他計(jì)算機(jī)上,并作為它的一個(gè)目錄,在嵌入式開(kāi)發(fā)過(guò)NFS可以很方便的將修改的文件通過(guò)NFS傳輸?shù)介_(kāi)發(fā)板中去,不用以復(fù)的燒寫(xiě)鏡像文件。圖3.6 SEQ 圖3.6 * ARABIC1修改配置文件:#vim /etc/exports配置容為/root/rootfs 192.168.1.* ()rw.sync,no_root_squash)共享的目錄主機(jī)名或IP參數(shù)1 參數(shù)2 共享的目錄IP1(參數(shù)1,參數(shù)2)IP2(參數(shù)3,參數(shù)4)rw 對(duì)共享文件

42、夾可讀可寫(xiě)。sync 所有數(shù)據(jù)在請(qǐng)求時(shí)寫(xiě)入共享。no_root_squash 使遠(yuǎn)程用戶具備本地root用戶所具有的讀寫(xiě)權(quán)限。/root/rootfs:是宿主機(jī)上共享的文件夾。192.168.1.*:是所支持的目標(biāo)板的IP地址,用的*表示該網(wǎng)段的地址都可以訪問(wèn)。備注:NFS的使有分服務(wù)器端和客戶端:服務(wù)器端提供要共享的文件,客戶端通掛載(mount)實(shí)現(xiàn)對(duì)共享文件平的訪問(wèn),例如:mount :/home/nfs/tmp/test本地NFS服務(wù)器端通過(guò)讀取配置文件/etc/exprots決定對(duì)外所共享的文件目錄,在客戶端的終端過(guò)NFS方式掛載宿主機(jī)目錄,例如:mount -o nolock :/

43、home/nfs/tmp/test客戶端卸載所掛載的NFS文件系統(tǒng),umount命令不能在掛載目錄執(zhí)行,需要離開(kāi)執(zhí)行。umount /tmp/test宿主機(jī)#ifconfig eth0 32ping (ping網(wǎng)關(guān))#service nfs restart#showmount e localhost(查看當(dāng)前對(duì)外共享目錄)#mount 32:/root/rootfs/ /tmp(本地測(cè)試)客戶端ifconfig eth0 32.xxx(與服務(wù)器在同一網(wǎng)段):ping 32 c 5(與服務(wù)器聯(lián)網(wǎng)通連測(cè)試)mount -o nolock 32:/root/rootfs /tmp第四章 U-boot

44、的移植4.1建立工作目錄下載源碼Uboot的源碼:u-boot-2009.11.tar.bz2#mkdir /root/build_uboot#cd /root/build_uboot把下載的源碼拷貝到該目錄,解壓;并把解壓后目錄更名為u-boot。#tar jxvf u-boot-2009.11.tar.bz2#mv u-boot-2009.11 u-boot創(chuàng)建主代碼 復(fù)制board/samsung/smdk2410目錄為board/sansung/gec2440#cp arf board/samsung/smdk2410 board/samsung/gec2440/并修改目錄下的Make

45、file將COBJS:=smdk2410.o.flash.o修改為COBJS:=GEC2440.o.flash.o復(fù)制include/configs/smdk2410.h為include/configs/gec2440.h#cp include/configs/smdk2410.h include/configs/gec2440.h修改頂層Makefile:創(chuàng)建目標(biāo)板信息,在smdk2410_config:unconfig$(MKCONFIG)$(:_config=)arm arm920t smdk2410 NULL s3c24x0后面添加gec2440_config:unconfig$(MK

46、CONFIG)$(:_config=)amr amr920t gec2440 samsung s3c24x0修改Makefile規(guī)則,將_LIBS:=$(subst$(obj),$(LIBS)$(subst$(obj),$(LIBBOARD)改為:_LIBS:=$(subst$(obj),$(LIBBOARD)$(subst$(obj),$(LIBS)4.2設(shè)置環(huán)境4.2.1stage1階段硬件初始化在include/configs/gec2440.h頭文件中添加CONFIG_S3C2440宏。#define CONFIG_S3C2440 14.2.2修改時(shí)鐘由于s3c2410與s3c2440

47、的時(shí)鐘與Nand ,SDRAM等配置不同,故需要修改相關(guān)配置:(1)修改cpu/arm920t/start.S#if defined(CONFIG_S3C2400)|defined(CONFIG_S3C2410)|defined (CONFIG_S3C2440)#if defined(CONFIG_S3C2440) /添加中斷禁止部分1dr r1, =0 x7fff1dr r0,=INTSUBMSKstr r1,r0#endif#if defined (CONFIG_S3C2440)/添加時(shí)鐘部分#defined MLLCON 0 x4C000004/系統(tǒng)主頻配置寄存器基地址#defined

48、UPLLCON 0 x4C000008/USB時(shí)鐘頻率配置寄存器基地址1dr r0, =CLKDIVN/設(shè)置分頻系數(shù)mov r1 ,#5str r1,r01dr r0,=MPLLCON1dr r1,=0 x7F021str r1,r01dr r0 ,=UPLLCON/設(shè)置USB時(shí)鐘頻率為48MHz1dr r1,=0 x38022str r1,r0#else(2)修改board/samsung/gec2440/gec2440.c,設(shè)置主頻和USB時(shí)鐘頻率參數(shù)與start.S中的一致#define FCLK_SPEED 2/設(shè)置默認(rèn)等于2,即下面代碼有效#elif FCLK_SPEED = 2#d

49、efine M_MDIV 0 x7F#define M_PDIV 0 x2#define M_SDIV 0 x1#define USB_CLOCK 2 /設(shè)置默認(rèn)等于2,即下面代碼有效#elif USB_CLOCK = 2#define U_M_MDIV 0 x38 #define U_M_PDIV 0 x2#define U_M_SDIV0 x2(3)修改cpu/arm920t/s3c24x0/speed.cstatic ulong get_PLLCLK(int pllreg)S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CL

50、OCK_POWER();ulong r, m, p, s;if (pllreg = MPLL)r = clk_power-MPLLCON;else if (pllreg = UPLL)r = clk_power-UPLLCON;elsehang();m = (r & 0 xFF000) 12) + 8;p = (r & 0 x003F0) 4) + 2;s = r & 0 x3;#if defined(CONFIG_S3C2440)if(pllreg = MPLL) /參考S3C2440 芯片手冊(cè)上的公式:PLL=(2 * m * Fin)/(p * 2s)return(CONFIG_SYS_

51、CLK_FREQ * m * 2) / (p s);#endifreturn(CONFIG_SYS_CLK_FREQ * m) / (p CLKDIVN & 0 x2) ? get_FCLK()/2 : get_FCLK();4.2.3重定位u-boot代碼(1)在include/configs/gec2440.h 頭文件中定義Nand 要用到的宏和寄存器,在文件末尾加入以下Nand Flash 相關(guān)定義(在最后一句#endif /* _CONFIG_H */之前):/* Nand flash register and envionment variables*/#define CONFIG_

52、S3C2440_NAND_BOOT 1#define NAND_CTL_BASE 0 x4E000000#define STACK_BASE 0 x33F00000#define STACK_SIZE 0 x8000#define oNFCONF 0 x00#define oNFCONT 0 x04#define oNFADDR 0 x0c#define oNFDATA 0 x10#define oNFCMD 0 x08#define oNFSTAT 0 x20#define oNFECC 0 x2c(2)修改cpu/arm920t/start.S#if 0#ifndef CONFIG_SKI

53、P_RELOCATE_UBOOTrelocate: adr r0, _start ldr r1, _TEXT_BASE cmp r0, r1 beq stack_setupldr r2, _armboot_startldr r3, _bss_startsub r2, r3, r2add r2, r0, r2 ldmia r0!, r3-r10 stmia r1!, r3-r10 cmp r0, r2 ble copy_loop#endif #endif添加u-boot從Nand Flash 啟動(dòng)#ifdef CONFIG_S3C2440_NAND_BOOTmov r1, #NAND_CTL_B

54、ASE /復(fù)位Nand Flashldr r2, =( (712)|(78)|(74)|(00) )str r2, r1, #oNFCONF /設(shè)置配置寄存器的初始值,參考s3c2440 手冊(cè)ldr r2, r1, #oNFCONFldr r2, =( (14)|(01)|(10) )str r2, r1, #oNFCONT /設(shè)置控制寄存器ldr r2, r1, #oNFCONTldr r2, =(0 x6) /RnB Clearstr r2, r1, #oNFSTATldr r2, r1, #oNFSTATmov r2, #0 xff /復(fù)位commandstrb r2, r1, #oNF

55、CMDmov r3, #0 /等待nand1:add r3, r3, #0 x1cmp r3, #0 xablt nand1nand2:ldr r2, r1, #oNFSTAT /等待就緒tst r2, #0 x4beq nand2ldr r2, r1, #oNFCONTorr r2, r2, #0 x2 /取消片選str r2, r1, #oNFCONT/get read to call C functions (for nand_read()ldr sp, DW_STACK_START /為C 代碼準(zhǔn)備堆棧,DW_STACK_START 定義在下面mov fp, #0 / no previ

56、ous frame, so fp=0 R11 幀指針寄存器/copy U-Boot to RAMldr r0, =TEXT_BASE/傳遞給C 代碼的第一個(gè)參數(shù):u-boot 在RAM 中的起始地址mov r1, #0 x0 /傳遞給C 代碼的第二個(gè)參數(shù):Nand Flash 的起始地址mov r2, #0 x30000 /傳遞給C 代碼的第三個(gè)參數(shù):u-boot 的長(zhǎng)度大小(128k)bl nand_read_ll/調(diào)用啟動(dòng)函數(shù)tst r0, #0 x0beq ok_nand_readbad_nand_read:loop2: b loop2 /infinite loopok_nand_rea

57、d:/檢查搬移后的數(shù)據(jù),如果前4k 完全一樣,表示搬移成功mov r0, #0ldr r1, =TEXT_BASEmov r2, #0 x400go_next:ldr r3, r0, #4ldr r4, r1, #4teq r3, r4bne notmatchsubs r2, r2, #4beq stack_setupbne go_nextnotmatch:loop3: b loop3#endif /CONFIG_S3C2440_NAND_BOOT_start_armboot: .word start_armboot /在這一句的下面加上DW_STACK_START 的定義。.align 2D

58、W_STACK_START: .word STACK_BASE+STACK_SIZE-4(3)在board/samsung/gec2440/目錄下新建一個(gè)nand_read.c 文件。在該文件中來(lái)實(shí)現(xiàn)上面匯編中要調(diào)用的nand_read_ll 函數(shù),代碼如下:#include #define NF_BASE 0 x4E000000#define _REGb(x) (*(volatile unsigned char *)(x)#define _REGi(x) (*(volatile unsigned int *)(x)#define NFCONF _REGi(NF_BASE + 0 x0 ) /

59、通過(guò)偏移量還是得到配置寄存器基地址#define NFCONT _REGi(NF_BASE + 0 x4 ) /通過(guò)偏移量得到控制寄存器基地址#define NFCMD _REGb(NF_BASE + 0 x8 ) /通過(guò)偏移量得到指令寄存器基地址#define NFADDR _REGb(NF_BASE + 0 xC ) /通過(guò)偏移量得到地址寄存器基地址#define NFDATA _REGb(NF_BASE + 0 x10) /通過(guò)偏移量得到數(shù)據(jù)寄存器基地址#define NFSTAT _REGb(NF_BASE + 0 x20) /通過(guò)偏移量得到狀態(tài)寄存器基地址#define NAND_C

60、HIP_ENABLE (NFCONT &= (11) /Nand 片選使能#define NAND_CHIP_DISABLE (NFCONT |= (11) /取消Nand 片選#define NAND_CLEAR_RB (NFSTAT |= (12)#define NAND_DETECT_RB while(! (NFSTAT&(12) ); /判斷是否就緒#define NAND_SECTOR_SIZE 512#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)/* low level nand read function */int nand_rea

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論