




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河北工業(yè)大學(xué)城市學(xué)院畢業(yè)設(shè)計(jì)說明書 作 者: 趙歡 學(xué) 號(hào): 087656 系: 信息工程系 專業(yè): 電子科學(xué)與技術(shù) 題 目: 基于ARM-Linux平臺(tái)的GPS定位系統(tǒng) 指導(dǎo)者: 王偉 副教授 評(píng)閱者: 田漢民 講師 2012年6月6日畢業(yè)設(shè)計(jì)(論文)中文摘要 題目 基于ARM-Linux平臺(tái)的GPS定位系統(tǒng)摘要: GPS即全球定位系統(tǒng)(Global Position System),隨著經(jīng)濟(jì)技術(shù)不斷的發(fā)展,定位與導(dǎo)航在各行業(yè)的應(yīng)用越來越普遍。本設(shè)計(jì)內(nèi)容是研究實(shí)現(xiàn)一種基于ARM-Linux平臺(tái)與圖形用戶界面的GPS定位系統(tǒng)。首先根據(jù)需求分析選擇三星S3C2440芯片作為系統(tǒng)的微處理器,通過對(duì)
2、處理器與存儲(chǔ)模塊、電源模塊、GPS接收模塊、LCD觸摸屏等進(jìn)行電路設(shè)計(jì),確定了定位系統(tǒng)的硬件平臺(tái);隨后建立交叉編譯環(huán)境與QT開發(fā)環(huán)境,構(gòu)建嵌入式Linux系統(tǒng)平臺(tái),在分析GPS接收機(jī)輸出明文標(biāo)準(zhǔn)NMEA-0183、以及GPS硬件通信原理的基礎(chǔ)上,對(duì)GPS圖形用戶界面與GPS軟件系統(tǒng)進(jìn)行了設(shè)計(jì)。該系統(tǒng)通過GPS模塊接收來自GPS定位衛(wèi)星的定位信息,并將定位信息進(jìn)行實(shí)時(shí)處理,在顯示終端LCD上顯示出來。經(jīng)測(cè)試該系統(tǒng)運(yùn)行穩(wěn)定,精確度高,用戶界面良好,具有很好的應(yīng)用意義。關(guān)鍵字:GPS定位系統(tǒng) ARM-Linux平臺(tái) QT圖形用戶界面 S3C2440畢業(yè)設(shè)計(jì)(論文)外文摘要Title Based on
3、 ARM-Linux of GPS positioning system AbstractA GPS position system based on ARM-Linux platform and graphic user Interface(GUI) was designed and realized in this work. Choosing S3C2440 as microprocessor, we constructed the GPS hardware system through circuit design which includes memory circuit, powe
4、r circuits, GPS model and LCD touchscreen circuit, etc. Then we established cross-compiling and QT developing environments, and then constructed the embedded Linux platform. GPS GUI and GPS applied progARMs were designed based on the analysis of standard NMEA-0183 statement and GPS hardware communic
5、ation principles. The designed GPS position terminal has a good user interactive interface, and runs well, which also was proved to be reliable, precise and of high practical values. Keywords: GPS position system ARM-Linux platform QT GUI S3C2440 目 次 1引言11.1課題研究背景11.2 研究意義11.3 嵌入式開發(fā)的前景11.4 主要工作12 GP
6、S技術(shù)介紹22.1 GPS基礎(chǔ)22.2 GPS定位原理22.3 GPS數(shù)據(jù)與GPS協(xié)議22.3.1當(dāng)前衛(wèi)星信息$GPGGA22.3.2推薦定位信息數(shù)據(jù)格式$GPRMC32.3.3地面數(shù)據(jù)信息$GPVTG42.3.4含經(jīng)緯度的地理位置$GPGLL42.3.5 當(dāng)前衛(wèi)星信息$GPGSA43 GPS定位系統(tǒng)的硬件的設(shè)計(jì)53.1硬件系統(tǒng)的設(shè)計(jì)說明553.2.1原理介紹53.2.2 HY57V561620的結(jié)構(gòu)63.2.3 S3C2440與HY57V561620接線方法:63.3 GPS模塊設(shè)計(jì)73.4 電源模塊104 GPS定位系統(tǒng)的軟件開發(fā)144.2.1安裝Ubuntu Linux144.2.2創(chuàng)建
7、交叉編譯環(huán)境154.2.3 創(chuàng)建QT開發(fā)平臺(tái)174.2.4 ubuntu下安裝串口工具minicom204.3移植操作系統(tǒng)內(nèi)核224.5.1 GPS用戶界面244.5.2串口設(shè)置274.5.3 GPS信息獲取274.5.4 GPS信息顯示325 GPS定位系統(tǒng)的測(cè)試37結(jié) 論39參考文獻(xiàn)40致 謝41附 錄 A421引言1.1課題研究背景嵌入式系統(tǒng)是以應(yīng)用為中心,把計(jì)算機(jī)技術(shù)作為基礎(chǔ),軟件硬件可剪裁并且應(yīng)用系統(tǒng)在功能,可靠性,成本,體積,功耗上都具有很高的標(biāo)準(zhǔn)。更面向于針對(duì)具體對(duì)象的開發(fā)。從應(yīng)用的角度看嵌入式系統(tǒng)是“控制監(jiān)視或者輔助控制機(jī)器和設(shè)備運(yùn)行的系統(tǒng)”。從技術(shù)的角度看:可以理解成帶有CP
8、U的專用軟硬件系統(tǒng)。5嵌入式開發(fā)具有很廣闊的前景。1.2 研究意義嵌入式在國(guó)內(nèi)雖然有很大的發(fā)展空間,卻嚴(yán)重缺少專業(yè)的人才,嵌入式是將計(jì)算機(jī)技術(shù),電子技術(shù),半導(dǎo)體技術(shù)的具體應(yīng)用結(jié)合到一起的綜合學(xué)科,對(duì)技術(shù)知識(shí)要求很高且資源不足,又要滿足更小型化,在相同的硅片上潛入功能強(qiáng)大的系統(tǒng),必須高效率的設(shè)計(jì)硬件和軟件。1.3 嵌入式開發(fā)的前景隨著微電子技術(shù)的不斷發(fā)展以及電子技術(shù)制造工藝的進(jìn)步,嵌入式硬件的體積將會(huì)不斷縮小,系統(tǒng)穩(wěn)定性不斷在加強(qiáng)將來會(huì)把更多的功能集成在一塊很小的芯片上。功耗降低,功能越強(qiáng),隨著網(wǎng)絡(luò)的普及和IPV6技術(shù)的應(yīng)用,會(huì)有更多的嵌入式產(chǎn)品加入到網(wǎng)絡(luò)中。嵌入式技術(shù)也會(huì)也來越成熟。1.4 主
9、要工作首先在前期是查閱一些相關(guān)的文獻(xiàn)學(xué)習(xí)一些基本的知識(shí)與設(shè)計(jì)思路,器件的選型,例如GPS模塊原理,以及GPS協(xié)議。之后主要是完成硬件部分的設(shè)計(jì),主要包括SDRAM,NandFlash,晶振,電源,GPS,LCD,J-link各部分與中央處理器的連接,設(shè)計(jì)出電路圖在面包板搭接出電路。再次,是完成軟件部分,由于要完成GPS的定位,必須包含軟件的控制部分,硬件是骨架,軟件則是靈魂。工欲善其事必先利其器,要想很好的完成軟件部分設(shè)計(jì),建立軟件開發(fā)環(huán)境包括Ubuntu Linux的安裝,常用工具的安裝,創(chuàng)建交叉編譯環(huán)境,編譯好定位程序,調(diào)試運(yùn)行。最后,完善部分,由于GPS的輸出是按照NAME-0183協(xié)議
10、的格式輸出的,使用者并不知道0183協(xié)議并不利于用戶使用,所以進(jìn)行進(jìn)一步完善,安裝QT開發(fā)環(huán)境進(jìn)入QT編程,開發(fā)出一個(gè)圖形界面顯示經(jīng)緯度,高度。完成畢業(yè)設(shè)計(jì)。2 GPS技術(shù)介紹2.1 GPS基礎(chǔ)GPS主系統(tǒng)是由美國(guó)發(fā)射的衛(wèi)星系統(tǒng),由27顆衛(wèi)星組成,其中24個(gè)正常使用,3個(gè)備用,27顆衛(wèi)星不間斷的發(fā)送地理位置海拔高度和時(shí)間信號(hào),由地面的接收機(jī)接受再做處理,一般的接收機(jī)可以接收5至12個(gè)衛(wèi)星信號(hào)。全球定位系統(tǒng)分為三部分:太空衛(wèi)星部分:24顆繞極轉(zhuǎn)動(dòng)的衛(wèi)星分成六個(gè)軌道,在20200公里的高空運(yùn)動(dòng),轉(zhuǎn)動(dòng)一周約12小時(shí),每個(gè)衛(wèi)星都不停的發(fā)射載有衛(wèi)星軌道數(shù)據(jù)及時(shí)間的無線電波以供地球上的各種接收機(jī)接收。地面
11、管制部分:在地面設(shè)置的地面管制站主要任務(wù)是追蹤控制衛(wèi)星運(yùn)轉(zhuǎn),修正維護(hù)每個(gè)衛(wèi)星能保持運(yùn)轉(zhuǎn)的個(gè)性參數(shù),確保接收信息的可靠性。終端設(shè)備:追蹤GPS衛(wèi)星并隨時(shí)計(jì)算出接收機(jī)所在位置的坐標(biāo),移動(dòng)速度及時(shí)間。GPS接收機(jī)及一般分為:無線藍(lán)牙GPS,USB接口GPS。2.2 GPS定位原理 先要確定三維空間中某一點(diǎn)的具體位置,就要把待測(cè)點(diǎn)放置在三個(gè)不同的平面,及待測(cè)點(diǎn)與恒星所構(gòu)成的平面會(huì)有一個(gè)交點(diǎn),既是待測(cè)點(diǎn)。 GPS定位的基本原理是根據(jù)高速運(yùn)動(dòng)的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會(huì)的方法,空間后方交會(huì)利用航攝像片上三個(gè)以上不在一條直線上的控制點(diǎn)按構(gòu)像方程計(jì)算該像片外方位元素,可列出四個(gè)方程,
12、確定待測(cè)點(diǎn)的空間位置。2.3 GPS數(shù)據(jù)與GPS協(xié)議GPS模塊協(xié)議支持NMEA-0183協(xié)議,NMEA-0183協(xié)議是National Marinc Elcctronics Association所指定的標(biāo)準(zhǔn)規(guī)格,這一標(biāo)準(zhǔn)還包含傳輸資料的格式以及傳輸資料的通信協(xié)議。一組正常的GPS協(xié)議語句包含GPS固定數(shù)據(jù)輸出語句($GPGGA),建議使用推薦定位信息($GPRMC),地面速度信息($GPVTG)語句。2.3.1當(dāng)前衛(wèi)星信息$GPGGA $GPGGA,092007,000,3754.9756,N,10928.4278,E,1,08,1.0,20.6,M.0000*35.其標(biāo)準(zhǔn)格式為$GPGGA
13、,(1),(2),(3),(4),(5),(6),(7),(8),(9),M(10),M,(11),(12),*(CR),(LF)各部分對(duì)應(yīng)的含義為:(1)標(biāo)準(zhǔn)定位時(shí)間:#時(shí)#分#秒(2)緯度(格式ddmm.mmmm即#度#.#分)(3)N/S南或北表示緯度即北緯37度54.9756分(4)經(jīng)度(格式ddmm.mmmm即#度#.#分)(5)E/W 東或西表示經(jīng)度即東經(jīng)109度28.4278分(6)質(zhì)量因子(0=沒有定位,1=實(shí)時(shí)GPS,2=差分GPS)(7)可以應(yīng)用衛(wèi)星個(gè)數(shù)(0-8)(8)水平精度因子(1.0-99.9)水平精度因子=1.0(9)天線高程天線高程20.6米(10)大地橢球面相對(duì)
14、海平面的高度(-999.9-9999.9,單位:米)無(11)差分GPS數(shù)據(jù)年齡,實(shí)時(shí)GPS時(shí)無(12)差分某準(zhǔn)站號(hào)(0000-1023),實(shí)時(shí)GPS時(shí)無 *總和校驗(yàn)域Hh總和校驗(yàn)數(shù):35(CR)(LF)回車,換行2.3.2推薦定位信息數(shù)據(jù)格式$GPRMC $GPRMC082006,000,A,3528,9276,N,11527,4283,E,0,00,0,0,261009.*38標(biāo)準(zhǔn)格式為:$GPRMC(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(CR)(LF)標(biāo)準(zhǔn)定為時(shí)間格式hhmmss.sss定位狀態(tài):A=數(shù)據(jù)可用,V=數(shù)據(jù)不能被用緯度:格式ddmm.mmmm緯
15、度區(qū)分:北半球=N,南半球=Sccksum經(jīng)度:格式ddmm.mmmm經(jīng)度區(qū)分:東半球=E,西半球=W相對(duì)位移的速度0.0至1851.8knots相對(duì)位移的方向:000.0至359.9度。實(shí)際值日期:格式日日月月年年磁極變量:0度到180度度數(shù)Chccksum檢查位2.3.3地面數(shù)據(jù)信息$GPVTG $GPVTG,0.0,T,M,0.00,N,0.0,K*50字段1:運(yùn)動(dòng)角度,000-359前導(dǎo)位數(shù)不足補(bǔ)0字段2:T=真北參照系字段3:運(yùn)動(dòng)角度,000-359前導(dǎo)位不足補(bǔ)0字段4:M=磁北參照系字段5水平運(yùn)動(dòng)速度0.00前導(dǎo)位不足補(bǔ)0字段6;N=節(jié),Knots字段7:水平運(yùn)動(dòng)速度0.00前導(dǎo)位
16、不足補(bǔ)0字段8:K=公里/時(shí)字段9:校驗(yàn)值2.3.4含經(jīng)緯度的地理位置$GPGLL $GPGLL,3723.2475,N,12158.3416,W,161229.487,A*2C字段1:緯度37度23.2475分字段2:N/S,北半球或南半球字段3:經(jīng)度121度58.3416分字段3:E/W,東半球或西半球字段4:標(biāo)準(zhǔn)定為時(shí)間:格式,時(shí)時(shí)分分秒秒字段5:狀態(tài),A=資訊可用,V=資訊不可用字段6:總合檢查碼2.3.5 當(dāng)前衛(wèi)星信息$GPGSA$GPGSA A,3,07,02,26,27,09,04,15,1.8,1.0,1.5*33字段1:A/M,允許自動(dòng)切換二維定位或三維定位模式/強(qiáng)迫對(duì)二維定
17、位或三維定位模式字段2:定位形式1/2/3,分別是未定位,二維定位,三維定位字段3:07,恒星使用,信號(hào)頻道1字段4:02,恒星使用,信號(hào)頻道2字段14:恒星使用,信號(hào)頻道12字段18:*33,總合檢查碼3 GPS定位系統(tǒng)的硬件的設(shè)計(jì)3.1硬件系統(tǒng)的設(shè)計(jì)說明本設(shè)計(jì)采用三星的S3C2440微處理器。這是一款高性價(jià)比、低功耗、高集成度的CPU,基于ARM920T內(nèi)核,主頻最高為450MHz,專為手持設(shè)備和網(wǎng)絡(luò)應(yīng)用而設(shè)計(jì),能滿足嵌入式系統(tǒng)中的低成本、低功耗、高性能、小體積的要求1。下圖為硬件平臺(tái)的總體設(shè)計(jì)。 圖3-1:系統(tǒng)總體框圖3.2.SDRAM3.2.1原理介紹SDRAM作為內(nèi)部存儲(chǔ)器,不能長(zhǎng)時(shí)
18、間保留數(shù)據(jù),通過電容充保存數(shù)據(jù),一般存儲(chǔ)體中電容數(shù)據(jù)最長(zhǎng)可保存64毫秒,即在64毫秒內(nèi)必須沖洗刷新一次。SDRAM是多Bank結(jié)構(gòu),這種結(jié)構(gòu)大大提高了存儲(chǔ)器訪問速度。所以SDARM需要控制BAn引腳來管理多個(gè)Bank。 SDRAM引腳可以分為三類:1)控制信號(hào):包括片選,時(shí)鐘,時(shí)鐘使能,地址行和列選擇,讀或?qū)懠皵?shù)據(jù)有效。2)地址信號(hào):時(shí)分復(fù)用引腳,根據(jù)行列地址選擇引腳,控制輸入的的地址為行地址或列地址。3)數(shù)據(jù)信號(hào):雙向引腳,受數(shù)據(jù)有效控制。3.2.2 HY57V561620的結(jié)構(gòu)HY57V561620存儲(chǔ)容量4M4Bank16位,工作電壓為3.3V封裝為54腳TSOP兼容LVTTL接口,支持
19、自動(dòng)刷新和自刷新,16位數(shù)據(jù)寬度。HY57V561620引腳信號(hào)描述如下:引腳名稱描述CLK時(shí)鐘時(shí)鐘CKE時(shí)鐘使能片內(nèi)時(shí)鐘信號(hào)控制/CS片選決定除CLK CKE和DQM外的信號(hào)是否可輸入BA0 BA1組地址選擇用于片內(nèi)4個(gè)組的選擇A12-A0地址總線行地址:A12-A0,列地址:A8-A0,自動(dòng)預(yù)充電標(biāo)志:A10/RAS/CAS/WE行地址鎖存列地址鎖存寫使能參照功能真值表,/RAS/CAS/WE的定義相應(yīng)的操作LDQM UDQM數(shù)據(jù)IO屏蔽讀模式時(shí)控制輸出緩沖;寫模式時(shí)屏蔽輸入數(shù)據(jù)DQ15-DQ0數(shù)據(jù)總線數(shù)據(jù)輸送引腳VDD/VSS電源/地內(nèi)部輸入緩沖電源/地VDDQ/VSSQ電源/地輸出緩沖
20、電源/地NC未連接未連接3.2.3 S3C2440與HY57V561620接線方法:圖3-2:S3C2440與HY57V561620接線方法引腳描述如下:NSRAS:SDRAM行地址選通信號(hào)接!FASNSCAS:SDRAM列地址選通信號(hào)接!CASNGCS6:SDRAM芯片選擇信號(hào)接!CSNWBE3:0:SDRAM數(shù)據(jù)屏蔽信號(hào)接LDQM UDQMSCLK01:SDRAM時(shí)鐘信號(hào)接CLKSCKE:SDRAM時(shí)鐘允許信號(hào)接SCKDATA0:31:32位數(shù)據(jù)信號(hào)接DQ0-15ADDR2:14:行列地址信號(hào)接A0-12ADDR25:24:bank選擇線接BABA3.3 GPS模塊設(shè)計(jì)下面為GPS各部分的
21、電路圖: 圖3-3:GPS原理圖圖3-2為穩(wěn)壓電路,電路核心是LM117-CT3.3,它輸出穩(wěn)定的低壓降正電壓 圖3-4:GPS原理圖MAX202是電平轉(zhuǎn)換芯片,在PC機(jī)輸出的232電平與單片機(jī)可以接收的TTL電平之間轉(zhuǎn)換,MAX202E內(nèi)部含有兩個(gè)驅(qū)動(dòng)器兩個(gè)接收器。芯片的11,10,12,9引腳是RS232電平,14,7,15,8引腳是TTL電平,可實(shí)現(xiàn)電平的轉(zhuǎn)換。 圖3-5:GPS原理圖ET-312為衛(wèi)星接收芯片,是整個(gè)小系統(tǒng)的核心,主要是接收天線感應(yīng)的衛(wèi)星的信息。它的引腳從一到八分別是1,3,4,5,6,12,13是GND,2是RF,7是VIN,8是BATTERY,9是GPIO1,10是
22、TX,11是RX。其中RF與外部天線連接,當(dāng)連接到外部天線時(shí)需加典型值電源。VIN 為主電源輸入3.3V,BATTERY 作為SDARM或RTC的后備供電電源。電流一般為15uA。GPIO1 用此I/O口實(shí)現(xiàn)特殊功能,比如LED亮滅。TX 連接外部導(dǎo)與用戶的導(dǎo)航軟件的主要傳送測(cè)量數(shù)據(jù)的通道。RX 接收通道。3.4 電源模塊S3C2440的電源引腳主要有:微處理器復(fù)位模塊和端口寄存器需要108V電壓:微處理器內(nèi)核、時(shí)鐘電路需要1.8V電壓:MPLL、UPLL需要1.8V模擬電源和數(shù)字電源;微處理器端口和微處理器儲(chǔ)存器端口、微處理器內(nèi)的ADC系統(tǒng)需要3.3V電壓;所以電源電路部分提供1.8V和3.
23、3V電壓。 圖3-6:電源模塊設(shè)計(jì)3.5 晶振電路 圖3-7:晶振電路3.6 Flash接口電路設(shè)計(jì)NandFlash帶有通用的SARM接口可以輕松的掛接在CPU的地址數(shù)據(jù)總線上,使用復(fù)雜的I/O口來串行的存取數(shù)據(jù),8個(gè)引腳用來傳送控制地址和數(shù)據(jù)信息,容量大,所以本系統(tǒng)采用NandFlash作為存儲(chǔ)設(shè)備。引腳信號(hào)描述引腳描述引腳描述I/O0-I/O7數(shù)據(jù)命令地址輸入輸出引腳!WP寫保護(hù)CLE命令鎖存使能R/!B是否忙碌A(chǔ)LE地址鎖存使能Vcc電源(2.7-3.3)!CE芯片使能Vss地!RE讀使能N.C.無連接!WE寫使能 圖3-8:Flash接口電路 3.7 LCD觸摸屏接口設(shè)計(jì)本設(shè)計(jì)采用T
24、FT-LCD(Thin Film Transistir)也叫薄膜場(chǎng)效應(yīng)晶體管LCD進(jìn)行信息顯示。不過不可以直接使用,需要在移植內(nèi)核時(shí)進(jìn)行加載驅(qū)動(dòng)才可使用。 3.9系統(tǒng)復(fù)位電路接口設(shè)計(jì)本系統(tǒng)中復(fù)位電路主要完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)用戶的按鍵復(fù)位功能,復(fù)位電路的工作原理:在系統(tǒng)上電時(shí),電容C162充電,C162兩端的電壓升高當(dāng)未到高電平壓門限時(shí),RESET端為高電平,系統(tǒng)處于復(fù)位狀態(tài);當(dāng)C162兩端的電壓達(dá)到高電平的門限電壓時(shí),REST端電平變?yōu)榈碗娖?,系統(tǒng)正常工作。當(dāng)用戶按下按鈕REST時(shí),C162放電,REST端輸出為高電平,系統(tǒng)復(fù)位,再重復(fù)以上的充電過程,系統(tǒng)進(jìn)入正常狀態(tài)。以下為系統(tǒng)復(fù)
25、位電路。 圖3-9:復(fù)位電路設(shè)計(jì)3.10 JTAG接口本使用了包含完整JTAG 標(biāo)準(zhǔn)信號(hào)的10 Pin JTAG 接口,與S3C2440連接如圖。圖3-10:JTAG接口電路3.11串口電路S3C2440本身提供了2個(gè)串口一個(gè)和GPS相連實(shí)現(xiàn)電平轉(zhuǎn)換,另一個(gè)用于系統(tǒng)控制臺(tái)調(diào)試。 圖3-11:串口電路4 GPS定位系統(tǒng)的軟件開發(fā)4.1軟件整體設(shè)計(jì)說明軟件部分開發(fā)主要包括四部分:搭建軟件環(huán)境,安裝所需要的工具軟件,創(chuàng)建圖形界面并生成Makefile文件,系統(tǒng)測(cè)試。其中搭建軟件環(huán)境包括燒寫U-boot內(nèi)核到開發(fā)板,制作文件系統(tǒng),系統(tǒng)內(nèi)核移植,創(chuàng)建qtopia-2.2.0開發(fā)環(huán)境;需要安裝arm-li
26、nux-gcc,交叉編譯工具工具,安裝編譯Qt所需的庫文件,安裝圖形界面;下面可以進(jìn)行程序開發(fā)了,首先生成一個(gè)項(xiàng)目工程,再生成main.cpp文件.pro文件,tmake make生成gps在開發(fā)板上的可執(zhí)行程序。最后對(duì)GPS系統(tǒng)進(jìn)行測(cè)試,完成軟件開發(fā)。4.2建立軟件開發(fā)環(huán)境4.2.1安裝Ubuntu Linux簡(jiǎn)要介紹一下Ubuntu系統(tǒng),Ubuntu創(chuàng)建了一個(gè)可以為桌面和服務(wù)器提供的最新的Linux系統(tǒng),Ubuntu具有大量從Debian發(fā)行版精細(xì)挑選的軟件包,同時(shí)保留了Debian強(qiáng)大的軟件包管理系統(tǒng),可與Windows相容,非常適合Windows用戶的遷移,具有較全的中文版功能,在Wi
27、ndows操作系統(tǒng)下不用分區(qū)即可安裝使用,就如同安裝一個(gè)應(yīng)用軟件那么容易,整個(gè)Ubuntu操作系統(tǒng)在Windows下就如同一個(gè)大文件一樣,很容易卸載掉。安裝步驟如下:1為安裝系統(tǒng)預(yù)留出足夠的磁盤空間,本設(shè)計(jì)中預(yù)留了10G的空間23用一個(gè)虛擬光驅(qū)(如果沒有可以在網(wǎng)上下載一個(gè)名為Microsoft Virtual CD-ROM Control Panel無需安裝,可以虛擬ISO等光盤映像文件)裝載載ubuntu-9.04-desktop-i386.iso文件,運(yùn)行根目錄下的wubi.exe會(huì)出現(xiàn)ubuntu menu界面選擇“Install inside Windows”即可在Windows下直接
28、安裝而無需分區(qū)。接著出現(xiàn)ubuntu Installer界面,磁盤空間選擇F盤,語言選擇為“Chinese(Simplified)簡(jiǎn)體中文”,設(shè)置好用戶名和密碼,點(diǎn)擊安裝,安裝完后重啟系統(tǒng)選擇ubuntu,就可進(jìn)入系統(tǒng)。如果需要可以自己修改一些設(shè)置例如:修改開機(jī)啟動(dòng)程序,桌面環(huán)境,root密碼。4.2.2創(chuàng)建交叉編譯環(huán)境首先介紹一下什么是交叉編譯,交叉編譯就是在一種平臺(tái)上編譯出能運(yùn)行在體系結(jié)構(gòu)不同的另一種平臺(tái)上的程序,要進(jìn)行交叉編譯需要在主機(jī)安裝交叉編譯的工具鏈(Cross Compilation Tool Chain),包括編譯器,連接器,目標(biāo)庫等。通常Linux平臺(tái)上ARM的交叉編譯器是a
29、rm-Linux-gcc首先生成一個(gè)工具鏈,工具鏈可以通過手動(dòng)創(chuàng)建,也可以使用腳本創(chuàng)建。也可以從網(wǎng)上獲取已經(jīng)創(chuàng)建好的交叉編譯環(huán)境,直接從網(wǎng)上下載編譯好的。在本機(jī)可以有多個(gè)gcc版本的切換。(1)下載deb安裝包,下載的包為:gcc-3.4-base_3.4.6-6Ubuntu3_i386.deb、gcc-3.4_3.4.6-6Ubuntu3_i386.deb、cpp-3.4_3.4.6-6Ubuntu3_i386.deb、g+-3.4_3.4.6-6Ubuntu3_i386.deb、(2)接下來在zhaohuanubuntu:/5-18/gcc.3.4.6目錄下執(zhí)行下面的命令:$ dpkg -
30、i *.deb查看下安裝的結(jié)果如下:$ls /usr/bin/gcc* /usr/bin/gcc /usr/bin/gcc-3.4 /usr/bin/gcc-4.4 /usr/bin/gccbug-3.4(3)增加gcc3.4.6和gcc4.4.5的可選項(xiàng)$ update-alternatives -install /usr/bin/gcc gcc /usr/bin/gcc-4.5 40$ update-alternatives -install /usr/bin/gcc gcc /usr/bin/gcc-3.4 30(4)切換版本到gcc-3.41$ update-alternatives
31、-config gcc(自己手動(dòng)輸入要選擇的默認(rèn)值,輸入1,設(shè)置默認(rèn)為3.4版本的)。增加g+3.4.6和g+4.4.5的可選項(xiàng)$ update-alternatives -install /usr/bin/g+ g+ /usr/bin/g+-4.5 40$ update-alternatives -install /usr/bin/g+ g+ /usr/bin/g+-3.4 30 (5)切換版本到g+-3.4$ update-alternatives -config g+圖4-2-1:增加g+-3.4,g+-3.5手動(dòng)模式 要維持當(dāng)前值*請(qǐng)按回車鍵,或者鍵入選擇的編號(hào):1(自己手動(dòng)輸入要選擇
32、的默認(rèn)值,輸入1,設(shè)置默認(rèn)為3.4版本的) 要 注意文件夾權(quán)限 chmod 777 XXX查看當(dāng)前gcc版本(6) $ gcc -v圖4-2-2:安裝成功4.2.3 創(chuàng)建QT開發(fā)平臺(tái)(1)編譯安裝qtopia-qtopia版本可在Linux操作系統(tǒng)下應(yīng)用Qt圖形界面及應(yīng)用程序的開發(fā),它可以產(chǎn)生 Qt開發(fā)工具,如用于設(shè)計(jì)的designer、運(yùn)行結(jié)果顯示的qvfb可以沒有實(shí)際的開發(fā)板,直接在桌面系統(tǒng)中顯示程序運(yùn)行結(jié)果。在安裝之前要準(zhǔn)備幾個(gè)安裝軟件包:cross-2.95.3.tar.bz2, e2fsprogs-1.40.2.tar.gz, jpegsrc.v6b.tar.gz, libpng-1
33、.2.19-no-config.tar.bz2, qtopia-free-src-2.2.0.tar.gz zlib-1.2.3.tar.bz2, 然后建立QTE環(huán)境所需要的目錄,即使在根文件下建立幾個(gè)需要的文件夾,那樣以后的文件會(huì)自動(dòng)存到相應(yīng)的文件夾下。帶“*”的文件夾不建也可以,解壓時(shí)會(huì)自動(dòng)生成。1安裝交叉編譯工具將cross-2.95.3.tar.bz2放到/usr/local/arm下解壓修改環(huán)境變量#export PATH=/usr/local/arm/2.95.3/bin:$PATH測(cè)試#arm-Linux-gcc -v 3編譯e2fsprogs-1.39得到qtopia所需的兩個(gè)
34、文件, uuid.h libuuid.soexport PATH=/usr/local/arm/2.95.3/bin:$PATHmakecp -r lib/uuid /root/yizhi/armincludecp lib/libuuid.so* /root/yizhi/armlibcp lib/libuuid.a /root/yizhi/armlib4交叉編譯jpeg庫cd /root/yizhicd jpeg-6bexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH#export PATH=/usr/local/arm/2.95.3/bin:
35、$PATHcp /usr/share/libtool/config/config.guess /root/yizhi/jpeg-6bcp /usr/share/libtool/config/config.sub /root/yizhi/jpeg-6bcp jconfig.doc jconfig.hmake "CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc" "AR=/usr/local/arm/2.95.3/bin/arm-linux-ar rc" "AR2=/usr/local/arm/2.95.3/bi
36、n/arm-linux-ranlib"make install -lib cp jpeglib.h jconfig.h jmorecfg.h /root/yizhi/armincludecp /root/yizhi/qt-2.3.10/lib/libjpeg.so* /root/yizhi/armlib編譯zlibcd /root/yizhiexport PATH=/usr/local/arm/2.95.3/bin:$PATHexport LD_LIBRARY_PATH=usr/local/arm/2.95.3/arm-linux/lib:$LD_LIBRARY_PATHmake&q
37、uot;CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc" "AR=/usr/local/arm/2.95.3/bin/arm-linux-ar rc" "RANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib"cp libz.so* /root/yizhi/armlibcp *.h /root/yizhi/arminclude編譯libpngcd /root/yizhicp scripts/makefile.linux ./Makefilemake"CC
38、=/usr/local/arm/2.95.3/bin/arm-linux-gcc" "AR_RC=/usr/local/arm/2.95.3/bin/arm-linux-ar rc" "RANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib" "prefix=/usr/local/arm/2.95.3/arm-linux"cp libpng12.so* /root/yizhi/armlibcp libpng.a /root/yizhi/armlibcp *.h /root/yizh
39、i/armincludecp custom-linux-ipaq-g+.cpp custom-linux-arm-g+.cppcp custom-linux-ipaq-g+.h custom-linux-arm-g+.hexport LD_LIBRARY_PATH=/$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATHexport TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g+export PATH=/usr/local/arm/2.95.3/bin:$PATHmkdir /root/yizhi/qtopia./configure -
40、qte "-embedded -xplatform linux-arm-g+ -qconfig qpe -no-qvfb -depths 8,16,24,32 -no-xft -system-jpeg -system-libpng -system-zlib -gif -thread -release -I/root/yizhi/arminclude -L/root/yizhi/armlib -lpng -lz -luuid -ljpeg" -qpe '-xplatform linux-arm-g+-editionpda-displaysize640x480-I/ro
41、ot/yizhi/arminclude -L/root/yizhi/armlib -prefix=/root/yizhi/qtopia'makemake installcp -r /root/yizhi/armlib/* /root/yizhi/qtopia/lib4.2.4 ubuntu下安裝串口工具minicom1.在ubuntu超級(jí)終端界面中輸入sudo apt-get install minicom進(jìn)行安裝。若要啟動(dòng)minicom,在終端界面中輸入minicom,按Ctrl + a,放開, 再按o可對(duì)minicom進(jìn)行配置。選擇 Serial port setup,鍵入A將光標(biāo)
42、移動(dòng)到A對(duì)應(yīng)的行進(jìn)行修改使串口COM1對(duì)應(yīng)ttyS0,COM2對(duì)應(yīng)ttyS1。執(zhí)行U口轉(zhuǎn)串口。鍵入“E”,波特率選為115200 8N1 (奇偶校驗(yàn)無, 停止位1),進(jìn)行波特率的設(shè)置。硬/軟件流控制分別鍵入“F”“G”并且都選NO。若要配置文件所在目錄按Ctrl + a,放開, 再按o,選擇"Filenames and paths"1. A - download 下載文件的存放位置,開發(fā)板上的文件將被傳輸?shù)絇C機(jī)上的/home/crliu目錄下。2. B - upload 從此處讀取上傳的文件,PC機(jī)向開發(fā)板發(fā)送文件,需要發(fā)送的文件在/tmp目錄下(PC機(jī)上的目錄)。做了此
43、項(xiàng)配置后,每次向開發(fā)板發(fā)送文件時(shí),只需輸入文件名即可,無需輸入文件所在目錄的絕對(duì)路徑。在確認(rèn)配置正確之后,可鍵入回車返回上級(jí)配置界面,并將光標(biāo)移動(dòng)至save setup as dfl,保存設(shè)置。重啟minicom是剛才配置生效,在連上開發(fā)板的串口線后,就可在minicom中打印正確的串口信息了。此時(shí)可以打印串口信息但是在通過串口用xmodem協(xié)議燒寫內(nèi)核時(shí)會(huì)提示沒有xmodem協(xié)議。所以還必須安裝軟件包:lrzsz ,執(zhí)行 sudo apt-get install lrzsz。這時(shí)候就可以正常地用minicom通過串口燒寫內(nèi)核了。3.如果非正常關(guān)閉minicom,將在/var/lock下創(chuàng)建幾
44、個(gè)LCK*文件刪除即可恢復(fù)。 4.面介紹一下minicom復(fù)合鍵的使用(1)S鍵:發(fā)送文件到目標(biāo)系統(tǒng)中;(2)W鍵:自動(dòng)卷屏。當(dāng)顯示的內(nèi)容超過一行之后,自動(dòng)將后面的內(nèi)容換行。這個(gè)功能在查看內(nèi)核的啟動(dòng)信息時(shí)很有用。(3)C鍵:清除屏幕的顯示內(nèi)容;(4)B鍵:瀏覽minicom的歷史顯示;(5)X鍵:退出mInicom,會(huì)提示確認(rèn)退出。4.3移植操作系統(tǒng)內(nèi)核系統(tǒng)內(nèi)核移植就是讓一套軟件在指定平臺(tái)發(fā)揮作用,至少要有兩個(gè)不同的硬件或軟件平臺(tái)才會(huì)完成。系統(tǒng)移植包括內(nèi)核,程序庫,和應(yīng)用程序移植,最主要的是內(nèi)核移植。本設(shè)計(jì)可直接移植Linux2.6版本的內(nèi)核代碼。進(jìn)入rootlocalhost linux-2
45、.6.12后輸入 # make menuconfig選擇進(jìn)入“Load an Alternate Configuration File”裝載配置文件“S3C2440.CFG”點(diǎn)擊OK保存。# make zimage會(huì)在linux-2.6.12/arch/arm/boot 路徑下生成zimage 文件。如圖所示: 圖:4-3-1選擇界面4.4 制作根文件系統(tǒng)YAFFS是Yet Another Flash File System的縮寫。是專門用于閃存(NAND Flash)設(shè)計(jì)的嵌入式文件系統(tǒng),比較適合大容量存儲(chǔ)設(shè)備;并且發(fā)布于GPL(General Public License)協(xié)議下,可在它的
46、網(wǎng)站免費(fèi)下載源代碼。 YAFFS 基于日志提并顯示磨損平衡和掉電恢復(fù)性能,在啟動(dòng)時(shí)間和ARM 使用上比其他更優(yōu)秀。已經(jīng)用在了Linux 和WinCE 商業(yè)產(chǎn)品中。YAFFS中,文件是以512字節(jié)、1 024字節(jié)或者2 048字節(jié)大小的數(shù)據(jù)塊進(jìn)行存儲(chǔ)的,這種以固定塊大小來存儲(chǔ)方法的實(shí)現(xiàn)主要由于它可以把一個(gè)數(shù)據(jù)塊頭和每個(gè)數(shù)據(jù)塊聯(lián)系起來。當(dāng)文件被掛載時(shí),只掃描頭文件就能將文件系統(tǒng)信息讀入到內(nèi)存中,和C語言中運(yùn)用指針具有相同原理。這樣不僅使文件系統(tǒng)更快的加載,也能很快訪問文件。樹形結(jié)構(gòu)的數(shù)據(jù)段組成可以提高查找文件數(shù)據(jù)塊的速度,YAFFS在文件修改時(shí)總先寫入新的再刪除舊的這樣可實(shí)現(xiàn)了掉電保護(hù),保證數(shù)據(jù)完
47、整性。YAFFS文件系統(tǒng)設(shè)計(jì)具有層次感,包含yaffs_guts.c,yaffs_fs.c,NAND 接口,yaffs_guts 與NAND 內(nèi)存訪問函數(shù)之間的包裝層4部分。具有層次感的設(shè)計(jì)將會(huì)實(shí)現(xiàn)文件的直接調(diào)用。具體步驟:1.將文件系統(tǒng)壓縮包(qte_yaffs.tar.bz2)拷貝到某個(gè)目錄下,進(jìn)入這個(gè)目錄,然后輸入tar -jxvf qte_yaffs.tar.bz2解壓這個(gè)壓縮包2. 解壓后得到qte_yaffs 目錄,文件系統(tǒng)的所有文件都在該目錄下,可根據(jù)需要修改。其中關(guān)于支持鼠標(biāo)或觸摸屏在/etc/init.d/rcS 中選擇(rc.mouse 或rc.touch)。最后用mkya
48、ffs2image 工具來制作文件系統(tǒng):./mkyaffs2image qte_yaffs qte.yaffs 0Object 3115, qte_yaffs/lib/libcrypt.so.1 is a symlink to "libcrypt-2.3.2.so"Object 3116, qte_yaffs/lib/libcrypt-2.3.2.so is a file, 59 data chunks writtenObject 3117, qte_yaffs/lib/libdl-2.3.2.so is a file, 31 data chunks writtenObje
49、ct 3118, qte_yaffs/lib/libutil.so.1 is a symlink to "libutil-2.3.2.so"Object 3119, qte_yaffs/lib/libstdc+-libc6.1-2.so.3 is a file, 513 data chunks writtenObject 3120, qte_yaffs/lib/libnss_files.so is a symlink to "libnss_files.so.2"Object 3121, qte_yaffs/lib/libopenobex-1.0.so.0
50、 is a file, 52 data chunks writtenObject 3122, qte_yaffs/mnt is a directoryObject 3123, qte_yaffs/tmp is a directoryOperation complete.2867 objects in 236 directories83519 NAND pagesFriendlyARM Computer Technology Inc.ljfubuntu:/test-2012-4-3-yaffs2$ ls圖4-4-1:制作根文件系統(tǒng)4.5 應(yīng)用程序開發(fā)開發(fā)Qt 應(yīng)用程序一般有全部采用手寫代碼,在命
51、令行下完成編譯和運(yùn)行和使用Qt Designer設(shè)計(jì)界面,使用IDE兩種。但無論哪種都應(yīng)遵循一般的Qt應(yīng)用程序開發(fā)流程,本設(shè)計(jì)采用Qt Designer設(shè)計(jì)界面開發(fā)流程框圖如圖 圖4-5-1:開發(fā)流程框圖4.5.1 GPS用戶界面(1)在第一次使用之前要設(shè)置一下環(huán)境變量,之后就不用了。#!/bin/shexport TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g+export PATH=$QPEDIR/bin:$QTDIR/bin:$DQTDIR/bin:$TMAKEDIR/bin:$PATHExport LD_LIBRARY_PATH=$QPEDIR/lib:
52、$QTDIR/lib:$DQTDIR/lib:$LD_LIBRARY_PATHexport XLIB_SKIP_ARGB_VISUALS=1(2)建立QT的項(xiàng)目文件在PC機(jī)Linux下的/opt/EmbedSky/Qte/x86_qtopia/pro的文件中新建一個(gè)first的文件夾,用來存放以后所要用的程序。在終端中輸入#$QTDIR/bin/designer &啟動(dòng)Qt designer。新建一個(gè)Qt工程如圖5-4-2所示,選擇屬性如圖4-4-3,會(huì)出現(xiàn)像4-4-4的窗口。 圖4-5-3:選擇屬性 圖4-5-2:新建工程圖4-5-5:新建按鈕圖4-5-4:新建一個(gè)工程 新建Star
53、t Stop open_port close按鈕,并設(shè)置按鈕的大小及顯示信息。如圖4-4-5所示打開Text圖標(biāo),并設(shè)置圖標(biāo)的大小,位置,并去除顯示信息,如圖4-4-6所示添加函數(shù),是剛設(shè)置的按鈕可以對(duì)函數(shù)進(jìn)行響應(yīng),如圖4-4-7所示 圖:4-5-6設(shè)置信號(hào)槽 圖4-5-7:添加函數(shù)保存工程文件。文件名為*.ui (3)創(chuàng)建main.cpp文件#include "gps.h"#include <qapplication.h>#include <qtopia/qpeapplication.h>QTOPIA_ADD_APPLICATION("g
54、ps",gps);QTOPIA_MAIN圖4-4-8:GPS中生成的文件(4)添加*.pro文件在tmake下的progen軟件產(chǎn)生*.pro文件,在終端中輸入#progen和#progen -o 獲取*.pro文件,通過#gedit 完善.pro文件,將彈出窗口中的第二行中的qt改為qtopia,將第六行刪除。保存。(5)tmake# progen -o 會(huì)顯示TEMPLATE= appCONFIG= qtopia warn_on releaseHEADERS= gps.hSOURCES= gps.cpp main.cpp(6) 生成Makefile# tmake -o Makefile (7)make之后會(huì)出現(xiàn)如圖結(jié)果圖4-5-9:生成Makefile文件生成gps開發(fā)板的執(zhí)行文件。就可以在開發(fā)板上運(yùn)行了。4.5.2串口設(shè)置1.在終端界面輸入“# lsmod | grep usbserial”,如出現(xiàn)usbserial信息,說明系統(tǒng)支持USB轉(zhuǎn)串口。2.插上USB轉(zhuǎn)串口,在終端輸入命令#dmesg | grep ttyUSB0,如果出現(xiàn)連接成功信息,則說明ubuntu系統(tǒng)已經(jīng)識(shí)別該設(shè)備了。注
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校壁櫥定制合同范本
- 接收設(shè)備在物聯(lián)網(wǎng)時(shí)代的角色轉(zhuǎn)變考核試卷
- 科技引領(lǐng)電動(dòng)汽車電池技術(shù)的創(chuàng)新發(fā)展
- 硅石購(gòu)銷合同范本
- 提升課堂互動(dòng)質(zhì)量的秋季計(jì)劃
- 提高漆器工藝品物流效率考核試卷
- 摩托車的駕駛態(tài)度與心理考核試卷
- 車位租用合同范本
- 會(huì)計(jì)個(gè)人工作計(jì)劃的重要性
- 內(nèi)陸?zhàn)B殖的水果質(zhì)量控制與加工品質(zhì)提升考核試卷
- 【人教版化學(xué)】必修1 知識(shí)點(diǎn)默寫小紙條(答案背誦版)
- 危險(xiǎn)化學(xué)品目錄(2024版)
- 腦卒中-腦卒中的康復(fù)治療
- 疫情統(tǒng)計(jì)學(xué)智慧樹知到答案2024年浙江大學(xué)
- 浙江省紹興市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 農(nóng)村商業(yè)銀行合規(guī)風(fēng)險(xiǎn)管理暫行辦法
- 人教版八年級(jí)數(shù)學(xué)第二學(xué)期教學(xué)計(jì)劃+教學(xué)進(jìn)度表
- 油管、套管等規(guī)格對(duì)照表
- IEST-RP-CC0053
- 模糊邏輯與模糊推理
- 玉米收割機(jī)的設(shè)計(jì)(機(jī)械CAD圖紙)
評(píng)論
0/150
提交評(píng)論