freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于嵌入式linuxgps研究及設(shè)計(jì)-資料下載頁

2025-06-27 20:23本頁面
  

【正文】 e clean”的時(shí)候,編譯器則執(zhí)行后面的“rm –f *.o”這條命令。 Makefile的作用原理下面我們以一個(gè)簡(jiǎn)單的例子來加以說明Makefile的作用原理。 例如我們要編譯三個(gè)源文件:、。如果不使用Makefile文件,那么我們可以用下面的語句來執(zhí)行整個(gè)編譯過程:gcc –o abd 此種編譯方式看似簡(jiǎn)單,其實(shí)存在著很大的缺陷。主要是此種編譯方式重復(fù)工作量太大,、其他未改動(dòng)的源文件也必須跟著重新編譯,這顯然是浪費(fèi)時(shí)間,是不必要的。 然而,我們將上述編譯語句分割成下面的幾行內(nèi)容: ①gcc –c –o ②gcc –c –o ③gcc –c –o ④gcc –o abd 并將它們根據(jù)Makefile的語法規(guī)則正確編寫進(jìn)一個(gè)Makefile文件時(shí),此時(shí)我們可以發(fā)現(xiàn),我們只要重新執(zhí)行上面的①④兩步即可。這樣相對(duì)于上面的不使用Makefile文件的編譯方式而言,避免了重復(fù)編譯。當(dāng)一個(gè)項(xiàng)目的文件有成百上千個(gè)時(shí),那么好處就顯而易見了。 除此之外,因?yàn)樯鲜稣Z句都是編寫進(jìn)Makefile文件的,所以并非要我們一條一條的人工執(zhí)行。在Linux操作系統(tǒng)中,我們只要在shell提示符下進(jìn)入Makefile文件的當(dāng)前目錄,執(zhí)行make指令,即可讓它自動(dòng)完成上述編譯鏈接的過程。 根文件系統(tǒng)[50]的制作 根文件系統(tǒng)首先是一種文件系統(tǒng),但是相對(duì)于普通的文件系統(tǒng),它的特殊之處在于,它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng),內(nèi)核代碼映像文件保存在根文件系統(tǒng)中,而系統(tǒng)引導(dǎo)啟動(dòng)程序會(huì)在根文件系統(tǒng)掛載之后從中把一些基本的初始化腳本和服務(wù)等加載到內(nèi)存中去運(yùn)行。 根文件系統(tǒng)的內(nèi)容比較雜,不可能人工地去輸入實(shí)現(xiàn),通常使用軟件Busybox來制作。其下載地址為。 在嵌入式Linux系統(tǒng)中,構(gòu)建根文件系統(tǒng)的規(guī)則在FHS(Filesystem Hierarchy Standard)文檔中。根文件系統(tǒng)中頂層目錄如表2所示:目錄內(nèi)容dev主要包含一些設(shè)備文件,同時(shí)也包含一些其他特殊文件boot包含引導(dǎo)程序使用到的靜態(tài)文件bin包含必要的用戶命令,都是二進(jìn)制文件lib必要的程序庫(kù)文件,還包含一些內(nèi)核模塊home家目錄,包含普通(非root)用戶的個(gè)人信息etc系統(tǒng)的啟動(dòng)和配置文件opt附加的目錄,用于存放安裝的軟件mnt掛載點(diǎn),用于臨時(shí)掛載文件系統(tǒng)media也是掛載點(diǎn),用于媒體設(shè)備的掛載(比如光盤)sbin必要的系統(tǒng)管理員命令,是二進(jìn)制文件root根用戶的家目錄proc提供虛擬文件系統(tǒng)usr在第二層目錄中包含對(duì)用戶有用的應(yīng)用程序和文件tmp臨時(shí)文件存放處sys系統(tǒng)信息與控制的虛擬文件系統(tǒng)var存放監(jiān)控程序的可變數(shù)據(jù)表2 根文件系統(tǒng)頂層目錄Table2 A file system toplevel directory 上表中列出的目錄,并非所有的都是必須的,有些根據(jù)自己的情況是可以刪掉的。例如所有與多用戶可擴(kuò)展環(huán)境有關(guān)的目錄——/home、/mnt、/opt和/root等等,是可以省略掉的。在簡(jiǎn)化根文件系統(tǒng)的時(shí)候,你甚至可以進(jìn)一步移除/tmp和/var,不過這樣做可能會(huì)妨礙到一些軟件的運(yùn)行,因此并不建議像這樣過分簡(jiǎn)化。 構(gòu)建根文件系統(tǒng)的步驟如下:① 構(gòu)建根文件系統(tǒng)目錄建立/opt/studyarm目錄,并進(jìn)入,在其中添加下列內(nèi)容:!/bin/sh echo Create start... mkdir rootfs cd rootfs echo Create dev... mkdir root dev etc boot tmp var sys proc lib mnt home mkdir etc/ etc/ etc/sysconfig mkdir usr/sbin usr/bin usr/lib usr/modules echo make nodes in dev/console and dev/null mknod m 600 dev/console c 5 1 mknod m 600 dev/null c 1 3 mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/run var/tmp chmod 1777 var/tmp chmod 1777 tmp echo done 保存后在終端執(zhí)行命令“chmod 777 ?!?,使其具有可執(zhí)行權(quán)限。之后再使用命令“./”執(zhí)行此腳本。② 構(gòu)建動(dòng)態(tài)鏈接庫(kù)動(dòng)態(tài)鏈接庫(kù)可以直接從友善之臂提供的根文件包中拷貝過來,即將其lib目錄下的庫(kù)文件拷貝到新建的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文件指定硬件平臺(tái)和交叉編譯器,修改如下:將語句ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 改為:ARCH ?= arm CROSS_COMPILE ?= armlinux 然后執(zhí)行“make menuconfig?!?,對(duì)Busybox進(jìn)行相關(guān)配置。 最后執(zhí)行“make CONFIG_PREFIX=/opt/studyarm/rootfs install?!保幾gBusybox到指定目錄,它會(huì)在rootfs目錄下生成sbin、bin、usr和文件linuxrc的內(nèi)容。④ 建立etc目錄下的配置文件將Fedora9系統(tǒng)中etc目錄下的group、shadow、passwd文件復(fù)制到rootfs/etc目錄下。然后新建etc/sysconfig/HOSTNAME,添加內(nèi)容——“H3Studio”。新建文件etc/inittab,添加如下內(nèi)容:etc/inittab ::sysinit:/etc/s3c2410_serial0::askfirst:/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount a –r 新建文件etc/,并使用“chmod 777 rcS”為其添加執(zhí)行權(quán)限,在其中添加如下內(nèi)容:!/bin/sh PATH=/usr/sbin:/usr/bin: /sbin:/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel echo munt all mount a echo /sbin/mdev/proc/sys/kernel/hotplug mdev s /bin/hostname F /etc/sysconfig/HOSTNAME 新建文件etc/fstab,添加如下內(nèi)容:device mountpoint type Option0 dump fsck order proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 mdev /dev ramfs defaults 0 0 新建文件etc/profile,添加如下內(nèi)容:Ash profile vim:syntax=sh No core file by defaults ulimit S c 0/dev/null 2amp。1 USER=id un LOGNAME=$USER PS1=39。[\u@\h=W]39。 PATH=$PATH HOSTNAME=39。/bin/hostname39。 export USER LOGNAME PS1 PATH⑤ 制作根文件系統(tǒng)映像文件[52] 先安裝好yaffs文件系統(tǒng)制作工具,然后使用命令mkyaffs2image rootfs 。即可生成最后的根文件系統(tǒng)映像文件。至此,根文件系統(tǒng)制作完成,將其下載到開發(fā)板中系統(tǒng)即可成功啟動(dòng),如圖14所示:圖14 開發(fā)板啟動(dòng) Development board start 小結(jié)本章在給出了Linux操作系統(tǒng)構(gòu)建的整個(gè)過程,包括系統(tǒng)啟動(dòng)的介紹,Linux內(nèi)核的配置及編譯,驅(qū)動(dòng)程序的裝載,根文件系統(tǒng)的構(gòu)建等等,為后面的上層開發(fā)打下了基礎(chǔ)。 4 GPS原理 GPS衛(wèi)星信號(hào)的產(chǎn)生 GPS衛(wèi)星向用戶發(fā)送的導(dǎo)航定位信號(hào)是一種調(diào)制波信號(hào),與無線電廣播發(fā)送的調(diào)頻調(diào)幅信號(hào)[53]不一樣,它是通過利用偽隨機(jī)噪聲碼來傳送導(dǎo)航電文的調(diào)相信號(hào)。此信號(hào)包括三種分量,分別是數(shù)據(jù)碼、測(cè)距碼(C/A碼和P碼)和載波信號(hào)(L1和L2)。 GPS導(dǎo)航信號(hào)的產(chǎn)生流程如圖15所示:圖15 導(dǎo)航信號(hào)產(chǎn)生流程 Navigation signal process GPS系統(tǒng)的組成 GPS系統(tǒng)可以概括性的分為三個(gè)部分:空間部分[54]、監(jiān)控部分和用戶部分。下面一一介紹。 空間部分 空間部分,也就是上一小節(jié)提到的導(dǎo)航信號(hào)產(chǎn)生的部分,即人造衛(wèi)星,如圖16所示:圖16 人造衛(wèi)星 Satellite 由于我們要計(jì)算出的定位位置是空間定位的,所以只接受一個(gè)GPS衛(wèi)星產(chǎn)生的數(shù)據(jù)信號(hào)是遠(yuǎn)遠(yuǎn)不夠的。GPS在空間部分設(shè)計(jì)了24顆衛(wèi)星,它們幾乎都在20200km的高度按規(guī)定的軌跡繞地球運(yùn)轉(zhuǎn)。這樣可以隨時(shí)保證在地球上的任何一角都可以觀測(cè)到高度角在15176。以上的衛(wèi)星不少于4顆。 地面監(jiān)控部分[55]在人們發(fā)射的每個(gè)衛(wèi)星上都會(huì)裝有高精度的原子鐘。它的精度可以說是相當(dāng)高了,原子鐘的誤差大概只有十億分之三秒,但即使是這樣,還是會(huì)產(chǎn)生微量的漂移影響到定位精度,所以我們還需在地面建立監(jiān)控站,這樣可以隨時(shí)進(jìn)行衛(wèi)星時(shí)鐘的修正和同步。監(jiān)控站在對(duì)衛(wèi)星軌道進(jìn)行測(cè)量計(jì)算后,得出的誤差會(huì)回傳給衛(wèi)星。地球上一些監(jiān)控站的分布情況如圖17所示。圖17 監(jiān)控站分布 Monitor distribution 用戶終端部分 用戶終端部分[56],即用戶使用的手持設(shè)備,主要用來負(fù)責(zé)接收GPS衛(wèi)星信號(hào),處理并計(jì)算后確定當(dāng)前自身的位置。本課題主要設(shè)計(jì)的就是用戶終端部分這一塊。圖18所示為常見的用戶終端模塊。圖18 用戶終端 The user terminals 作為用戶終端設(shè)備,其地位方法有下列三種:① 單機(jī)定位單機(jī)定位主要用于旅游和航海等方面,它只靠一臺(tái)GPS接收機(jī),定位精度大概在5米到100米之間,不算高。② 修正差分定位(DGPS)DGPS通常用于生產(chǎn)控制、數(shù)據(jù)采集等方面。此定位方法是在單機(jī)定位的基礎(chǔ)上發(fā)展來的。相比單機(jī)定位,雖然是精度上有所提高,但它同時(shí)也有更多的要求——需要建立基站和流動(dòng)站。把接收機(jī)天線放置在一個(gè)已知坐標(biāo)的坐標(biāo)點(diǎn)上,這個(gè)接收機(jī)就被稱為參考站或基站。參考站接收機(jī)開機(jī)后會(huì)先開始跟蹤衛(wèi)星,然后按照單機(jī)定位原理計(jì)算出定位結(jié)果。通過比較觀測(cè)的距離值與已知值,得出的差值就是修正量。修正量在通過無線電廣播出去之后,流動(dòng)站則通過無線電接收裝置,接收參考基站發(fā)送過來的修正量。同時(shí),流動(dòng)站還要跟蹤衛(wèi)星觀測(cè),得到各個(gè)衛(wèi)星的距離,最后利用接收的修正量對(duì)所測(cè)的距離進(jìn)行改更正,從而可以計(jì)算出較高精度的定位結(jié)果。③ 相位差分定位[57] 相位差分定位一般用于機(jī)械控制和較細(xì)致的測(cè)量工作。它與修正差分定位又有些不同,而且還涉及到統(tǒng)計(jì)學(xué)方面的知識(shí)。此定位也采用了差分定位技術(shù),即至少同時(shí)有兩臺(tái)或者是兩臺(tái)以上的接收機(jī)同時(shí)觀察。 相位差分定位的原理是測(cè)定四顆衛(wèi)星的距離,組合起來確定接收機(jī)的位置,與其他定位最大的不同之處是組合的計(jì)算方法。 誤差來源上一節(jié)介紹了三種GPS的定位方法,但不管采用哪位方法定位,哪怕精度再高,或多或少的都會(huì)產(chǎn)生一些誤差,其來源主要有:電離層和大氣延遲誤差[58]、衛(wèi)星與接收機(jī)的時(shí)鐘誤差和多路徑誤差。 電離層和大氣延遲誤差衛(wèi)星發(fā)射的信號(hào)在穿過電離層時(shí),速度會(huì)有所降低,這就如同光線穿過水里產(chǎn)生折射,如圖19所示。圖19 信號(hào)折射 Signal refraction由于在大氣層的延遲效果影響到了衛(wèi)星信號(hào)的速度,這就對(duì)GPS的距離計(jì)算產(chǎn)生了影響(因?yàn)楣庵挥性谡婵罩兴俣仁浅?shù))。而且麻煩的是,電離層延遲的影響還并不是一個(gè)常數(shù),其值與多種因素有關(guān),比如水蒸氣、衛(wèi)星高度、電離層密度等等。目前,要完全消除這種誤差還不太可能,只有兩種減小電離層誤差的方法:一種是取得電離層影響的平均值,然后在計(jì)算距離時(shí)加以改正;還有一種就是采用“雙頻”GPS接收機(jī)[59]。因?yàn)楫?dāng)衛(wèi)星信號(hào)穿過電離層時(shí),它的速度降低的多少與其頻率的高低呈現(xiàn)反比。所以要對(duì)兩個(gè)載波信號(hào)所測(cè)定的傳播時(shí)間進(jìn)行對(duì)比,然后根據(jù)所得時(shí)間差就可以精確的確定電離層延遲的大小,而大氣中水蒸氣對(duì)GPS衛(wèi)星信號(hào)的影響可以通過
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1