【正文】
x內(nèi)核的移植 12 Linux內(nèi)核下載 12 Linux內(nèi)核配置 13 編譯并下載Linux內(nèi)核 19 裝載驅(qū)動 20 按鍵原理 21 按鍵驅(qū)動設(shè)計(jì) 21 按鍵驅(qū)動測試 25 Makefile分析 26 Makefile語法規(guī)則 27 Makefile的作用原理 28 根文件系統(tǒng)[50]的制作 29 小結(jié) 334 GPS原理 35 GPS衛(wèi)星信號的產(chǎn)生 35 GPS系統(tǒng)的組成 35 空間部分 35 地面監(jiān)控部分[55] 36 用戶終端部分 37 誤差來源 38 電離層和大氣延遲誤差 38 衛(wèi)星與接收機(jī)的時(shí)鐘誤差 39 多路徑誤差 39 NMEA0183標(biāo)準(zhǔn)[61] 40 小結(jié) 445 GPS系統(tǒng)軟硬件設(shè)計(jì) 45 GPS系統(tǒng)硬件架構(gòu) 45 GPS系統(tǒng)軟件設(shè)計(jì) 47 串口終端應(yīng)用 47 圖形界面顯示 54 編譯聯(lián)合執(zhí)行 68 小結(jié) 696 總結(jié)與展望 71參考文獻(xiàn) 73致 謝 77作者簡介及讀研期間主要科研成果 79ContentsAbstract IAbstract IIIThe detailed list of mark and abbreviation meaning IX1 Exordium 1 Research background and significance 1 The domestic and foreign research situation and development trend 1 Subject research target 2 Paper section arrangement 32 The embedded system and technology 5 Introduction of embedded systems 5 The embedded system characteristics and position 5 The embedded system classification 5 Embedded processor 6 Embedded processor classification 6 ARM processor 7 Embedded operating system 7 The origin of the Linux operating system 8 Linux operating the characteristics of the system 9 Summary 93 Linux operating system transplantation 11 Bootloader 11 Linux kernel transplantation 12 Linux kernel download 12 Linux kernel configuration 13 Compile and download the Linux kernel 19 Loaded driver 20 Key principle 21 Key drive design 21 Key drivers test 25 Makefile analysis 26 Makefile grammar rules 27 The role of Makefile principle 28 A file system production 29 Summary 334 GPS principle 35 GPS satellite signal is produced 35 The position of the GPS system 35 Space part 35 Ground monitoring part 36 The user terminal part 37 Error sources 38 The ionosphere and atmospheric delay error 38 Satellite and receiver clock error 39 Multipath error 39 NMEA0183 standards 40 Summary 445 GPS system hardware and software design 45 GPS system hardware architecture 45 GPS system software design 47 Serial port terminal application 47 Graphic interface display 54 Compiler joint implementation 68 Summary 696 Conclusion and forecast 71Reference 73Acknowledgements 77Author introduction and during grinding main scientific research achievements 79符號與縮寫含義清單DSP 數(shù)字信號處理器FPGA 現(xiàn)場可編程門陣列CPLD 復(fù)雜可編程邏輯器件RISC 精簡指令集計(jì)算機(jī)CISC 復(fù)雜指令集計(jì)算機(jī)ES 嵌入式系統(tǒng)EOS 嵌入式操作系統(tǒng)RTOS 嵌入式實(shí)時(shí)操作系統(tǒng)SDRAM 同步動態(tài)隨機(jī)存取存儲器PDA 個(gè)人數(shù)碼助理POS 銷售點(diǎn)GPS 全球定位系統(tǒng)GSM 全球移動通信系統(tǒng)GPRS 通用分組無線業(yè)務(wù)BSS 基站子系統(tǒng)SoC 片上系統(tǒng)ASIC 專用集成電路MPU 微處理器MCU 微控制器EDA 電子設(shè)計(jì)自動化MTD 內(nèi)存技術(shù)設(shè)備OSI 開放系統(tǒng)互聯(lián)DTE 數(shù)據(jù)終端設(shè)備TA 終端接入 1 緒論 課題研究背景和意義著名的衛(wèi)星導(dǎo)航、授時(shí)和測距系統(tǒng)(NAVSTAR)——GPS系統(tǒng),是很少幾項(xiàng)能夠體現(xiàn)當(dāng)今科技發(fā)展與變革的重要成就之一[1]。本文首先闡述課題研究的技術(shù)背景、現(xiàn)實(shí)意義和研究現(xiàn)狀,對嵌入式系統(tǒng)和GPS模塊的功能作了分析。除此之外,一般的GPS數(shù)據(jù)中還包括UTC時(shí)間,對地速度,定位狀態(tài),日期,方位角,信噪比等等其他的常用數(shù)據(jù)。最后,本文對所作的工作做了一個(gè)總結(jié),指出存在的不足及改進(jìn)方法,為后續(xù)的研究設(shè)計(jì)作了指導(dǎo)。如何利用嵌入式系統(tǒng)去接收并處理衛(wèi)星信號,以便人們能夠方便的使用手持全球定位系統(tǒng),已成為大家比較關(guān)注的技術(shù)問題[4]。最終美軍70年代初在“子午儀衛(wèi)星導(dǎo)航定位”技術(shù)上發(fā)展起來了具有全球性、全能性(陸地、海洋、航空與航天)、全天候優(yōu)勢的導(dǎo)航定位、定時(shí)、測速系統(tǒng)就是我們現(xiàn)在一直廣泛運(yùn)用的GPS定位系統(tǒng)[12]。國內(nèi)GPS市場呈現(xiàn)出兩個(gè)重點(diǎn)發(fā)展趨勢:①以車載導(dǎo)航為核心的移動目標(biāo)監(jiān)控、管理與服務(wù)系統(tǒng)。(2)針對具體的CPU及操作系統(tǒng)編寫相應(yīng)的應(yīng)用程序。跟其他的圖形設(shè)計(jì)平臺(如MiniGUi)相比,界面顯示更細(xì)致美觀。第6章 總結(jié)與展望:在完成本設(shè)計(jì)所需的功能后,對該設(shè)計(jì)所做的工作進(jìn)行了總結(jié),提出所方案的一些局限性和不完善的地方并給出了改進(jìn)意見,對將來該方向的研究工作做了進(jìn)一步的展望。嵌入式產(chǎn)品的特點(diǎn)主要是體積小,應(yīng)用面廣,開發(fā)速度快,價(jià)格便宜,實(shí)時(shí)性好,高效性強(qiáng),方便操作,攜帶方便。另外,它充分實(shí)現(xiàn)了硬件與軟件的裁剪,不需要的部分不會被添加上,從而實(shí)現(xiàn)功能的定制, 嵌入式系統(tǒng)分類 由于嵌入式系統(tǒng)的定義本身就很寬泛,基本上很難給出其一個(gè)明確的定義,所以根據(jù)不同的分類標(biāo)準(zhǔn)嵌入式系統(tǒng)有不同的分類方法。實(shí)時(shí)嵌入式系統(tǒng)在一些特定的場合,比如鍋爐燒水時(shí)的水位測量,當(dāng)水位超過一定的標(biāo)準(zhǔn)要做及時(shí)的處理。像此類系統(tǒng)能夠通過檢測某些參數(shù)并將數(shù)據(jù)直接通過網(wǎng)絡(luò)傳輸?shù)交ヂ?lián)網(wǎng)上,達(dá)到在線監(jiān)控的目的。它降低了硬件執(zhí)行指令的復(fù)雜度,因?yàn)檐浖啾扔布跃哂懈蟮撵`活性。例如三星的S3C44B0。這時(shí),人們可能會不理解加入了操作系統(tǒng)的好處,只是讓他們覺得這樣顯示更復(fù)雜了??梢詾檎麄€(gè)要用到的LED燈編寫一個(gè)LED驅(qū)動[30],將驅(qū)動加入到操作系統(tǒng)之中。在ATamp。 和Uinx類似,Minix也是用C語言編寫的,由于C語言的可移植性很好,從而可以很容易的移植到其他機(jī)器上。② 漏洞修補(bǔ)使用Linux后,一般供應(yīng)商都會提供最新的漏洞[34]修補(bǔ)或一些安全補(bǔ)丁及時(shí)來修復(fù)你的操作系統(tǒng)漏洞,而你的等待時(shí)間只是幾天或更快。本課題未進(jìn)行引導(dǎo)程序的編譯移植,直接使用友善之臂提供的引導(dǎo)程序——supervivi,在超級終端上的顯示界面如圖1所示:圖1 supervivi啟動 supervivi start Linux內(nèi)核的移植 Linux內(nèi)核下載 Linux內(nèi)核可以說是Linux操作系統(tǒng)最核心的部分,它的版本眾多。 在官網(wǎng)上除了這些各個(gè)版本的內(nèi)核文件外,還有一些補(bǔ)丁文件。次版本號有偶數(shù)和奇數(shù)之分,次版本號是奇數(shù)的版本為測試版本,不穩(wěn)定。比如我們在編譯過程中要查看一些資料,由于很多資料無法使用Windows系統(tǒng)中的軟件打開而造成不便。Linux操作系統(tǒng)發(fā)行版的種類很多,有Debian、Fedora、Ubuntu等等,這里我們選用的系統(tǒng)是Fedora9[36],它是red hat公司支持的社區(qū)版本。[38],其安裝過程比較簡單,這里不作介紹。這就是一根屬于C分區(qū)的樹,“C:”就是這棵樹的樹根。② 配置內(nèi)核[39]接下來就該配置內(nèi)核了?!缑媸腔贕tk窗口,要求GTK被安裝?!?,可以發(fā)現(xiàn)相關(guān)的選項(xiàng)都已經(jīng)改變了。因?yàn)槲覀冞€沒有在其中添加各種外設(shè)的驅(qū)動。如果運(yùn)行在用戶態(tài)的應(yīng)用程序想控制硬件設(shè)備,則必須通過驅(qū)動程序來控制。 對比方法①和②,可以發(fā)現(xiàn)方法①更耗時(shí)間,因?yàn)樗匦戮幾g一次內(nèi)核,更換了內(nèi)核之后還必須重啟系統(tǒng)才能看到效果,這樣會嚴(yán)重影響開發(fā)進(jìn)度。 按鍵原理按鍵,本身屬于一種字符設(shè)備[43]。 按鍵驅(qū)動設(shè)計(jì)①定義所需資源首先要設(shè)置按鍵緩沖區(qū)[44],主要是防止多次按下按鍵而處理器未來得及處理,所以要用緩沖區(qū)來緩存。 //按鍵緩沖區(qū) unsigned int head,tail。除此之外,模塊加載函數(shù)中還應(yīng)該包括下列代碼,即初始化等待隊(duì)列頭、設(shè)置定時(shí)器處理函數(shù)、申請中斷號、設(shè)置按鍵狀態(tài)與IO口的中斷方式等等。(devkey_queue))。i)) //申請按鍵對應(yīng)的中斷號 {return 1。jKEY_NUMBER。 //開啟定時(shí)器計(jì)時(shí) return IRQ_HANDLED。對于open函數(shù),在每次調(diào)用它打開文件時(shí),應(yīng)清空按鍵緩沖區(qū),即包含下列語句:key_devphead=key_devptail=0。將數(shù)據(jù)從內(nèi)核空間復(fù)制到用戶空間,這樣才能被上層應(yīng)用程序調(diào)用。這樣就將編寫的按鍵驅(qū)動添加進(jìn)了編譯選項(xiàng)。所謂的Makefile文件其實(shí)就是一個(gè)描述項(xiàng)目中各個(gè)源文件編譯、鏈接等規(guī)則的文件。 Makefile語法規(guī)則與shell腳本類似,Makefile文件的編寫也有它自己的一套語法規(guī)則并遵循特定的編寫格式。 下面例舉一個(gè)簡單的Makefile文件。主要是此種編譯方式重復(fù)工作量太大,、其他未改動的源文件也必須跟著重新編譯,這顯然是浪費(fèi)時(shí)間,是不必要的。其下載地址為。② 構(gòu)建動態(tài)鏈接庫動態(tài)鏈接庫可以直接從友善之臂提供的根文件包中拷貝過來,即將其lib目錄下的庫文件拷貝到新建的lib目錄下,命令如下:tar zxvf –C /opt/studyarm cp –r /opt/studyarm/root_qtopia/lib/* /opt/studyarm/rootfs/lib/ ③ 交叉編譯Busybox[51]首先,解壓Busybox軟件到/opt/studyarm目錄下,命令如下:tar zxvf –C /opt/studyarm 與編譯Linux內(nèi)核相似,構(gòu)建根文件系統(tǒng)時(shí)也是使用交叉編譯,即需要在Makefile文件指定硬件平臺和交叉編譯器,修改如下:將語句ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 改為:ARCH ?= arm CROSS_COMPILE ?= armlinux 然后執(zhí)行“make menuconfig。[\u\h=W]39。 GPS導(dǎo)航信號的產(chǎn)生流程如圖15所示:圖15 導(dǎo)航信號產(chǎn)生流程 Navigation signal process GPS系統(tǒng)的組成 GPS系統(tǒng)可以概括性的分為三個(gè)部分:空間部分[54]、監(jiān)控部分和用戶部分。監(jiān)控站在對衛(wèi)星軌道進(jìn)行測量計(jì)算后,得出的誤差會回傳給衛(wèi)星。相比單機(jī)定位,雖然是精度上有所提高,但它同時(shí)也有更多的要求——需要建立基站和流動站。此定位也采用了差分定位技術(shù),即至少同時(shí)有兩臺或者是兩臺以上的接收機(jī)同時(shí)觀察。所以要對兩個(gè)載波信號所測定的傳播時(shí)間進(jìn)行對比,然后根據(jù)所得時(shí)間差就可以精確的確定電離層延遲的大小,而大氣中水蒸氣對GPS衛(wèi)星信號的影響可以