版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 學(xué)號(hào): 畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 題 目 基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì)英文并列題目 lcd driver design on arm + linux廣東石油化工學(xué)院本科畢業(yè)設(shè)計(jì)(論文)誠(chéng)信承諾保證書(shū)本人鄭重承諾:基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)的內(nèi)容真實(shí)、可靠,是本人在 指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究所完成。畢業(yè)設(shè)計(jì)(論文)中引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀(guān)點(diǎn)等,均已明確注明出處,如果存在弄虛作假、抄襲、剽竊的情況,本人愿承擔(dān)全部責(zé)任。 學(xué)生簽名: 年 月 日系主任批準(zhǔn)日期 畢 業(yè) 設(shè) 計(jì)(論 文)任 務(wù) 書(shū)計(jì)算機(jī)科學(xué)與技術(shù) 系 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)
2、班 學(xué)生 一、畢業(yè)設(shè)計(jì)(論文)課題 基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì) 二、畢業(yè)設(shè)計(jì)(論文)工作自 2012 年 3 月 11 日起至 2012 年 6 月 15 日止三、畢業(yè)設(shè)計(jì)(論文)進(jìn)行地點(diǎn) 廣東石油化工學(xué)院 四、畢業(yè)設(shè)計(jì)(論文)的內(nèi)容要求 1、基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì)是在arm9平臺(tái)上移植linux系統(tǒng),然后基于linux系統(tǒng)內(nèi)核進(jìn)行l(wèi)cd驅(qū)動(dòng)實(shí)現(xiàn)的設(shè)計(jì),最終在lcd液晶顯示器上顯示圖片。該設(shè)計(jì)可以分為三個(gè)部分,即lcd驅(qū)動(dòng)層實(shí)現(xiàn)、圖片解碼實(shí)現(xiàn)和lcd應(yīng)用程序?qū)崿F(xiàn)。其中在lcd驅(qū)動(dòng)層的實(shí)現(xiàn)中,必須對(duì)arm9 s3c2410的硬件結(jié)構(gòu)進(jìn)行分析,雖然在linux內(nèi)核中已經(jīng)
3、對(duì)該芯片提供的支持,但要設(shè)置芯片的相應(yīng)輸出引腳為lcd引腳;其次要對(duì)lcd液晶顯示器進(jìn)行分析,參考該lcd的手冊(cè)進(jìn)行時(shí)序的分析,并進(jìn)行相應(yīng)的硬件編程;最后也是最為重要的就是要了解在linux內(nèi)核中l(wèi)cd驅(qū)動(dòng)是如何實(shí)現(xiàn)的,當(dāng)然可以參考內(nèi)核中其他類(lèi)型lcd的實(shí)現(xiàn),對(duì)在linux內(nèi)核中是如何進(jìn)行l(wèi)cd驅(qū)動(dòng)實(shí)現(xiàn)的層次化結(jié)構(gòu)必須要了解清楚。在圖片解碼中,對(duì)于要顯示到lcd液晶顯示器上的圖片,首先必須對(duì)圖片進(jìn)行解碼分析,然后得到圖片的像素值,將這些像素值存儲(chǔ)到lcd的緩存中,然后lcd控制器就會(huì)將這些像素值打印到lcd液晶顯示器上,從而實(shí)現(xiàn)了對(duì)圖片的顯示,其中對(duì)于圖片解碼,用到了圖片的解碼庫(kù)。在lcd應(yīng)用
4、程序?qū)崿F(xiàn)上,在lcd驅(qū)動(dòng)程序?qū)崿F(xiàn)了并創(chuàng)建了設(shè)備節(jié)點(diǎn)時(shí),在應(yīng)用程序中就可以直接open該設(shè)備節(jié)點(diǎn),得到lcd驅(qū)動(dòng)層實(shí)現(xiàn)的buffer后,從而可以相應(yīng)的write和read操作,實(shí)現(xiàn)將圖片顯示到lcd液晶顯示器上。 2、基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì)采用了arm+linux的實(shí)現(xiàn)平臺(tái),體現(xiàn)了高端性能上的lcd驅(qū)動(dòng)的實(shí)現(xiàn)。在lcd驅(qū)動(dòng)層的實(shí)現(xiàn)中,本設(shè)計(jì)采用三個(gè)步驟進(jìn)行;步驟一是設(shè)置fb_info結(jié)構(gòu)體,fb_info結(jié)構(gòu)體中的成員元素包含了對(duì)要實(shí)現(xiàn)的lcd的硬件信息和對(duì)lcd操作的函數(shù),所以直接根據(jù)lcd硬件信息進(jìn)行設(shè)置fb_info結(jié)構(gòu)體成員元素,然后實(shí)現(xiàn)對(duì)lcd操作的函數(shù)即可。步驟二是要
5、設(shè)置arm s3c2410平臺(tái)的硬件,設(shè)置芯片的相應(yīng)輸出引腳為lcd輸入引腳,如何根據(jù)lcd手冊(cè)進(jìn)行arm lcd寄存器的設(shè)置,設(shè)置好lcd的時(shí)序。步驟三是在上面兩個(gè)步驟都實(shí)現(xiàn)了之后,就可以向內(nèi)核注冊(cè)lcd驅(qū)動(dòng),同時(shí)向linux內(nèi)核上層提交設(shè)置的fb_info結(jié)構(gòu)體對(duì)象。這樣就實(shí)現(xiàn)了對(duì)lcd驅(qū)動(dòng)的設(shè)計(jì)。在圖片解碼實(shí)現(xiàn)中,本設(shè)計(jì)只實(shí)現(xiàn)對(duì)jpg格式圖片的顯示,對(duì)于輸入的jpg格式的圖片,由于對(duì)于jpg格式的圖片的數(shù)據(jù)格式排列不了解,所以首先將通過(guò)圖片庫(kù)將該格式的圖片轉(zhuǎn)換成pmb格式的圖片,而對(duì)于pmb格式的圖片可以直接知道數(shù)據(jù)格式的排列信息,首先開(kāi)始的56個(gè)字節(jié)為信息頭和數(shù)據(jù)頭,然后接下來(lái)的才是位
6、圖信息,所以就可以直接讀取位圖信息進(jìn)行顯示到lcd上,實(shí)現(xiàn)對(duì)lcd圖片的動(dòng)態(tài)顯示。在lcd應(yīng)用程序?qū)崿F(xiàn)上,關(guān)鍵的是要獲得lcd驅(qū)動(dòng)層申請(qǐng)的buffer空間,然后通過(guò)mmap進(jìn)行映射到用戶(hù)空間進(jìn)行直接的操作,通過(guò)往該buffer中寫(xiě)入位圖數(shù)據(jù)后,lcd控制器就會(huì)根據(jù)時(shí)序的設(shè)置將該位圖打印到lcd液晶顯示器上。 2、基于arm+linux的lcd驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)在arm的硬件平臺(tái)和linux軟件平臺(tái)上顯示圖片,使得我對(duì)lcd實(shí)現(xiàn)的過(guò)程的硬件部分、圖片解碼和lcd應(yīng)用程序的實(shí)現(xiàn)都有了深刻的理解,也進(jìn)一步加深了對(duì)linux下驅(qū)動(dòng)實(shí)現(xiàn)原理的理解,對(duì)圖片的解碼有了更深一步的認(rèn)識(shí),同時(shí)也對(duì)于linux用戶(hù)層的應(yīng)
7、用程序如何調(diào)用到驅(qū)動(dòng)層的實(shí)現(xiàn)有了深刻的理解。通過(guò)本次的設(shè)計(jì),對(duì)于在lcd上如何進(jìn)行視頻的播放和其他用戶(hù)空間界面的操作都有了一定的理解,對(duì)于以后進(jìn)行相應(yīng)的實(shí)現(xiàn)起到了最為關(guān)鍵的作用。教研室負(fù)責(zé)人 指導(dǎo)教師 接受設(shè)計(jì)論文任務(wù)開(kāi)始執(zhí)行日期 年 月 日學(xué)生簽名 摘要摘 要 近年來(lái),隨著計(jì)算機(jī)技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來(lái)越重要的作用。信息時(shí)代,數(shù)字時(shí)代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展契機(jī),為嵌入式市場(chǎng)展現(xiàn)了美好的前景,同時(shí)也對(duì)嵌入式提出了新的挑戰(zhàn)。在本設(shè)計(jì)中硬件平臺(tái)采用arm9些列,屬于中高端性能的芯片。arm9系列處理器是英國(guó)arm公司設(shè)計(jì)的
8、主流嵌入式處理器,通過(guò)全新的設(shè)計(jì),采用了更多的晶體管,能夠達(dá)到兩倍以上于arm7處理器的處理能力。而這種處理能力的提高是通過(guò)增加時(shí)鐘頻率和減少指令執(zhí)行周期實(shí)現(xiàn)的。同時(shí)采用型號(hào)為wxcat35-tg3的lcd液晶顯示器,該液晶顯示器的尺寸為3.5寸,分辨率為320240,可以實(shí)現(xiàn)觸摸屏的相應(yīng)時(shí)間小于10ms。軟件平臺(tái)采用linux內(nèi)核,版本為。linux系統(tǒng)在嵌入式領(lǐng)域應(yīng)用越來(lái)越廣,與其自身的模塊化程度高、源碼公開(kāi)、廣泛的硬件支持、安全性及可靠性好、具有優(yōu)秀的開(kāi)發(fā)工具、有很好的網(wǎng)絡(luò)支持利文件系統(tǒng)支持和與unix完全兼容的自身特性是分不開(kāi)的,所以本設(shè)計(jì)中采用linux作為軟件的實(shí)現(xiàn)
9、平臺(tái)。本設(shè)計(jì)的最終目的是在lcd液晶顯示器上動(dòng)態(tài)顯示多張圖片,涉及到了從lcd驅(qū)動(dòng)層到應(yīng)用層的實(shí)現(xiàn),關(guān)鍵技術(shù)為lcd驅(qū)動(dòng)實(shí)現(xiàn)、圖片解碼、lcd應(yīng)用程序?qū)崿F(xiàn)。關(guān)鍵詞:嵌入式 arm9系列 lcd linux內(nèi)核 動(dòng)態(tài)顯示 關(guān)鍵技術(shù) abstract in recent years, with the development of computer technology and integrated circuit technology, embedded technology is the growing popularity of playing an increasingly importa
10、nt role in communications, networking, industrial, medical, electronics and other fields. information age, the digital age makes embedded products was a great opportunity for development, show a bright future for the embedded market, but also new challenges for embedded.in this design, hardware plat
11、form of arm9 more columns, the performance of high-end chip. the arm9 family processors mainstream british company arm embedded processors, new design, the more transistors can be achieved more than twice the processing capabilities of the arm7 processor. this processing capability is achieved by in
12、creasing the clock frequency and reduce the cycle of instruction execution. using model wxcat35-tg3 lcd display, the size of the lcd display is 3.5 inch with a resolution of 320 240 touch screen response time less than 10ms.the software platform uses the linux kernel version . linux system m
13、ore widely in the embedded field, with its own high degree of modular, open source, a wide range of hardware support, security and reliability, with excellent development tool, have a good network to support the lee file system support and is fully compatible with unix features are inseparable, so t
14、he design of linux as a software platform.the ultimate goal of this design is a dynamic display on the lcd display multiple pictures related to the lcd driver layer to the application layer, key technologies, lcd driver, the picture decoding, lcd applications to achieve.keywords: embedded arm9 serie
15、s lcd linux kernel dynamic display key technologiesi目錄目 錄摘 要iabstractii引 言- 1 -第一章 arm9 s3c2410簡(jiǎn)介- 2 -1.1 arm技術(shù)- 2 -1.2 s3c2410處理器介紹- 2 - 1.2.1 amba、ahb、apb 總線(xiàn)特點(diǎn)- 3 - 1.2.2 s3c2410處理器體系結(jié)構(gòu)- 4 - 1.2.3 s3c2410處理器體系結(jié)構(gòu)- 4 - 1.2.4 s3c2410處理器存儲(chǔ)器映射- 4 - 1.2.5 s3c2410處理器時(shí)鐘和電源管理- 4 -第二章 嵌入式linux簡(jiǎn)介- 6 -2.1嵌入式l
16、inux系統(tǒng)概述- 6 -2.2嵌入式linux系統(tǒng)的優(yōu)勢(shì)- 6 -2.3 構(gòu)建嵌入式linux- 7 - 2.3.1 精簡(jiǎn)內(nèi)核- 7 - 2.3.2 系統(tǒng)啟動(dòng)- 8 - 2.3.3 設(shè)備驅(qū)動(dòng)程序- 9 -第三章 開(kāi)發(fā)工具- 11 -3.1 開(kāi)發(fā)環(huán)境- 11 - 3.1.1 虛擬機(jī)中安裝ubuntu10.10- 11 - 3.1.2 配置網(wǎng)絡(luò)- 13 - 3.1.3 配置samba服務(wù)器- 14 -3.2 交叉編譯工具- 15 -3.3 安裝tftp和nfs服務(wù)- 15 - 3.3.1 安裝tftp服務(wù)- 16 - 3.3.2 安裝nfs服務(wù)- 17 -3.4 系統(tǒng)啟動(dòng)環(huán)境搭建- 18 - 3
17、.4.1 uboot啟動(dòng)搭建- 18 - 3.4.2 linux內(nèi)核啟動(dòng)搭建- 19 - 3.4.3 文件系統(tǒng)搭建- 21 -第四章 lcd驅(qū)動(dòng)實(shí)現(xiàn)- 22 -4.1 s3c2410 lcd控制器分析- 22 - 4.1.1 tft屏?xí)r序分析- 23 - 4.1.2 lcd控制器主要寄存器介紹- 24 -4.2 lcd驅(qū)動(dòng)內(nèi)核層次分析- 26 - 4.2.1 framebuffer的介紹- 27 - 4.2.2 framebuffer的數(shù)據(jù)結(jié)構(gòu)- 27 - 4.2.3 framebuffer對(duì)驅(qū)動(dòng)的統(tǒng)一管理- 30 - 4.2.4 實(shí)現(xiàn)消息分派- 31 -4.3 lcd驅(qū)動(dòng)實(shí)現(xiàn)代碼分析- 32
18、 - 4.3.1 設(shè)置fb_info- 32 - 4.3.2 設(shè)置lcd硬件- 38 - 4.3.3 注冊(cè)fb_info- 50 -4.4 添加驅(qū)動(dòng)到內(nèi)核- 51 - 4.4.1 修改內(nèi)核makefile- 51 - 4.4.2 支持啟動(dòng)lcd顯示- 51 -第五章 lcd應(yīng)用程序?qū)崿F(xiàn)- 53 -5.1 在lcd上顯示jpg格式圖片的主流程圖- 53 -5.2 bmp圖片格式分析- 53 - 5.2.1 文件頭- 54 - 5.2.2 信息頭- 55 - 5.2.3 顏色數(shù)據(jù)結(jié)構(gòu)- 56 - 5.2.4 提取圖像數(shù)據(jù)- 56 -5.3 應(yīng)用程序代碼實(shí)現(xiàn)分析- 57 - 5.3.1 獲取顯存地址
19、- 58 - 5.3.2 讀取jpg格式圖片- 59 - 5.3.3 用位圖數(shù)據(jù)填充lcd顯存- 59 - 5.3.4 main函數(shù)實(shí)現(xiàn)- 60 - 5.3.5 編譯- 61 -第六章 程序運(yùn)行測(cè)試- 62 -6.1 啟動(dòng)uboot- 62 -6.2 裝載內(nèi)核與文件系統(tǒng)- 63 -6.3 運(yùn)行應(yīng)用程序- 63 -結(jié)論- 65 -致謝- 66 -參考文獻(xiàn)- 67 -引言引 言嵌入式技術(shù)是將計(jì)算機(jī)作為一個(gè)信息處理部件,嵌入到應(yīng)用系統(tǒng)中的一種技術(shù),也就是說(shuō),它將軟件固化集成到硬件系統(tǒng)中,將硬件系統(tǒng)與軟件系統(tǒng)一體化。嵌入式具有軟件代碼小、高度自動(dòng)化和響應(yīng)速度快等特點(diǎn),因而進(jìn)入21世紀(jì)后其應(yīng)用越來(lái)越廣泛
20、,例如,各種家用電器如電冰箱、自動(dòng)洗衣機(jī)、數(shù)字點(diǎn)電視機(jī)、數(shù)碼相機(jī)等廣泛應(yīng)用這種技術(shù)。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,尤其是嵌入式系統(tǒng)的發(fā)展,嵌入式linux系統(tǒng)和液晶顯示器優(yōu)點(diǎn)就越顯突出。正是由于嵌入式linux 系統(tǒng)具有低成本、多種硬件平臺(tái)支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持的優(yōu)點(diǎn),而且液晶顯示器作為輸出設(shè)備具有體積小,耗電省的優(yōu)點(diǎn),讓它們?cè)诟黝?lèi)儀器設(shè)備的控制過(guò)程中占據(jù)著越來(lái)越重要的角色。 本設(shè)計(jì)通過(guò)利用基于linux的arm9系統(tǒng)開(kāi)發(fā)平臺(tái)和嵌入式系統(tǒng)開(kāi)發(fā)常用的“宿主機(jī)/目標(biāo)機(jī)”開(kāi)發(fā)模式,使用嵌入式linux系統(tǒng)下的各類(lèi)編輯編譯程序的工具,改寫(xiě)linux內(nèi)核驅(qū)動(dòng)程序,通過(guò)編譯內(nèi)核,更新內(nèi)核程序,利用幀
21、緩沖的方式,實(shí)現(xiàn)了液晶顯示器的驅(qū)動(dòng),同時(shí)實(shí)現(xiàn)在lcd液晶顯示屏上動(dòng)態(tài)顯示多張圖片。此設(shè)計(jì)是為了在arm9硬件平臺(tái)上,通過(guò)linux系統(tǒng)實(shí)現(xiàn)lcd液晶顯示器的驅(qū)動(dòng),并通過(guò)lcd應(yīng)用程序?qū)崿F(xiàn)圖片在該lcd液晶顯示器上進(jìn)行動(dòng)態(tài)顯示。該lcd驅(qū)動(dòng)只是在linux-內(nèi)核的基礎(chǔ)上實(shí)現(xiàn),對(duì)于不同版本的內(nèi)核,可能需要進(jìn)行相應(yīng)的修改變動(dòng);同時(shí)設(shè)置的lcd的時(shí)序要根據(jù)不同的lcd顯示器說(shuō)明書(shū)進(jìn)行設(shè)置。對(duì)于在linux內(nèi)核中實(shí)現(xiàn)lcd液晶顯示器的驅(qū)動(dòng),內(nèi)核中本身有相應(yīng)的實(shí)現(xiàn),可以進(jìn)行參考實(shí)現(xiàn),但是本項(xiàng)目實(shí)現(xiàn)中,不采用內(nèi)核中的定義實(shí)現(xiàn)方法,而是采用獨(dú)立對(duì)相關(guān)變量進(jìn)行定義和賦值,最終向linux內(nèi)核的上
22、層進(jìn)行提交fb_info結(jié)構(gòu)體實(shí)現(xiàn)對(duì)lcd硬件的向上層注冊(cè)。而對(duì)于lcd應(yīng)用程序的實(shí)現(xiàn)將會(huì)是本項(xiàng)目的一個(gè)難點(diǎn),在應(yīng)用程序上通過(guò)向lcd驅(qū)動(dòng)設(shè)置buffer數(shù)據(jù)區(qū)獲得映射后,可以直接往該lcd的buffer里面直接寫(xiě)要顯示的位圖的值,然后lcd控制器會(huì)自動(dòng)將該buffer中的位圖數(shù)值進(jìn)行顯示到lcd液晶顯示器中。而對(duì)于要寫(xiě)入的buffer的位圖信息,必須要對(duì)圖片進(jìn)行解碼,從而獲得要現(xiàn)實(shí)的圖片的位圖數(shù)值,從而進(jìn)行寫(xiě)入。該lcd驅(qū)動(dòng)模塊以“-y”的編譯選項(xiàng)編譯到linux內(nèi)核中,從而可以實(shí)現(xiàn)在linux內(nèi)核啟動(dòng)的過(guò)程中,可以從lcd上打印出相應(yīng)的啟動(dòng)信息,并在內(nèi)核啟動(dòng)后顯示登陸窗口。該項(xiàng)目的實(shí)現(xiàn)是在
23、ubuntu 10.10環(huán)境下進(jìn)行實(shí)現(xiàn)的,通過(guò)交叉編譯工具鏈arm-linux-gcc進(jìn)行編譯內(nèi)核、lcd應(yīng)用程序,通過(guò)網(wǎng)絡(luò)的形式將linux內(nèi)核燒入到norflash中,然后在內(nèi)核啟動(dòng)后通過(guò)網(wǎng)絡(luò)進(jìn)行掛載文件系統(tǒng)。- 1 -第一章 arm9 s3c2410簡(jiǎn)介第一章 arm9 s3c2410簡(jiǎn)介在嵌入式領(lǐng)域中,為了開(kāi)發(fā)更為高效的嵌入式設(shè)備,arm由于其自身的高效特性成為很多開(kāi)發(fā)者的首選,即使相對(duì)于mips架構(gòu)的cpu來(lái)說(shuō),它的價(jià)格更高,但它帶來(lái)的收益也會(huì)更多。1.1 arm技術(shù)arm體系結(jié)構(gòu)是業(yè)界領(lǐng)先的微處理器體系結(jié)構(gòu),為系統(tǒng)和軟件工程師提供了開(kāi)發(fā)低能耗、高性能消費(fèi)類(lèi)和工業(yè)產(chǎn)品的硅驗(yàn)證解決方案
24、。這些終端產(chǎn)品涵蓋了從汽車(chē)和工業(yè)監(jiān)視器到家庭娛樂(lè)和移動(dòng)設(shè)備的各個(gè)領(lǐng)域。 arm 完整產(chǎn)品線(xiàn)包括微控制器、微處理器、圖形處理器、實(shí)現(xiàn)軟件、單元庫(kù)、嵌入式內(nèi)存、高速連接產(chǎn)品、外設(shè)以及開(kāi)發(fā)工具。借助于完善的設(shè)計(jì)服務(wù)、培訓(xùn)、支持和維護(hù)以及公司的龐大合作伙伴社區(qū),我們提供了一個(gè)全面的系統(tǒng)解決方案,為主要電子設(shè)備公司提供一條快速可靠的途徑將產(chǎn)品推向市場(chǎng)。arm 是 32 位嵌入式微處理器的行業(yè)領(lǐng)先提供商,已推出各種各樣基于通用體系結(jié)構(gòu)的處理器,這些處理器具有高性能和行業(yè)領(lǐng)先的功效,而且系統(tǒng)成本也有所降低。1.2 s3c2410處理器介紹s3c2410微處理器是一款由samsung公司為手持設(shè)備設(shè)計(jì)的低功耗
25、、高度集成的基于arm920t核的微處理器。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:16kb指令cache、16kb數(shù)據(jù)cache、mmu、外部存儲(chǔ)器控制器、lcd控制器(stn和tft)、nand flash控制器、4個(gè)dma通道、3個(gè)uart通道、1個(gè)i2c總線(xiàn)控制器、1個(gè)i2s總線(xiàn)控制器,以及4個(gè)pwm定時(shí)器和一個(gè)內(nèi)部定時(shí)器、通用i/o口、實(shí)時(shí)時(shí)鐘、8通道10位adc和觸摸屏接口、usb主、usb從、sd/mmc卡接口等。現(xiàn)在它廣泛應(yīng)用于pda(personal digital assistant,個(gè)人數(shù)碼助理,一般指掌上電腦)、移動(dòng)通訊、路由器、工業(yè)控制等領(lǐng)域,其
26、內(nèi)部結(jié)構(gòu)如圖1-1所示。為了提高系統(tǒng)運(yùn)行速度,減少能量損失,arm920t核微處理器把片上器件按器件工作頻率,使用頻度分成三個(gè)模塊,各個(gè)模塊通過(guò)各自總線(xiàn)連接,模塊之間采用一種叫總線(xiàn)橋的結(jié)構(gòu)過(guò)度。下面簡(jiǎn)單介紹一下各總線(xiàn)特點(diǎn)。 圖1-1 s3c2410芯片內(nèi)部結(jié)構(gòu)1.2.1 amba、ahb、apb 總線(xiàn)特點(diǎn)ahb總線(xiàn)上最多可以有16個(gè)主模塊和任意多個(gè)從模塊,如果主模塊數(shù)目大于16,則需再加一層結(jié)構(gòu)(具體參閱arm公司推出的multi-layer ahb規(guī)范)。apb 橋既是apb總線(xiàn)上唯一的主模塊,也是ahb系統(tǒng)總線(xiàn)上的從模塊。其主要功能是鎖存來(lái)自ahb系統(tǒng)總線(xiàn)的地址、數(shù)據(jù)和控制信號(hào),并提供二級(jí)
27、譯碼以產(chǎn)生apb外圍設(shè)備的選擇信號(hào),從而實(shí)現(xiàn)ahb協(xié)議到apb協(xié)議的轉(zhuǎn)換。ahb主要用于高性能模塊(如cpu、dma和dsp等)之間的連接,作為soc的片上系統(tǒng)總線(xiàn),它包括以下一些特性:?jiǎn)蝹€(gè)時(shí)鐘邊沿操作;非三態(tài)的實(shí)現(xiàn)方式;支持突發(fā)傳輸;支持分段傳輸;支持多個(gè)主控制器;可配置32位128位總線(xiàn)寬度;支持字節(jié)、半字節(jié)和字的傳輸。apb主要用于低帶寬的周邊外設(shè)之間的連接,例如uart等,它的總線(xiàn)架構(gòu)不像ahb支持多個(gè)主模塊,在apb里面唯一的主模塊就是apb 橋。其特性包括:兩個(gè)時(shí)鐘周期傳輸;無(wú)需等待周期和回應(yīng)信號(hào);控制邏輯簡(jiǎn)單,只有四個(gè)控制信號(hào)。1.2.2 s3c2410處理器體系結(jié)構(gòu)arm920
28、t核,16位/32位risc(精簡(jiǎn)指令系統(tǒng))結(jié)構(gòu)和arm精簡(jiǎn)指令集;arm mmu,支持windows ce, linux等操作系統(tǒng);指令cache、數(shù)據(jù)cache、寫(xiě)緩沖;支持arm調(diào)試結(jié)構(gòu),片上ice支持jtag調(diào)試方式;內(nèi)置先進(jìn)微控制器總線(xiàn)接口(amba)。1.2.3 s3c2410處理器體系結(jié)構(gòu)支持大端(big endian)/小端(little endian)模式;地址空間為每個(gè)內(nèi)存塊128mb(一共1gb),每個(gè)內(nèi)存塊支持8/16/32位數(shù)據(jù)總線(xiàn)編程;8個(gè)內(nèi)存塊,6個(gè)用于rom、sram和其它,2個(gè)用于rom/sram/sdram;1個(gè)起始地址和大小可編程的內(nèi)存塊 (bank7);
29、7個(gè)起始地址固定的內(nèi)存塊(bank0bank6);所有內(nèi)存塊可編程尋址周期;支持sdram自動(dòng)刷新模式;支持多種類(lèi)型rom啟動(dòng),包括nor/nand flash、eeprom等。1.2.4 s3c2410處理器存儲(chǔ)器映射s3c2410的存儲(chǔ)空間映射如圖1-2所示:1.2.5 s3c2410處理器時(shí)鐘和電源管理(1)時(shí)鐘s3c2410的主時(shí)鐘由外部晶振或者外部時(shí)鐘提供,選擇后可以產(chǎn)生3種時(shí)鐘信號(hào),分別是cpu使用的fclk、ahb總線(xiàn)使用的hclk和apb總線(xiàn)使用的fckl。時(shí)鐘管理模塊同時(shí)擁有兩個(gè)鎖相環(huán),一個(gè)稱(chēng)為mpll,擁于fclk、hclk和pclk;另一個(gè)稱(chēng)為upll,用于usb設(shè)備。圖
30、1-2 s3c2410的存儲(chǔ)空間映射(2)時(shí)鐘控制邏輯時(shí)鐘控制邏輯決定了所使用的時(shí)鐘源,是采用mpll作為fclk,還是采用外部時(shí)鐘。復(fù)位后,即使不想改變默認(rèn)的pllcon值,也需要重新寫(xiě)一遍。fclk由arm920t核使用,hclk提供給ahb總線(xiàn),pclk提供給了apb總線(xiàn)。s3c2410支持hclk、fclk和pclk的分頻選擇,其比率是通過(guò)clkdiv寄存器中的hdivn和pdivn控制的.(3)電源管理s3c2410電源管理模塊通過(guò)4種模式有效地控制功耗,即正常(normal)模式、省電(slow)模式、空閑(idle)模式和斷電(power-off)模式。normal模式:為cpu
31、和所有的外設(shè)提供時(shí)鐘,所有的外設(shè)開(kāi)啟,該模式下的功耗最大。這種模式允許用戶(hù)通過(guò)軟件控制外設(shè),可以斷開(kāi)提供給外設(shè)的時(shí)鐘以降低功耗。slow模式:采用外部時(shí)鐘生產(chǎn)fclk的方式,此時(shí)電源的功耗取決于外部時(shí)鐘。idle模式:斷開(kāi)fclk與cpu核的連接,外設(shè)保持正常,該模式下的任何中斷都可喚醒cpu。power-off模式:斷開(kāi)內(nèi)部電源,只給內(nèi)部的喚醒邏輯供電。一般模式下需要兩個(gè)電源,一個(gè)提供給喚醒邏輯,另外一個(gè)提供給cpu和內(nèi)部邏輯,在power-off模式下,后一個(gè)電源關(guān)閉。- 5 -第二章 嵌入式linux簡(jiǎn)介第二章 嵌入式linux簡(jiǎn)介隨著計(jì)算機(jī)技術(shù)、通信技術(shù)的飛速發(fā)展,特別是互聯(lián)網(wǎng)的迅速普
32、及和3c(computer、communication、consume)合一的加速,微型化和專(zhuān)業(yè)化成為信息產(chǎn)品發(fā)展的新趨勢(shì),嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流。目前,市場(chǎng)上有很多商業(yè)性嵌入式系統(tǒng)都在努力的為自己爭(zhēng)取著嵌入式市場(chǎng)的份額,linux以其內(nèi)核可裁剪、移植性好、源代碼開(kāi)放等優(yōu)點(diǎn)受到越來(lái)越多的企業(yè)和研發(fā)機(jī)構(gòu)的關(guān)注。當(dāng)今信息化的高速發(fā)展,使linux成為當(dāng)前最流行的嵌入式操作系統(tǒng)之一,這為linux的發(fā)展注入了強(qiáng)大生命力。2.1嵌入式linux系統(tǒng)概述linux最初是一個(gè)遵循posix標(biāo)準(zhǔn)的由一名芬蘭學(xué)生編寫(xiě)源代碼完全開(kāi)放的免費(fèi)操作系統(tǒng)。經(jīng)過(guò)短短的十幾年時(shí)間已經(jīng)發(fā)展成為功能強(qiáng)大、設(shè)計(jì)完善的操作系
33、統(tǒng)之一,不僅可以與各種傳統(tǒng)的商業(yè)操作系統(tǒng)分庭抗?fàn)幵谛屡d的嵌入式操作系統(tǒng)領(lǐng)域內(nèi)也獲得了飛速發(fā)展。目前正在開(kāi)發(fā)的嵌入式系統(tǒng)中,49的項(xiàng)目選擇linux作為嵌入式操作系統(tǒng)。嵌入式linux是指對(duì)標(biāo)準(zhǔn)linux經(jīng)過(guò)小型化裁剪處理之后,能夠固化在容量只有幾k或者幾m字節(jié)的存儲(chǔ)器芯片或者單片機(jī)中,適合于特定嵌入式應(yīng)用場(chǎng)合的專(zhuān)用linux操作系統(tǒng)。主流嵌入式linux產(chǎn)品有:美國(guó)墨西哥理工學(xué)院開(kāi)發(fā)的嵌入式linux操作系統(tǒng)rt一linux;lineo公司的主打產(chǎn)品uclinux;北京中科院紅旗軟件公司推出的紅旗嵌入式linux等。2.2嵌入式linux系統(tǒng)的優(yōu)勢(shì)嵌入式操作系統(tǒng)作為嵌入式系統(tǒng)的核心部分,與桌面
34、系統(tǒng)由很大不同受到嵌入式系統(tǒng)資源有限的影響,它要求代碼小,速度快,可靠性高移植性好。與其它專(zhuān)用嵌入式操作系統(tǒng)相比(如下表1所示),linux具有很多優(yōu)點(diǎn)。 表1 嵌入式linux與專(zhuān)用嵌入式實(shí)時(shí)操作系統(tǒng)比較比較嵌入式linux操作系統(tǒng)專(zhuān)用嵌入式實(shí)時(shí)操作系統(tǒng)購(gòu)買(mǎi)費(fèi)用免費(fèi)數(shù)十萬(wàn)版權(quán)費(fèi)免費(fèi)一份產(chǎn)品交一份版權(quán)費(fèi)穩(wěn)定性較好,但高性能系統(tǒng)中需改進(jìn)較好實(shí)時(shí)性需改進(jìn)好網(wǎng)絡(luò)特性免費(fèi)且性能優(yōu)越另加數(shù)十萬(wàn)購(gòu)買(mǎi)移植性容易難動(dòng)態(tài)擴(kuò)展性較好差技術(shù)支持全世界自由軟件開(kāi)發(fā)者提供支持由開(kāi)發(fā)商獨(dú)自提供有限的技術(shù)支持第一,linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開(kāi)放的。linux代碼完全開(kāi)放不同領(lǐng)域和不同層次的用戶(hù)可以根據(jù)自己的應(yīng)用需要
35、方便地對(duì)內(nèi)核進(jìn)行修改。這樣可以低成本地設(shè)計(jì)和開(kāi)發(fā)出滿(mǎn)足自己需要的嵌入式系統(tǒng)。第二,嵌入式linux移植性好。由于linux的大部分內(nèi)核代碼與微處理器無(wú)關(guān)。將linux移植到新的微處理器時(shí)。移植工作主要集中在一些存儲(chǔ)器管理及中斷處理程序上。移植性非常好,并且一旦完成移植,性能非常穩(wěn)定。第三,linux的內(nèi)核小、效率高。傳統(tǒng)嵌人式操作系統(tǒng)在這方面是笨拙的,占用過(guò)多的內(nèi)存,應(yīng)用程序龐大。linux有裝載和卸載程序的能力所有應(yīng)用程序以文件的形式被存放在內(nèi)存文件系統(tǒng)中并在必要的時(shí)候被裝載到內(nèi)存中,這樣可以節(jié)省內(nèi)存。第四,強(qiáng)大的網(wǎng)絡(luò)支持功能。linux誕生于因特網(wǎng)時(shí)代并具有unix的特性保證了它支持所有標(biāo)
36、準(zhǔn)因特網(wǎng)協(xié)議,并且可以利用linux的網(wǎng)絡(luò)協(xié)議棧將其開(kāi)發(fā)成為嵌人式的tcp,ip網(wǎng)絡(luò)協(xié)議棧。第五,linux具有廣泛的硬件支持特性。無(wú)論是risc還是cisc、32位還是“位等各種處理器,linux都能運(yùn)行,甚至可以在沒(méi)有存儲(chǔ)管理單元(mmu)的處理器上運(yùn)行。這意味著嵌入式linux將具有更廣泛的應(yīng)用前景。第六,linux具備一整套工具鏈。linux為開(kāi)發(fā)者提供了一套完整的工具鏈(toolchain),在linux下開(kāi)發(fā)者容易自行建立嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境和交叉運(yùn)行環(huán)境可以跨越嵌入式系統(tǒng)開(kāi)發(fā)中仿真工具的障礙。2.3 構(gòu)建嵌入式linux由于嵌入式設(shè)備的特殊要求嵌入式linux解決方案中的內(nèi)核、環(huán)
37、境、gui等都與標(biāo)準(zhǔn)bnux有很大不同,其主要原因在于嵌入式系統(tǒng)中資源有限,在設(shè)計(jì)嵌入式系統(tǒng)時(shí)要充分考慮如何在狹小的fiash、rom和內(nèi)存中實(shí)現(xiàn)高質(zhì)量的任務(wù)實(shí)時(shí)調(diào)度、網(wǎng)絡(luò)通信等功能。這就需要對(duì)標(biāo)準(zhǔn)linux做出修改。2.3.1 精簡(jiǎn)內(nèi)核linux內(nèi)核有自己的結(jié)構(gòu)體系,其中進(jìn)程管理、內(nèi)存管理和文件系統(tǒng)是其最基本的3個(gè)子系統(tǒng)。圖2-1簡(jiǎn)單表示了它的框架。用戶(hù)進(jìn)程可直接通過(guò)系統(tǒng)調(diào)用或函數(shù)庫(kù)來(lái)訪(fǎng)問(wèn)內(nèi)核資源。正因?yàn)閘inux內(nèi)核具有這樣的結(jié)構(gòu),修改內(nèi)核時(shí)必須注意各個(gè)子系統(tǒng)之間的協(xié)調(diào)。用戶(hù)進(jìn)程函數(shù)庫(kù)系統(tǒng)調(diào)用進(jìn)程管理文件系統(tǒng)內(nèi)存管理圖2-1 linux內(nèi)核架構(gòu)構(gòu)造內(nèi)核常用命令包括:make config,
38、clean,zimage,bzimage,modules,modules_install等。(1)make config 核心配置,命令執(zhí)行完后產(chǎn)生的.config文件,其總保存著配置信息。(2)make clean清除以前構(gòu)核所產(chǎn)生的所有目標(biāo)文件、模塊文件、核心以節(jié)一些臨時(shí)文件等,不產(chǎn)生任何文件。(3)make,make zimage,make bzimagemake:構(gòu)核。若核心代碼沒(méi)有錯(cuò)誤,將產(chǎn)生文件vmliflux,這就是所構(gòu)的核心。make zimage:在make的基礎(chǔ)上產(chǎn)生壓縮的核心映像文件。make bzimag:在make的基礎(chǔ)上產(chǎn)生壓縮比例更大的核心映像文件。(4)make
39、 modules編譯模塊文件,你在make config時(shí)所配置的所有模塊將在這時(shí)編譯,形成模塊目標(biāo)文件,并把這些目標(biāo)文件存放在modules目錄中。2.3.2 系統(tǒng)啟動(dòng)嵌入式linux系統(tǒng)的啟動(dòng)是通過(guò)bootloader進(jìn)行引導(dǎo)的,bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。同時(shí)本設(shè)計(jì)中bootloader最后還會(huì)將linux內(nèi)核拷貝到0x3000000的地址空間(即sdram)去,然后跳到該地址去執(zhí)行,從而實(shí)現(xiàn)了對(duì)linux系統(tǒng)
40、的啟動(dòng)。2.3.3 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序即添加到操作系統(tǒng)中的一小塊代碼其中包含有關(guān)硬件設(shè)備的信息。有了此信息,計(jì)算機(jī)就可以與設(shè)備進(jìn)行通信。驅(qū)動(dòng)程序是硬件廠(chǎng)商根據(jù)操作系統(tǒng)編寫(xiě)的配置文件,沒(méi)有驅(qū)動(dòng)程序,計(jì)算機(jī)中的硬件就無(wú)法工作。在嵌入式linux里,除了直接修改系統(tǒng)核心的源代碼把設(shè)備驅(qū)動(dòng)程序加進(jìn)核心里外還可以把驅(qū)動(dòng)程序作為可加載的模塊,由系統(tǒng)管理員動(dòng)態(tài)的加載它,使之成為核心的一部分。硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作。設(shè)備驅(qū)動(dòng)程序是內(nèi)核的一部分,它實(shí)現(xiàn)以下功能:對(duì)設(shè)備初始化和釋放。 把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù)。 讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)
41、據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù)。檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。 可以把設(shè)備驅(qū)動(dòng)作為內(nèi)核的一部分直接編譯到內(nèi)核中(即靜態(tài)編譯),也可以單獨(dú)作為一個(gè)模塊編譯,在需要的時(shí)候動(dòng)態(tài)地插入到內(nèi)核中,在不需要的時(shí)候可把它從內(nèi)核中刪除(即動(dòng)態(tài)鏈接)。目前l(fā)inux支持的設(shè)備驅(qū)動(dòng)可以分為3種:字符設(shè)備 (character device)、塊設(shè)備(block device)、網(wǎng)絡(luò)接口設(shè)備(network device)。當(dāng)然它們之間也并不是嚴(yán)格地加以區(qū)分。字符設(shè)備是所有能夠像字節(jié)流一樣被訪(fǎng)問(wèn)的設(shè)備(如文件等),在linux中通過(guò)字符設(shè)備驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)。在linux中它們也被映射為文件系統(tǒng)的1個(gè)節(jié)點(diǎn),通常在dev目錄下。
42、字符設(shè)備驅(qū)動(dòng)程序一般要包含open、close、 read、write等幾個(gè)系統(tǒng)調(diào)用。塊設(shè)備將信息存儲(chǔ)在固定大小的塊中,每個(gè)塊都有自己的地址。數(shù)據(jù)塊的大小通常在512字節(jié)到32768字節(jié)之間。塊設(shè)備的基本特征是每個(gè)塊都能獨(dú)立于其它塊而讀寫(xiě)。磁盤(pán)是最常見(jiàn)的塊設(shè)備。任何網(wǎng)絡(luò)事務(wù)都經(jīng)過(guò)一個(gè)網(wǎng)絡(luò)接口形成,即一個(gè)能夠和其他主機(jī)交換數(shù)據(jù)的設(shè)備。網(wǎng)絡(luò)接口由內(nèi)核中的網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)發(fā)送和接收數(shù)據(jù)包,許多網(wǎng)絡(luò)連接是面向流的,但網(wǎng)絡(luò)設(shè)備卻圍繞數(shù)據(jù)包的傳輸和接收而設(shè)計(jì)。網(wǎng)絡(luò)驅(qū)動(dòng)程序不需要指導(dǎo)各個(gè)連接的相關(guān)信息,它只是處理數(shù)據(jù)包即可。本設(shè)計(jì)中的lcd為字符設(shè)備,所以重點(diǎn)理解字符設(shè)備的驅(qū)動(dòng)實(shí)現(xiàn)。linux 為所有的
43、字符設(shè)備都提供了統(tǒng)一的操作函數(shù)接口。具體通過(guò)使用數(shù)據(jù)結(jié)構(gòu) struct file_operations來(lái)實(shí)現(xiàn),該數(shù)據(jù)結(jié)構(gòu)中包括許多操作函數(shù)的指針,如 open (),close(),read(),write()等。由于 file_operations 結(jié)構(gòu)中包含了所有可能對(duì)設(shè)備操作的函數(shù),如果這些函數(shù)全部由驅(qū)動(dòng)開(kāi)發(fā)人員編寫(xiě)實(shí)現(xiàn),其工作量會(huì)非常龐大。為了解決這個(gè)問(wèn)題,linux 設(shè)計(jì)者采用更高一層的封裝方法,為同一類(lèi)設(shè)備定義了文件層次file_operations結(jié)構(gòu)中的接口函數(shù),這些函數(shù)對(duì)同一類(lèi)設(shè)備來(lái)說(shuō)實(shí)現(xiàn)方式相同(如申請(qǐng)緩沖區(qū)空間,讀取緩沖區(qū)數(shù)據(jù)等操作),只將一小部分硬件設(shè)備寄存器相關(guān)的操作
44、函數(shù)留給驅(qū)動(dòng)開(kāi)發(fā)人員實(shí)現(xiàn)。即 linux 內(nèi)核提供了一個(gè)文件操作層到底層設(shè)備驅(qū)動(dòng)層的接口。linux 為lcd 顯示設(shè)備提供的幀緩沖驅(qū)動(dòng)就是這種分層驅(qū)動(dòng)方式。事實(shí)上,linux 內(nèi)核在fbmem.c (/drivers/video/fbmem.c )文件中實(shí)現(xiàn)了幾乎所有 file_operations結(jié)構(gòu)中的操作函數(shù),它將 lcd 顯示設(shè)備抽象成幀緩沖區(qū)(framebuffer),幀緩沖區(qū)可作為出現(xiàn)在 linux 內(nèi)核中的一種驅(qū)動(dòng)程序接口,用戶(hù)可以將它看成是顯示內(nèi)存的一個(gè)映像。它對(duì)應(yīng)設(shè)備目錄下的/dev/fb 設(shè)備節(jié)點(diǎn)。每一個(gè)注冊(cè)進(jìn) linux內(nèi)核的lcd設(shè)備對(duì)應(yīng)一個(gè)fb節(jié)點(diǎn),如/dev/fb
45、0 ,/dev/fb1等。/dev/fb 是對(duì)實(shí)際使用的lcd設(shè)備節(jié)點(diǎn)的符號(hào)鏈接。在使用幀緩沖區(qū)時(shí),linux 將顯卡置于圖形模式下。- 11 -第三章 開(kāi)發(fā)工具第三章 開(kāi)發(fā)工具為了更好地進(jìn)行嵌入式產(chǎn)品的開(kāi)發(fā),產(chǎn)生了很多基于不同嵌入式產(chǎn)品的開(kāi)發(fā)工具,一般采用典型的“主機(jī)/宿主機(jī)”開(kāi)發(fā)模式。3.1 開(kāi)發(fā)環(huán)境本設(shè)計(jì)采用在xp中的虛擬機(jī)中安裝ubuntu10.10,在ubuntu下進(jìn)行全部的開(kāi)發(fā)和環(huán)境搭建開(kāi)發(fā)。通過(guò)配置好ubuntu與xp的ip后,使兩者處于同一個(gè)網(wǎng)段中,并保持網(wǎng)絡(luò)的暢通,然后就可以通過(guò)配置samba服務(wù)器實(shí)現(xiàn)xp能夠訪(fǎng)問(wèn)到ubuntu中的共享目錄,從而方便講要不編譯的內(nèi)核代碼放到u
46、buntu中,用交叉編譯工具進(jìn)行編譯。3.1.1 虛擬機(jī)中安裝ubuntu10.10一般推薦vmware軟件使用6.x及以上版本,因?yàn)関mware workstation5.x中支持的操作系統(tǒng)比較少,畢竟版本有點(diǎn)老,對(duì)一些高版本的操作系統(tǒng)支持也不太好。本設(shè)計(jì)中使用的vmware版本為vmware workstation7。步驟1,啟動(dòng)vmware后,選擇新建virtual machine(虛擬機(jī))然后點(diǎn)擊next根據(jù)提示一步一步往下進(jìn)行將ubuntu10.10進(jìn)行導(dǎo)入到虛擬機(jī)中,設(shè)置操作系統(tǒng)的類(lèi)型為linux,同時(shí)為要在虛擬機(jī)中使用的ubuntu分配一定的磁盤(pán)空間。在導(dǎo)入完成后,非常重要的一點(diǎn)
47、是要在虛擬機(jī)中設(shè)置ubuntu系統(tǒng)使用網(wǎng)絡(luò)的方法,本設(shè)計(jì)中使用橋接的方式。點(diǎn)擊network adapter,網(wǎng)絡(luò)連接方式改為:brigted,表示主機(jī)xp與ubuntu使用的ip都是獨(dú)立的,而且在同一個(gè)網(wǎng)段:基本配置完成后,就可以安裝ubuntu操作系統(tǒng),點(diǎn)擊運(yùn)行按鈕,啟動(dòng)虛擬機(jī)進(jìn)入ubuntu的安裝界面。像平常安裝系統(tǒng)一樣根據(jù)提示進(jìn)行一步一步往下進(jìn)行安裝。在提示下載安裝包更新第三方軟件時(shí),由于更新比較費(fèi)時(shí),為了更快進(jìn)行安裝,這里建議兩個(gè)復(fù)選框都不要選。根據(jù)提示進(jìn)行余下的操作,直到系統(tǒng)安裝完成,即完成了在虛擬機(jī)中對(duì)ubuntu系統(tǒng)的安裝。3.1.2 配置網(wǎng)絡(luò)要使主機(jī)xp可以同虛擬機(jī)中的ubu
48、ntu進(jìn)行在局域網(wǎng)中的通信,必須要根據(jù)主機(jī)xp的網(wǎng)絡(luò)信息對(duì)ubuntu進(jìn)行設(shè)置,使xp和ubuntu處于同一個(gè)網(wǎng)段,網(wǎng)關(guān)一致,使用的dns服務(wù)器一致。查看主機(jī)xp的網(wǎng)絡(luò)信息如下: ip: 49 子網(wǎng)掩碼:255.255.2555.0 默認(rèn)網(wǎng)關(guān): dns服務(wù)器:6(可以使用默認(rèn)網(wǎng)關(guān))然后根據(jù)xp的網(wǎng)絡(luò)信息進(jìn)行配置ubuntu的網(wǎng)絡(luò)信息,用vi進(jìn)行在ubuntu下的網(wǎng)絡(luò)信息的編輯更改如下: 在/etc/network/interfaces中配置ip等信息如下: auto eth0 iface eth0 inet static ad
49、dress 15 gateway netmask 在/etc/resolv.conf設(shè)置dns服務(wù)器如下: generated by networkmanager nameserver 6在配置好ubuntu的網(wǎng)絡(luò)信息后,必須要重啟一下網(wǎng)絡(luò),設(shè)置才有效。使用下面的命令進(jìn)行重啟網(wǎng)絡(luò):$sudo /etc/init.d/networking restart然后,可以使用ifconfig命令查看配置的網(wǎng)絡(luò)是否生效,同時(shí)可以使用ping命令進(jìn)行與xp進(jìn)行ping,如何可以ping通,則表示設(shè)置成功;否則要
50、仔細(xì)檢查出錯(cuò)的原因,一般較常出錯(cuò)是在虛擬機(jī)中沒(méi)有設(shè)置ubuntu的網(wǎng)絡(luò)連接方式為橋接方式。3.1.3 配置samba服務(wù)器在局域網(wǎng)中共享ubuntu中的目錄一般用samba服務(wù)器的方式進(jìn)行共享,對(duì)于samba服務(wù)器的配置,在ubuntu系統(tǒng)中進(jìn)行配置如下:在ubuntu中安裝軟件之前,一般采用下面的命令進(jìn)行更新軟件包數(shù)據(jù)源:$sudo apt-get update接著安裝samba軟件包,如下:$sudo apt-get install samba smbfs samba-common smbclient然后進(jìn)行samba的配置:$ sudo vim /etc/samba/smb.conf在s
51、mb.conf最后添加:username path = /home/username available = yesbrowseable = yes public = yeswritable = yes接著創(chuàng)建samba帳戶(hù):$ sudo smbpasswd -a username (username換成你的用戶(hù)名)會(huì)要求你輸入samba帳戶(hù)的密碼最后,重啟samba服務(wù)器:$ sudo /etc/init.d/samba reload (修改過(guò)smb.conf的話(huà)要執(zhí)行一次)$ sudo /etc/init.d/samba restart 重啟后,在xp中測(cè)試一下創(chuàng)建的samba服務(wù)器是否有
52、效:在文件夾處或運(yùn)行處輸入: + ubuntu機(jī)器的ip 或主機(jī)名3.2 交叉編譯工具在ubuntu中進(jìn)行編譯在arm平臺(tái)上運(yùn)行的程序時(shí),不能使用ubuntu本身的gcc編譯工具進(jìn)行編譯了,要使用針對(duì)于arm的交叉編譯工具進(jìn)行編譯適合于arm平臺(tái)上運(yùn)行的程序。本設(shè)計(jì)中,對(duì)于linux內(nèi)核的編譯,lcd驅(qū)動(dòng)模塊的編譯和lcd應(yīng)用程序的編譯使用的都是交叉編譯工具鏈進(jìn)行編譯。本設(shè)計(jì)使用的交叉編譯工具鏈版本為arm-linux-gcc-4.4.3。使用下面的步驟將該交叉編譯工具鏈安裝到ubuntu中:(1),通過(guò)samba將交叉編譯工具鏈壓縮包arm-linux-gcc-4.4.3.tar.gz拷貝到
53、/opt目錄下(2),解壓arm-linux-gcc-4.4.3.tar.gz: $tar jxvf toolchains_for_s3c2410.tar.bz2(3), cd toolschain/4.4.3/arm-none-linux-gnueabi/bin(4),pwd命令獲取交叉工具鏈可執(zhí)行文件存放的絕對(duì)路徑/opt/toolschain/4.4.3/arm-none-linux-gnueabi/bin(5),修改環(huán)境變量path的值$cd $vim .bashrc在最后一行中添加:export path=$path:/opt/toolschain/4.4.3/arm-none-li
54、nux-gnueabi/bin保存退出執(zhí)行命令:$source /.bashrc(6),測(cè)試,使用交叉工具鏈編譯c代碼比如有test.carm-linux-gnu-gcc test.c o test_arm用file命令查看編譯后產(chǎn)生的可執(zhí)行文件的類(lèi)型,可知該可執(zhí)行文件適合于arm平臺(tái)運(yùn)行:csmcsm:/tmp$ file test_arm test_arm: elf 32-bit lsb executable, arm, version 1, dynamically linked (uses shared libs), for gnu/linux 2.4.3, not stripped3.3 安裝tftp和nfs服務(wù)使用uboot引導(dǎo)linux內(nèi)核啟動(dòng)時(shí),在uboot中可以設(shè)置相關(guān)的參數(shù),使其可以通過(guò)網(wǎng)絡(luò),使用tftp服務(wù)下載linux內(nèi)核或文件系統(tǒng)到nandflash中,然后進(jìn)行引導(dǎo)啟動(dòng)。通過(guò)這樣的方式進(jìn)行下載內(nèi)核到nandflash中,方便對(duì)于修改后的內(nèi)核的調(diào)試,直到最后要做成產(chǎn)品之后,才沒(méi)必要每次都通過(guò)tftp服務(wù)進(jìn)行到nandflash中。同樣對(duì)于文件系
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度民辦學(xué)校校車(chē)服務(wù)合同2篇
- 2025版新能源汽車(chē)銷(xiāo)售與服務(wù)合同模板下載4篇
- 2025年度農(nóng)業(yè)科技項(xiàng)目知識(shí)產(chǎn)權(quán)保護(hù)合同8篇
- 2025版綠色建筑節(jié)能技術(shù)實(shí)施合同4篇
- 2025年度高端培訓(xùn)學(xué)校副校長(zhǎng)職務(wù)聘任合同4篇
- 二零二五年度農(nóng)家樂(lè)土地流轉(zhuǎn)與鄉(xiāng)村旅游發(fā)展合同
- 二零二五年度農(nóng)家樂(lè)房屋出租與鄉(xiāng)村旅游開(kāi)發(fā)合同
- 2025年度汽車(chē)租賃合同車(chē)輛違章處理范本3篇
- 案外人另案確權(quán)訴訟與執(zhí)行異議之訴的關(guān)系處理
- 二零二五年度民間借款擔(dān)保與資產(chǎn)保全服務(wù)合同樣本3篇
- 護(hù)理指南手術(shù)器械臺(tái)擺放
- 腫瘤患者管理
- 2025年中國(guó)航空部附件維修行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局、行業(yè)政策及需求規(guī)模預(yù)測(cè)報(bào)告
- 2025春夏運(yùn)動(dòng)戶(hù)外行業(yè)趨勢(shì)白皮書(shū)
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動(dòng)合同
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 零部件測(cè)繪與 CAD成圖技術(shù)(中職組)沖壓機(jī)任務(wù)書(shū)
- 繪本教學(xué)課件
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)380題(含答案)
- 高低壓配電柜產(chǎn)品營(yíng)銷(xiāo)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論