![數(shù)碼相框畢業(yè)論文_第1頁](http://file4.renrendoc.com/view/5405762b90cbe409b1c8db81c35bc76b/5405762b90cbe409b1c8db81c35bc76b1.gif)
![數(shù)碼相框畢業(yè)論文_第2頁](http://file4.renrendoc.com/view/5405762b90cbe409b1c8db81c35bc76b/5405762b90cbe409b1c8db81c35bc76b2.gif)
![數(shù)碼相框畢業(yè)論文_第3頁](http://file4.renrendoc.com/view/5405762b90cbe409b1c8db81c35bc76b/5405762b90cbe409b1c8db81c35bc76b3.gif)
![數(shù)碼相框畢業(yè)論文_第4頁](http://file4.renrendoc.com/view/5405762b90cbe409b1c8db81c35bc76b/5405762b90cbe409b1c8db81c35bc76b4.gif)
![數(shù)碼相框畢業(yè)論文_第5頁](http://file4.renrendoc.com/view/5405762b90cbe409b1c8db81c35bc76b/5405762b90cbe409b1c8db81c35bc76b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 .60/60 .畢業(yè)論文題目基于ARM和Linux的嵌入式數(shù)碼相框系統(tǒng)設(shè)計一、背景隨著PC時代數(shù)碼技術(shù)的發(fā)展,數(shù)碼相機以其低廉的價格,方便的操作成為攝影器材未來的發(fā)展方向。目前,很多家庭都持有數(shù)碼相機,一次拍攝下來的照片往往會有上百,使用PC機來查看拍攝下來的圖片,操作繁瑣,而且依賴于PC機。作為數(shù)碼相機的一種附屬產(chǎn)品,數(shù)碼相框不僅具有傳統(tǒng)相框的特點,而且可以直接從數(shù)碼相機中選擇心儀的照片,定時更新照片。數(shù)字相框可以擺放在家居顯眼之處,成為現(xiàn)代家庭一道靚麗的風(fēng)景線。數(shù)碼相框是展示數(shù)碼照片而非紙質(zhì)照片的相框。眾多的數(shù)碼攝影產(chǎn)生的相片保存起來后,查看過程繁瑣不方便,大量打印出來又非常浪費,如果用
2、數(shù)碼相框直接插上相機的存儲卡展示照片,就非常酷了。數(shù)碼攝影必然推動數(shù)碼相框的發(fā)展,因為據(jù)調(diào)查全世界打印的數(shù)碼相片不到35%。二、系統(tǒng)開發(fā)目標根據(jù)實際應(yīng)用的特點對產(chǎn)品進行完整的需求分析,形成比較完善的總體設(shè)計方案。同時,達到能具備Linux操作系統(tǒng)下簡單的設(shè)備驅(qū)動程序開發(fā)、圖形用戶接口設(shè)計的能力。此外,掌握基本的系統(tǒng)功能與性能測試技術(shù),從而具備比較全面的嵌入式應(yīng)用系統(tǒng)開發(fā)能力。另外,作為一個消費類電子產(chǎn)品,數(shù)碼相框的設(shè)計必須考慮以下因素:(1)用戶接口友好、操作方便。由于該產(chǎn)品的使用者大多是非專業(yè)人士,用戶接口是否清晰明了、操作是否簡捷方便成為用戶是否能迅速的接受此產(chǎn)品的重要因素。(2)系統(tǒng)兼容
3、性強。數(shù)碼相框應(yīng)能識別和處理當前數(shù)碼相機主要的圖像格式,能訪問主流的外部半導(dǎo)體存儲卡。(3)穩(wěn)定可靠。作為消費類電子產(chǎn)品。必須通過比較嚴格的功能測試,以保證用戶在使用過程中,不會因為程序錯誤而喪失對產(chǎn)品的信心。三、所需環(huán)境與設(shè)備(1)以GEC2440開發(fā)板作為目標機,使用安裝了Windows XP 的PC機作為宿主機,并在宿主機上安裝虛擬機軟件,虛擬機里安裝的是Red Hat EnterpriseLinux5作為開發(fā)環(huán)境。(2)硬件部分:GEC2440模仿三星smdk2440,以ARM920T為核,控制輔助設(shè)備。基本端口包括以太網(wǎng)接口,USB接口,還有兩個RS232的串口。A/D和D/A模塊主
4、要用于現(xiàn)場數(shù)據(jù)的采集與控制信號的輸出。DC/DC模塊主要負責(zé)整個系統(tǒng)的供電。四、系統(tǒng)概要設(shè)計硬件部分:系統(tǒng)的主要硬件包括嵌入式開發(fā)平臺GECC2440、LCD屏、人機交互界面、外部存儲介質(zhì)接口電路。大致可以分為三塊:(1)LCD屏用來展示圖片、輸出信息。(2)人機交互界面設(shè)定各個模式的播放形式、輸入信息。(3)外部存儲介質(zhì)接口電路用來提供外部的存儲介質(zhì)的接口。軟件部分:(1)交叉環(huán)境的搭建:用GNU工具鏈作為交叉編譯器。(2)超級終端。五、系統(tǒng)詳細設(shè)計(1)嵌入式Linux開發(fā)環(huán)境的建立具體步驟過程:交叉環(huán)境的具體建立;Qt應(yīng)用界面代碼的編寫;環(huán)境的調(diào)試、仿真運行、NFS的配置等。(2)系統(tǒng)軟
5、硬件的的連接工作:bootloader的移植、linux核配置移植、驅(qū)動移植、根文件系統(tǒng)制作、帶庫的根文件系統(tǒng)的制作與各階段的調(diào)試、QT界面的設(shè)計。(3)運用QT 與網(wǎng)絡(luò)編程實現(xiàn)系統(tǒng)設(shè)計界面的可視化,與網(wǎng)絡(luò)的連接問題。(4)對預(yù)期的目標功能,編寫代碼,調(diào)試仿真、運行。(5)對應(yīng)用程序開發(fā)的代碼編寫與調(diào)試運行。六、調(diào)試分析與分工對開發(fā)過程中遇到的問題,時時記錄,分析解決,保證階段任務(wù)能夠順完成。軍委完成環(huán)境的搭建、bootloader的燒寫,usb驅(qū)動的移植與調(diào)試。肖奇超完成核的裁剪與移植、Qt應(yīng)用程序的設(shè)計。測試記錄要細致。七、時間安排與所用到的參考資料第一二周前期資料調(diào)查整理,準備開發(fā)板與有
6、關(guān)環(huán)境的搭建與測試。第三周系統(tǒng)概要設(shè)計,對硬件和軟件部分的分析,主要是對設(shè)計的目標功能的預(yù)計需求,作好交叉編譯環(huán)境的建立與運行等。第五六周完成詳細系統(tǒng)設(shè)計。包括具體的代碼的編寫,核驅(qū)動和網(wǎng)絡(luò)驅(qū)動的完成,以與應(yīng)用程序的開發(fā)等。第七周完成應(yīng)用程序代碼的編譯運行仿真,測試等參考資料: 1勇.ARM原理與C程序設(shè)計.:電子科技大學(xué), 2009年4月2韋東山.嵌入式Linux應(yīng)用軟件開發(fā)完全手冊.:人民郵電,2008年8月3LUPA. Linux軟件工程師實用教程.:科學(xué),2011年11月修訂版4成潔,盧紫毅.Linux窗口程序設(shè)計.:清華大學(xué),2008年11月5粵嵌技術(shù)中心.GEC2440開發(fā)板說明文
7、檔,GEC開發(fā)板實驗指導(dǎo)手冊.6 :.trolltech. qt開發(fā)白皮書,qt幫助文檔7Daniel Solin著,袁鵬飛譯.24小時學(xué)通Qt編程.:人民郵電2000年10月8百度文庫,中國IT實驗室,ChinaUnix摘 要嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可以配置,通常對功能、可靠性、成本、體積、功耗有嚴格約束的一種專用計算機系統(tǒng)。當前先進的嵌入式系統(tǒng),通常由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以與嵌入式應(yīng)用程序四個部分組成,實計算機基于ARM Linux和Qt/Embedded的嵌入式數(shù)碼相框系統(tǒng)的研究和實現(xiàn)應(yīng)用系統(tǒng),稱為嵌入式系統(tǒng)、實時系統(tǒng)或者嵌入式實時系統(tǒng)
8、。根據(jù)目前國外對嵌入式的研究和開發(fā),結(jié)合實際的實驗條件,本項目使用硬件平臺省嵌入式軟件公共技術(shù)中心開發(fā)的GEC2440開發(fā)板作為目標機,使用安裝Windows XP的PC機作為宿主機,并在宿主機Windows平臺上安裝了一個虛擬機軟件,虛擬機里安裝的是Red Hat EnterpriseLinux 5作為開發(fā)環(huán)境。主要實現(xiàn)工作包括:在宿主機上安裝交叉編譯工具,建立交叉編譯環(huán)境,配置tftp、DNW(或超級終端)以建立嵌入式軟件平臺。進行一個可以瀏覽與管理圖片功能,且能進行幻燈片播放的課程設(shè)計。針對項目需現(xiàn)對驅(qū)動程序的完善和移植,制作適合此開發(fā)板的根文件系統(tǒng),最后將基于qt設(shè)計的應(yīng)用程序程植到開
9、發(fā)板上,實現(xiàn)個人圖片的掌上管理。關(guān)鍵詞:嵌入式系統(tǒng);GEC2440開發(fā)板;虛擬機環(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開發(fā)板介紹 PAGEREF _Toc321738230 h 10HYPERLINK l _Toc3217382312.2軟件部分 PAGEREF _Toc321738231 h 11HYPERLINK l _Toc3217382322.2.1 Linux系統(tǒng)平臺
17、介紹: PAGEREF _Toc321738232 h 11HYPERLINK l _Toc3217382332.2.2 QT/Embeded界面介紹: PAGEREF _Toc321738233 h 11HYPERLINK l _Toc3217382342.3實現(xiàn)思路 PAGEREF _Toc321738234 h 11HYPERLINK l _Toc321738235第三章嵌入式開發(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修改時鐘 P
20、AGEREF _Toc321738246 h 17HYPERLINK l _Toc3217382474.2.3重定位u-boot代碼 PAGEREF _Toc321738247 h 19HYPERLINK l _Toc3217382484.3進入目錄配置編譯 PAGEREF _Toc321738248 h 22HYPERLINK l _Toc3217382494.4 bootloader的燒寫 PAGEREF _Toc321738249 h 22HYPERLINK l _Toc321738250第五章 Linux核的移植 PAGEREF _Toc321738250 h 24HYPERLINK
21、l _Toc3217382515.1 準備工作 PAGEREF _Toc321738251 h 24HYPERLINK l _Toc3217382525.2 修改核源碼頂層 PAGEREF _Toc321738252 h 24HYPERLINK l _Toc3217382535.3 修改機器碼 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遠程訪問目標板 PAGEREF _Toc321738257 h 30HYPERLINK l _Toc3217382585.8下載到開發(fā)板中測試 PAGEREF _Toc321738258 h 31HYPERLINK l _Toc321738259第六章驅(qū)動的移植 PAGEREF _Toc321738259 h 32HYPERLINK l _Toc3217382606.1關(guān)于USB驅(qū)動移植
23、PAGEREF _Toc321738260 h 32HYPERLINK l _Toc3217382616.2 關(guān)于LCD驅(qū)動移植 PAGEREF _Toc321738261 h 33HYPERLINK l _Toc3217382626.3關(guān)于觸摸板驅(qū)動移植 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é)點 PAGEREF _Toc321738265 h 38HYPERLINK l _Toc3217382667.3拷貝動態(tài)庫 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添加一個用戶程序 PAGEREF _Toc321738270 h 41HYPERLINK l _Toc3217382717.8帶QTE庫的根文件系統(tǒng)制作 PAGEREF _Toc321738271 h 42HYPERLINK l _Toc3217382727.9手動校準 PAGEREF _Toc321738272 h 43HYPERLINK l _Toc3217382737.10根文件系統(tǒng)燒入 PAGEREF _Toc321738273 h 44HYPERLINK l _Toc321738274第八章基于qt3平臺的應(yīng)用程序 PAGEREF _Toc3
26、21738274 h 45HYPERLINK l _Toc3217382758.1新建一個數(shù)碼相框工程 PAGEREF _Toc321738275 h 45HYPERLINK l _Toc3217382768.2函數(shù)主要源代碼 PAGEREF _Toc321738276 h 46HYPERLINK l _Toc3217382778.3在主機上運行 PAGEREF _Toc321738277 h 57HYPERLINK l _Toc3217382788.4交叉編譯生成目標文件 PAGEREF _Toc321738278 h 57HYPERLINK l _Toc3217382798.5在目標板上運
27、行 PAGEREF _Toc321738279 h 57HYPERLINK l _Toc321738280第九章結(jié)束語 PAGEREF _Toc321738280 h 59HYPERLINK l _Toc321738281致 PAGEREF _Toc321738281 h 60HYPERLINK l _Toc321738282參考文獻 PAGEREF _Toc321738282 h 61HYPERLINK l _Toc321738283附錄 PAGEREF _Toc321738283 h 62緒論根據(jù)實際應(yīng)用的特點對產(chǎn)品進行完整的需求分析,形成比較完善的總體設(shè)計方案。同時,達到能具備Linux
28、操作系統(tǒng)下簡單的設(shè)備驅(qū)動程序開發(fā)、圖形用戶接口設(shè)計的能力。此外,掌握基本的系統(tǒng)功能與性能測試技術(shù),從而具備比較全面的嵌入式應(yīng)用系統(tǒng)開發(fā)能力。另外,作為一個消費類電子產(chǎn)品,數(shù)碼相框的設(shè)計必須考慮以下因素:1、用戶接口友好、操作方便。2、系統(tǒng)兼容性強。數(shù)碼相框應(yīng)能識別和處理當前數(shù)碼相機主要的圖像格式,能訪問主流的外部半導(dǎo)體存儲卡。3、穩(wěn)定可靠。隨著PC時代數(shù)碼技術(shù)的發(fā)展,數(shù)碼相機以其低廉的價格,方便的操作成為攝影器材未來的發(fā)展方向。目前,很多家庭都持有數(shù)碼相機,一次拍攝下來的照片往往會有上百,使用PC機來查看拍攝下來的圖片,操作繁瑣,而且依賴于PC機。作為數(shù)碼相機的一種附屬產(chǎn)品,數(shù)碼相框不僅具有傳
29、統(tǒng)相框的特點,而且可以直接從數(shù)碼相機中選擇心儀的照片,定時更新照片。數(shù)字相框可以擺放在家居顯眼之處,成為現(xiàn)代家庭一道靚麗的風(fēng)景線。數(shù)碼相框是展示數(shù)碼照片而非紙質(zhì)照片的相框。眾多的數(shù)碼攝影產(chǎn)生的相片保存起來后,查看過程繁瑣不方便,大量打印出來又非常浪費,如果用數(shù)碼相框直接插上相機的存儲卡展示照片,就非常酷了,數(shù)碼攝影必然推動數(shù)碼相框的發(fā)展,因為據(jù)調(diào)查全世界打印的數(shù)碼相片不到35%。第二章 所需環(huán)境與設(shè)備2.1硬件部分:以GEC2440開發(fā)板作為目標機,使用安裝了Windows XP 的PC機作為宿主機,并在宿主機上安裝虛擬機軟件,虛擬機里安裝的是Red Hat EnterpriseLinux5作
30、為開發(fā)環(huán)境。GEC2440模仿三星smdk2440,以ARM920T為核,控制輔助設(shè)備?;径丝诎ㄒ蕴W(wǎng)接口,USB接口,還有兩個RS232的串口。A/D和D/A模塊主要用于現(xiàn)場數(shù)據(jù)的采集與控制信號的輸出。DC/DC模塊主要負責(zé)整個系統(tǒng)的供電。系統(tǒng)的主要硬件包括嵌入式開發(fā)平臺GECC2440、LCD屏、人機交互界面、外部存儲介質(zhì)接口電路。大致可以分為三塊:(1)LCD屏用來展示圖片、輸出信息。(2)人機交互界面設(shè)定各個模式的播放形式、輸入信息。(3)外部存儲介質(zhì)接口電路用來提供外部的存儲介質(zhì)的接口.2.1.1 GEC2440開發(fā)板介紹使用硬件平臺省嵌入式軟件公共技術(shù)中心開發(fā)的GEC2440開
31、發(fā)板作為硬件平臺,GEC2440是模仿廣為流行的三星smdk2440開發(fā)板而設(shè)計的低價位開發(fā)板,下面對GEC2440做一些簡單介紹。GEC2440的設(shè)計以ARM920T為核的三星SC32440是控制核心,負責(zé)控制所有輔助設(shè)備。存儲器采用SDRAM和FLASH兩種類型,能滿足系統(tǒng)運行和調(diào)試的需要?;径丝诎ㄒ蕴W(wǎng)接口,USB接口,還有兩個RS232的串口。A/D和D/A模塊主要用于現(xiàn)場數(shù)據(jù)的采集與控制信號的輸出。DC/DC模塊主要負責(zé)整個系統(tǒng)的供電。擴展接口考慮了系統(tǒng)的可擴展性。開發(fā)板外觀布局如圖2.1圖2.1GEC2440開發(fā)板外觀圖2.2軟件部分2.2.1 Linux系統(tǒng)平臺介紹:Linu
32、x是一種類UNIX操作系統(tǒng)。兼容POSIX 1003.1標準,并包含了UNIX System V和BSD 4.3的大部分特征。它充分體現(xiàn)了操作系統(tǒng)的方展趨勢,即開放、穩(wěn)定、標準。Linux具有如下的特征:(1)真正的多用戶、多任務(wù)操作系統(tǒng)。(2)符合POSIX(可移植操作系統(tǒng)接口)標準。(3)采用頁式存儲管理。(4)支持動態(tài)庫。(5)提供具有置安全措施的分層文件系統(tǒng)。(6)提供Shell命令解釋程序和編程語言。(7)提供強大的管理功能,包括遠程管理功能。(8)提供核編程接口。(9)具備圖形用戶接口。(10)具備大量的實用程序和通信、聯(lián)網(wǎng)工具。(11)大量高級程序設(shè)計語言已經(jīng)被移植到Linux系
33、統(tǒng)上,因此它是理想的應(yīng)用程序開發(fā)平臺。2.2.2 QT/Embeded界面介紹:當前嵌入式Linux在手機、PDA等手持信息設(shè)備領(lǐng)域的應(yīng)用十分廣泛。各種手持設(shè)備是否擁有圖形用戶界(GUI)己經(jīng)成為其人機交互技術(shù)的關(guān)鍵體現(xiàn),所以一個十分友好的圖形用戶界面(GUI)是必不可少的。嵌入式GUI是嵌入式系統(tǒng)廣泛應(yīng)用的人機交互接口。嵌入式系統(tǒng)有限的硬件資源要求嵌入式GUI必須簡單、直觀、可靠、占用資源小且反應(yīng)快速。由于嵌入式系統(tǒng)硬件本身的多樣性,嵌入式GUI應(yīng)具備高度可移植性與可裁減性。2.3實現(xiàn)思路首先在本地計算機上編寫程序;然后通過在本地進行交叉編譯生成目標平臺上可以運行的二進制代碼格式;最后再下載
34、到目標平臺上的特定位置上運行。(1)交叉環(huán)境的搭建:用GNU工具鏈作為交叉編譯調(diào)試器。(2)終端使用的是DNW和secure CRT。第三章 嵌入式開發(fā)環(huán)境的搭建3.1嵌入式交叉環(huán)境的概述嵌入式系統(tǒng)通常是一個資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺上編寫軟件比較困難,有時候甚至是不可能的。所以需要一個交叉環(huán)境來實現(xiàn):首先在通用計算機上編寫程序;然后通本地編譯或者交叉編譯生成目標浹臺上可以運行的二進制代碼格式;最后再下載到目標平臺上的特定的位置上去運行。3.2 交叉編譯環(huán)境的搭建在一種平臺上編譯出能在另一種平臺(體系結(jié)構(gòu)不同)上運行的程序,在PC平臺(X86CPU)上編譯出能在arm平臺上
35、的程序,編譯后的程序在X86上是不能運行的,必須放到arm上才能運行,用來編譯這種程序的編譯器叫做交做編譯器。我們用到的是arm-linux-gcc。嵌入式軟件開發(fā)需要交叉開發(fā)環(huán)境,這是其開發(fā)的一顯著特點,交叉編譯器只是交叉開發(fā)環(huán)境的一部分,我們說的交叉開發(fā)環(huán)境是指編譯、和調(diào)試嵌入式應(yīng)用軟件的環(huán)境,它與運行嵌入式應(yīng)用軟件的環(huán)境有所不同,常采用宿主機目標機模式。關(guān)于交叉工具鏈:它是交叉編譯環(huán)境所需工具的集合體,是所需軟件(binuntials、gcc與glibc等)的安裝載體,主要包括:交叉編譯器(arm-linux-gcc)、交叉匯編器(arm-linux-as)、交叉器(arm-linux-
36、ld)、各種操作所依賴的庫與用于處理可執(zhí)行程序和庫的一些基本工具(如arm-linux-strip)。交叉環(huán)境如圖所示:圖3.2 SEQ 圖3.2 * ARABIC1安裝編譯器(交叉工具鏈)軟件:eabi-4.1.2.tar.bz2安裝準備 #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/此步遇到的問題是:./configuretarget =arm-linux沒有那個文件或目錄,是因為configure的
38、權(quá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)進入 #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 (完了在當
39、前目錄生成gdbserver、gdbreplay等)這里遇到的問題是:沒有使用絕對路徑,導(dǎo)致了無法生成(4)下載安裝到目標板(gdbserver)gdbserver放到目標板的/bin目錄下。3.5關(guān)于交叉調(diào)試(1)新建測試目錄 #mkdir /root/test #cd /root/test(2)編輯文件 #vim debug.c(3)交叉編譯 #arm-linux-gcc -g debug.c -o debug (加上-g選項)(4)下載到目標板(將整個代碼目錄)#mkdir arm_debug #cd arm_debug /將目標程序放進arm_debug(5)啟動調(diào)試服務(wù)器(目標板上進
40、行) 成功后便開始偵聽本地調(diào)試端口,可以看到如下信息: bash-4.0# gdbserver 22:1234 debug Process try created; pid = 992 Listening on port 1234 (22是目標板的IP)(6)啟動交叉調(diào)試器(在宿主機上進行) #/root/test (一定要進去代碼目錄下) #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然后進行調(diào)試。3.6關(guān)于網(wǎng)絡(luò)掛載的配置使用NFS服務(wù),將宿主機的一個目錄通過網(wǎng)絡(luò)可以掛載到其他計算機上,并作為它的一個目錄,在嵌入式開發(fā)過NFS可以很方便的將修改的文件通過NFS傳輸?shù)介_發(fā)板中去,不用以復(fù)的燒寫鏡像文件。圖3.6 SEQ 圖3.6 * ARABIC1修改配置文件:#vim /etc/exports配置容為/root/rootfs 192.168.1.* ()rw.sync,no_root_squash)共享的目錄主機名或IP參數(shù)1 參數(shù)2 共享的目錄IP1(參數(shù)1,參數(shù)2)IP2(參數(shù)3,參數(shù)4)rw 對共享文件
42、夾可讀可寫。sync 所有數(shù)據(jù)在請求時寫入共享。no_root_squash 使遠程用戶具備本地root用戶所具有的讀寫權(quán)限。/root/rootfs:是宿主機上共享的文件夾。192.168.1.*:是所支持的目標板的IP地址,用的*表示該網(wǎng)段的地址都可以訪問。備注:NFS的使有分服務(wù)器端和客戶端:服務(wù)器端提供要共享的文件,客戶端通掛載(mount)實現(xiàn)對共享文件平的訪問,例如:mount :/home/nfs/tmp/test本地NFS服務(wù)器端通過讀取配置文件/etc/exprots決定對外所共享的文件目錄,在客戶端的終端過NFS方式掛載宿主機目錄,例如:mount -o nolock :/
43、home/nfs/tmp/test客戶端卸載所掛載的NFS文件系統(tǒng),umount命令不能在掛載目錄執(zhí)行,需要離開執(zhí)行。umount /tmp/test宿主機#ifconfig eth0 32ping (ping網(wǎng)關(guān))#service nfs restart#showmount e localhost(查看當前對外共享目錄)#mount 32:/root/rootfs/ /tmp(本地測試)客戶端ifconfig eth0 32.xxx(與服務(wù)器在同一網(wǎng)段):ping 32 c 5(與服務(wù)器聯(lián)網(wǎng)通連測試)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)建目標板信息,在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修改時鐘由于s3c2410與s3c2440
47、的時鐘與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)/添加時鐘部分#defined MLLCON 0 x4C000004/系統(tǒng)主頻配置寄存器基地址#defined
48、UPLLCON 0 x4C000008/USB時鐘頻率配置寄存器基地址1dr r0, =CLKDIVN/設(shè)置分頻系數(shù)mov r1 ,#5str r1,r01dr r0,=MPLLCON1dr r1,=0 x7F021str r1,r01dr r0 ,=UPLLCON/設(shè)置USB時鐘頻率為48MHz1dr r1,=0 x38022str r1,r0#else(2)修改board/samsung/gec2440/gec2440.c,設(shè)置主頻和USB時鐘頻率參數(shù)與start.S中的一致#define FCLK_SPEED 2/設(shè)置默認等于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è)置默認等于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 芯片手冊上的公式: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 啟動#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 手冊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 代碼準備堆棧,DW_STACK_START 定義在下面mov fp, #0 / no previ
56、ous frame, so fp=0 R11 幀指針寄存器/copy U-Boot to RAMldr r0, =TEXT_BASE/傳遞給C 代碼的第一個參數(shù):u-boot 在RAM 中的起始地址mov r1, #0 x0 /傳遞給C 代碼的第二個參數(shù):Nand Flash 的起始地址mov r2, #0 x30000 /傳遞給C 代碼的第三個參數(shù):u-boot 的長度大小(128k)bl nand_read_ll/調(diào)用啟動函數(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/目錄下新建一個nand_read.c 文件。在該文件中來實現(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、通過偏移量還是得到配置寄存器基地址#define NFCONT _REGi(NF_BASE + 0 x4 ) /通過偏移量得到控制寄存器基地址#define NFCMD _REGb(NF_BASE + 0 x8 ) /通過偏移量得到指令寄存器基地址#define NFADDR _REGb(NF_BASE + 0 xC ) /通過偏移量得到地址寄存器基地址#define NFDATA _REGb(NF_BASE + 0 x10) /通過偏移量得到數(shù)據(jù)寄存器基地址#define NFSTAT _REGb(NF_BASE + 0 x20) /通過偏移量得到狀態(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度考研輔導(dǎo)機構(gòu)資源共享合作協(xié)議
- 2025年中國自動寄存柜行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 2025年度人工智能輔助醫(yī)療診斷系統(tǒng)開發(fā)與應(yīng)用合同
- 2025年平直鋼板行業(yè)深度研究分析報告
- 2025年中國球衣行業(yè)市場發(fā)展現(xiàn)狀及市場前景預(yù)測報告
- 2025年通體微晶石項目投資可行性研究分析報告
- 2025年度家具市場調(diào)研與營銷策劃合同
- 2025年跨境電子商務(wù)平臺運營管理合同4篇
- 2025年度時尚服飾加盟連鎖店合同模板
- 外教錄用合同在2025年度教育市場競爭中的策略
- 特種設(shè)備及重要設(shè)備安全管理制度
- 《自主神經(jīng)系統(tǒng)》課件
- 2025集團公司內(nèi)部借款合同范本
- 遼寧省名校聯(lián)盟2025屆高三上學(xué)期1月份聯(lián)合考試語文試題(含答案)
- 2025年山西地質(zhì)集團社會招聘高頻重點提升(共500題)附帶答案詳解
- 2024-2025學(xué)年遼寧省沈陽市沈河區(qū)七年級(上)期末英語試卷(含答案)
- 前牙即刻種植的臨床應(yīng)用
- 2024-2025學(xué)年初中七年級上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 體育活動策劃與組織課件
- 公司違規(guī)違紀連帶處罰制度模版(2篇)
- 2025屆高考物理二輪總復(fù)習(xí)第一編專題2能量與動量第1講動能定理機械能守恒定律功能關(guān)系的應(yīng)用課件
評論
0/150
提交評論