嵌入式linux開發(fā)基于arm無(wú)線通訊實(shí)驗(yàn)at_第1頁(yè)
嵌入式linux開發(fā)基于arm無(wú)線通訊實(shí)驗(yàn)at_第2頁(yè)
嵌入式linux開發(fā)基于arm無(wú)線通訊實(shí)驗(yàn)at_第3頁(yè)
嵌入式linux開發(fā)基于arm無(wú)線通訊實(shí)驗(yàn)at_第4頁(yè)
嵌入式linux開發(fā)基于arm無(wú)線通訊實(shí)驗(yàn)at_第5頁(yè)
已閱讀5頁(yè),還剩146頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目 錄第一章開發(fā)預(yù)備知識(shí)71.1 系統(tǒng)和開發(fā)71.1.1 系統(tǒng)的定義71.1.2 系統(tǒng)的發(fā)展71.1.3 系統(tǒng)的技術(shù)特點(diǎn)81.2 AT91RM9200 和Linux操.101.2.1 AT91RM9200 處理器101.2.2 Linux操 .101.3 Linux常見(jiàn)術(shù)語(yǔ)和常用命令121.3.1 Linux常見(jiàn)術(shù)語(yǔ)121.3.2 Linux常用命令131.4 gcc編譯器和Makefile221.4.1 gcc編譯器221.4.2 Makefile261.5 實(shí)驗(yàn)板硬件系統(tǒng)分析291.6 SemitARM9200 實(shí)驗(yàn)箱簡(jiǎn)介30第二章 系統(tǒng)開發(fā)環(huán)境實(shí)驗(yàn)332.1 引言332.2 基本原理33

2、2.2.1 宿主機(jī)開發(fā)環(huán)境332.2.2 文件與目錄結(jié)構(gòu)372.2.3 Linux系統(tǒng)的配置編譯和文件系統(tǒng)392.2.4 Linux系統(tǒng)在地址空間中的位置402.2.5 中斷412.2.6 GPIO432.2.7 總線432.2.8 在實(shí)驗(yàn)板上開發(fā)應(yīng)用程序432.2.9 如何創(chuàng)建編譯 的應(yīng)用452.2.10 加入應(yīng)用程序的ramdisk文件系統(tǒng)映像制作462.3 實(shí)驗(yàn)與環(huán)境472.4 實(shí)驗(yàn)內(nèi)容和步驟472.5 預(yù)習(xí)要求512.6 實(shí)驗(yàn)報(bào)告要求512.7 思考題51第三章 LINUX內(nèi)核編譯、及運(yùn)行實(shí)驗(yàn).523.1 引言523.2 基本原理523.2.1 Linux系統(tǒng)的燒寫523.2.2 內(nèi)核

3、至RAM中直接啟動(dòng)553.3 實(shí)驗(yàn)與環(huán)境563.4 實(shí)驗(yàn)內(nèi)容與步驟563.5 預(yù)習(xí)要求593.6 實(shí)驗(yàn)報(bào)告要求593.7 思考題60第四章 UART數(shù)據(jù)收發(fā)實(shí)驗(yàn)614.1 引言614.2 實(shí)驗(yàn)原理611524.2.1 串口通信協(xié)議614.2.2 串口的基本任務(wù)614.2.3 串口電路的組成614.2.4 有關(guān)串行通信的物理標(biāo)準(zhǔn)624.3 實(shí)驗(yàn) 與 環(huán)境624.4 實(shí)驗(yàn)內(nèi)容與步驟624.5 預(yù)習(xí)要求644.6 實(shí)驗(yàn)報(bào)告要求644.7 實(shí)驗(yàn)思考題64第五章 U盤掛載及讀寫實(shí)驗(yàn)655.1 引言655.2 基本原理655.2.1 USB 的邏輯結(jié)構(gòu)655.2.2 USB通信協(xié)議655.3 實(shí)驗(yàn) 與 環(huán)

4、境665.4 實(shí)驗(yàn)內(nèi)容與步驟665.5 預(yù)習(xí)要求675.6 實(shí)驗(yàn)報(bào)告要求675.7 實(shí)驗(yàn)思考題68第六章GPIO驅(qū)動(dòng)實(shí)驗(yàn)696.1 引言696.2 基本原理696.2.1 GPIO696.2.2 GPIO的優(yōu)點(diǎn)696.2.3 SemitARM9200 開發(fā)板上的GPIO口 .696.3 實(shí)驗(yàn)與環(huán)境696.4 實(shí)驗(yàn)內(nèi)容與步驟696.5 預(yù)習(xí)要求716.6 實(shí)驗(yàn)報(bào)告要求716.7 實(shí)驗(yàn)思考題71第七章實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)727.1 引言727.2 基本原理727.2.1 實(shí)時(shí)時(shí)鐘的功能727.2.2 計(jì)算機(jī)內(nèi)部時(shí)鐘的運(yùn)行機(jī)制727.3 實(shí)驗(yàn) 與環(huán)境727.4 實(shí)驗(yàn)內(nèi)容727.5 預(yù)習(xí)要求747.6 實(shí)驗(yàn)報(bào)

5、告要求747.7 實(shí)驗(yàn)思考題74第八章 TCP/UDP實(shí)驗(yàn)758.1 引言758.2 實(shí)驗(yàn)原理758.2.1 TCP/IP協(xié)議概述758.2.2 網(wǎng)絡(luò)通信原理768.2.3 TCP協(xié)議768.2.4 UDP協(xié)議778.2.5 端分配788.3 實(shí)驗(yàn)與環(huán)境798.4 實(shí)驗(yàn)內(nèi)容與步驟798.5 預(yù)習(xí)要求848.6 實(shí)驗(yàn)報(bào)告要求848.7 實(shí)驗(yàn)思考題84第九章 藍(lán)牙無(wú)線通信系統(tǒng)實(shí)驗(yàn)859.1 引言859.2 基本原理859.2.1 什么是藍(lán)牙859.2.2 藍(lán)牙的起源859.2.3 藍(lán)牙通訊技術(shù)的特點(diǎn)869.2.4 藍(lán)牙的發(fā)展869.3 實(shí)驗(yàn)與 環(huán)境869.4 實(shí)驗(yàn)內(nèi)容與步驟869.5 預(yù)習(xí)要求89

6、9.6 實(shí)驗(yàn)報(bào)告要求909.7 實(shí)驗(yàn)思考題90第十章 GSM/GPRS無(wú)線通信系統(tǒng)實(shí)驗(yàn)9110.1 引言9110.2 基本原理9110.2.1 GSM的涵義9110.2.2 GSM的發(fā)展?fàn)顩r91與 環(huán)境9210.4 實(shí)驗(yàn)內(nèi)容與步驟9310.5 預(yù)習(xí)要求9710.6 實(shí)驗(yàn)報(bào)告要求9710.7 實(shí)驗(yàn)思考題97第十一章 IEEE802.11B/G無(wú)線通信系統(tǒng)實(shí)驗(yàn)9911.1 引言9911.2 基本原理9911.2.1 802.11.9911.2.2 802.11g10111.3 實(shí)驗(yàn)與環(huán)境10111.4 實(shí)驗(yàn)內(nèi)容與步驟10111.5 預(yù)習(xí)要求10411.6 實(shí)驗(yàn)報(bào)告要求10411.7 實(shí)驗(yàn)思考題10

7、4第十二章 ZIGBEE無(wú)線通信系統(tǒng)實(shí)驗(yàn)10512.1 引言10512.2 基本原理10512.2.1 什么是Zigbee10512.2.2 Zigbee的起源10512.2.3 Zigbee自身的技術(shù)優(yōu)勢(shì)10512.2.4 Zigbee聯(lián)盟10612.3 實(shí)驗(yàn)與環(huán)境10612.4 實(shí)驗(yàn)內(nèi)容與步驟10612.5 預(yù)習(xí)要求10812.6 實(shí)驗(yàn)報(bào)告要求10812.7 實(shí)驗(yàn)思考題108第十三章 CDMA2000 1X無(wú)線通信系統(tǒng)實(shí)驗(yàn)10913.1 引言10913.2 基本原理10913.2.1 CDMA200010913.3 實(shí)驗(yàn) 與 環(huán)境11013.4 實(shí)驗(yàn)內(nèi)容與步驟11013.5 預(yù)習(xí)要求115

8、13.6 實(shí)驗(yàn)報(bào)告要求11513.7 實(shí)驗(yàn)思考題116第十四章 GPS無(wú)線實(shí)驗(yàn)11714.1 引言11714.2 基本原理11714.2.1 GPS概述11714.2.2 GPS的前身11714.2.3 GPS. 11814.2.4 GPS原理11814.2.5 GPS數(shù)據(jù)格式11914.3 實(shí)驗(yàn)與環(huán)境12114.4 實(shí)驗(yàn)內(nèi)容與步驟12114.5 預(yù)習(xí)要求12214.6 實(shí)驗(yàn)報(bào)告要求12214.7 實(shí)驗(yàn)思考題123第十五章 藍(lán)牙網(wǎng) 統(tǒng)綜合開發(fā)案例12415.1 引言12415.2 實(shí)驗(yàn)流程12415.3 實(shí)驗(yàn) 與 環(huán)境12515.4 實(shí)驗(yàn)內(nèi)容與步驟12515.5 預(yù)習(xí)要求12715.6 實(shí)驗(yàn)報(bào)

9、告要求12715.7 實(shí)驗(yàn)思考題127第十六章 WSN與廣域網(wǎng)融合系統(tǒng)綜合開發(fā)案例12816.1 引言12816.2 實(shí)驗(yàn)流程12816.3 基本原理12916.3.1 WSN12916.3.2 廣域網(wǎng)12916.4 實(shí)驗(yàn)與環(huán)境12916.5 實(shí)驗(yàn)內(nèi)容與步驟12916.6 預(yù)習(xí)要求13216.7 實(shí)驗(yàn)報(bào)告要求13216.8 思考題132第十七章 無(wú)線傳輸系統(tǒng)綜合開發(fā)案例13417.1 引言13417.2 實(shí)驗(yàn)流程134與 環(huán)境13517.4 實(shí)驗(yàn)內(nèi)容與步驟13517.5 預(yù)習(xí)要求13917.6 實(shí)驗(yàn)報(bào)告要求13917.7 實(shí)驗(yàn)思考題139第十八章 基于多網(wǎng)融合的綜合接入系統(tǒng)開發(fā)案例 14118

10、.1 引言14118.2 實(shí)驗(yàn)流程14118.3 基本原理14218.3.1 多網(wǎng)融合的涵義14218.4 實(shí)驗(yàn) 與 環(huán)境14218.5 實(shí)驗(yàn)內(nèi)容與步驟14318.6 預(yù)習(xí)要求15118.7 實(shí)驗(yàn)報(bào)告要求15118.8 思考題151第十九章 其他可開發(fā)案例152第一章 開發(fā)預(yù)備知識(shí)1.1 系統(tǒng)和開發(fā)1.1.1 系統(tǒng)的定義在當(dāng)前數(shù)字 和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后 PC(Post-PC) , 系統(tǒng)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)藝術(shù)以及人們的日常生活等 中。隨著國(guó)內(nèi)外各種的進(jìn)一步開發(fā)和推廣,技術(shù)越來(lái)越和人們的生活緊密結(jié)合。在 PC ,可能有人從來(lái)沒(méi)有接觸過(guò)計(jì)算機(jī);但是在后 P

11、C ,他就不可能會(huì)接觸不到 系統(tǒng),因?yàn)?系統(tǒng)可能 于生活的方方面面中,從家里的洗衣機(jī)、電冰箱,到作為交通工具的自行車、小汽車,到辦公室里的 會(huì)議系統(tǒng)等等,都屬于可以使用 技術(shù)開發(fā)和改造的 。何謂 系統(tǒng),系統(tǒng)被定義為:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的計(jì)算機(jī)系統(tǒng)。系統(tǒng)應(yīng)用的領(lǐng)域無(wú)處不在,現(xiàn)在市場(chǎng)上的,PDA,MP3 器等消費(fèi)都是系統(tǒng) 系統(tǒng)還有應(yīng)用于很多領(lǐng)域如電信網(wǎng)絡(luò) 路由器, 交換機(jī),網(wǎng)關(guān)),工業(yè)醫(yī)療()等。在未來(lái)的里面,使用系統(tǒng)的情形會(huì)越來(lái)越多,人可以不接觸電腦,但是不接觸系統(tǒng)的情況是不 的。系統(tǒng)可能 于您生活的各個(gè)角落:您

12、家里可能就是通過(guò)一個(gè) 系統(tǒng)的中心,管理您家里的所有家電,家庭和外界網(wǎng)絡(luò)的連接,的生活更為方便;您出門旅行的時(shí)候,在飯店的門把手里面安裝有電子識(shí)別 系統(tǒng),利用系統(tǒng)根據(jù)您手上的特征,時(shí)候應(yīng)該給您開門;在坐車的時(shí)候,汽車電腦可以通過(guò) GPS(全球)來(lái)的具置,利用嵌入式智能系統(tǒng)應(yīng)該走哪條路比較方便;如果您一不生病住院,在醫(yī)院的儀器里面都可能有 系統(tǒng),用來(lái)選擇和儀器,提高您手術(shù)的率和方便程度。1.1.2 系統(tǒng)的發(fā)展實(shí)際上 系統(tǒng)這個(gè)概念很早以前就已經(jīng) 了。在通訊方面, 系統(tǒng)在1960 年就被用于對(duì)機(jī)械交換的,當(dāng)時(shí)被稱為“式程序系統(tǒng)”(Stored Program Control)。那個(gè)時(shí)候,計(jì)算機(jī)一詞卻還

13、不是很普遍,而式程序主要是指用于 程序及日常訊息的內(nèi)存部分。這些邏輯數(shù)據(jù),而不是將其寫入硬盤,這個(gè)概念的確具有 性的意義。這個(gè)時(shí)候還沒(méi)有出現(xiàn)操 的概念,對(duì)每一個(gè)應(yīng)用要提供一整個(gè)計(jì)算機(jī)的設(shè)計(jì)。后來(lái)微處理器的出現(xiàn),它用來(lái)提供一個(gè)計(jì)算引擎。利用微處理器,組成了一個(gè)基于由總線連接起來(lái)的計(jì)算機(jī)硬件體系結(jié)構(gòu),并且提供了一個(gè)通用功能的編程模型,從而簡(jiǎn)化了編程。系統(tǒng)的概念是在 1970 年左右出現(xiàn)的。不過(guò)在當(dāng)時(shí),大部分都是由匯編語(yǔ)言完成的,而且這些匯編程序只能用于某一種固定的微處理器。當(dāng)這種微處理器過(guò)時(shí)之后, 這種 系統(tǒng)就沒(méi)有用了;并且還要開始對(duì)新的微處理器寫新的 系統(tǒng)。這個(gè)時(shí)候的 系統(tǒng)很多都不是操 ,他們只

14、是為了實(shí)現(xiàn)某個(gè) 功能,使用一個(gè)簡(jiǎn)單的循環(huán) 對(duì)外界的 請(qǐng)求進(jìn)行處理。不可否認(rèn),這對(duì)一些簡(jiǎn)單的系統(tǒng)而言是足夠的。但是當(dāng)我們的系統(tǒng)越來(lái)越復(fù)雜,利用的范圍越來(lái)越廣泛的時(shí)候,沒(méi)有操作系統(tǒng)就成為了一個(gè)最大的缺點(diǎn)了,因?yàn)樾枰砑右豁?xiàng)新功能都可能需要從頭開始設(shè)計(jì), 否則只能增加開發(fā)成本和系統(tǒng)復(fù)雜度。C 語(yǔ)言的出現(xiàn)使得我們的操開發(fā)變得越來(lái)越簡(jiǎn)單。我們可以利用 C 語(yǔ)言很快的寫出一個(gè)小型的、的操 。眾所知之,C 語(yǔ)言的作者 Dennis M. Ritchie 和Brian W. Kernighan 利用它寫出了著名的 UNIX 操,直接影響了這三十年計(jì)算機(jī)業(yè)的發(fā)展。同時(shí),對(duì)開發(fā) 系統(tǒng)來(lái)說(shuō),在效率和速度上都提高了很

15、多。從上世紀(jì)八十年始,開始出現(xiàn)各種各樣的商業(yè)用操 ,這些操作系統(tǒng)大部分都是為專有系統(tǒng)而開發(fā),從而形成了現(xiàn)在多種形式的操 百家的局面。如 VxWorks,pSOS,Neculeus 和 Windows CE 等等?,F(xiàn)在,網(wǎng)絡(luò)在人們生活中的應(yīng)用越來(lái)越廣泛,自然,在系統(tǒng)中使用網(wǎng)絡(luò)系統(tǒng)也成為了一項(xiàng)基本的要求。把網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)在系統(tǒng)中,對(duì)日常生活中的需要極有意義。利用系統(tǒng)中的網(wǎng)絡(luò)功能,可以實(shí)現(xiàn)下面我將要描述的電器這一即將取代 PC 在后 PC 占據(jù)市場(chǎng)主體的商品。我們知道,如果在上面所說(shuō)的那種采用循環(huán) 的系統(tǒng)中加入網(wǎng)絡(luò)協(xié)議棧,復(fù)雜度會(huì)呈指數(shù)級(jí)增長(zhǎng)。這種情況下,在 操 中增加網(wǎng)絡(luò)協(xié)議模塊要方便得多,并且還

16、能方便各種網(wǎng)絡(luò)應(yīng)用程序的不同平臺(tái)移植。我們知道,如果在上面所說(shuō)的那種采用循環(huán) 的系統(tǒng)中加入網(wǎng)絡(luò)協(xié)議棧, 復(fù)雜度會(huì)呈指數(shù)級(jí)增長(zhǎng)。這種情況下,在操 中增加網(wǎng)絡(luò)協(xié)議模塊要方便得多,并且還能方便各種網(wǎng)絡(luò)應(yīng)用程序的不同平臺(tái)移植。1.1.3 系統(tǒng)的技術(shù)特點(diǎn)系統(tǒng)通常的基本運(yùn)行環(huán)境的硬件和操 兩部分 系統(tǒng)的運(yùn)行環(huán)境和應(yīng)用場(chǎng)合決定了系統(tǒng)具有區(qū)別于其它操的一些特點(diǎn)。(1) 處理器處理器可以分為三類: 微處理器、 微器、 DSP(Digital Signal Processor)。微處理器就是和通用計(jì)算機(jī)的微處理器對(duì)應(yīng)的 CPU。在應(yīng)用中,是將微處理器裝配在專門設(shè)計(jì)的電路板上,在母板上只保留和相關(guān)的功能即可,這樣可

17、以滿足系統(tǒng)體積小和功耗低的要求。目前的處理器主要 :PowerPC、Motorola 68000、ARM 系列等等。微器又稱為單片機(jī), 它將 CPU、器(少量的 RAM、ROM 或兩者都有)和其它外設(shè)封裝在同一片集成電路里。常見(jiàn)的有 8051。 DSP 專門用來(lái)對(duì)離散時(shí)間信號(hào)進(jìn)行極快的處理計(jì)算,提高編譯效率和執(zhí)行速度。在數(shù)字濾波、FFT、譜分析、圖像處理的分析等領(lǐng)域,DSP 正在大量進(jìn)入 市場(chǎng)。(2) 微內(nèi)核結(jié)構(gòu)大多數(shù)操至少被劃分為內(nèi)核層和應(yīng)用層兩個(gè)層次。內(nèi)核只提供基本的功能, 如建立和管理進(jìn)程、提供文件系統(tǒng)、管理等,這些功能以系統(tǒng)調(diào)用方式提供給用戶。一些桌面操 ,如 Windows、Linu

18、x 等,將許多功能引入內(nèi)核,操的內(nèi)核變得越來(lái)越大。內(nèi)核變大使得占用的資源增多,剪裁起來(lái)很麻煩。大多數(shù)操 采用了微內(nèi)核結(jié)構(gòu),內(nèi)核只提供基本的功能,比如:任務(wù)的調(diào)度、任務(wù)之間的通信與同步、內(nèi)存管理、時(shí)鐘。其它的應(yīng)用組件,比如網(wǎng)絡(luò)功能、文件系統(tǒng)、GUI 系統(tǒng)等均工作在用戶態(tài),以系統(tǒng)進(jìn)函數(shù)調(diào)用的方式工作。因而系統(tǒng)都是可裁減的,用戶可以根據(jù)的需要選用相應(yīng)的組件。(3) 任務(wù)調(diào)度系統(tǒng)為多任務(wù)多進(jìn)程的操 。多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際是靠 CPU 在多個(gè)任務(wù)之間切換、調(diào)度。每個(gè)任務(wù)都有其優(yōu)先級(jí),不同的任務(wù)優(yōu)先級(jí)可能相同也可能不同。任務(wù)的調(diào)度有三種方式:可搶占式調(diào)度、不可搶占式調(diào)度和時(shí)間片輪轉(zhuǎn)調(diào)度。不可搶占式調(diào)度是指

19、,一個(gè)任務(wù)一旦獲得 CPU 就獨(dú)占 CPU 運(yùn)行,除非由于某種,它決定放棄 CPU 的使用權(quán);可搶占式調(diào)度是基于任務(wù)優(yōu)先級(jí)的,當(dāng)前正在運(yùn)行的任務(wù)可以隨時(shí)讓位給優(yōu)先級(jí)更高的處于就緒態(tài)的其它任務(wù);當(dāng)兩個(gè)或兩個(gè)以上任務(wù)有同樣的優(yōu)先級(jí), 不同任務(wù)輪轉(zhuǎn)地使用 CPU,直到系統(tǒng)分配的 CPU 時(shí)間片用完,這就是時(shí)間片輪轉(zhuǎn)調(diào)度。目前,大多數(shù)操對(duì)不同優(yōu)先級(jí)的任務(wù)采用基于優(yōu)先級(jí)的搶占式調(diào)度法,對(duì)相同優(yōu)先級(jí)的任務(wù)則采用時(shí)間片輪轉(zhuǎn)調(diào)度法。(4) 硬實(shí) 軟實(shí)時(shí)有些 系統(tǒng)對(duì)時(shí)間的要求較高,稱之為實(shí)時(shí)系統(tǒng)。有兩種類型的實(shí)時(shí)系統(tǒng):硬實(shí)時(shí)系統(tǒng)和軟實(shí)時(shí)系統(tǒng)。軟實(shí)時(shí)系統(tǒng)并不要求限定某一任務(wù)必須在一定的時(shí)間內(nèi)完成, 只要求各任務(wù)運(yùn)

20、行得越快越好;硬實(shí)時(shí)系統(tǒng)對(duì)系統(tǒng)響應(yīng)時(shí)間有嚴(yán)格要求,一旦系統(tǒng)響應(yīng)時(shí)間不能滿足,就可能會(huì)引起系統(tǒng) 或致命的錯(cuò)誤, 在工業(yè) 中應(yīng)用較多。(5) 內(nèi)存管理有內(nèi)存管理單元(MMU)的處理器設(shè)計(jì)的一些桌面操 ,如 Windows、Linux,使用了虛擬器的概念。虛擬內(nèi)存地址被送到 MMU。在這里,虛擬地址被映射為物理地址,實(shí)際器被分割為相同大小的頁(yè)面,采用分頁(yè)的方式載入進(jìn)程。一個(gè)程序在運(yùn)行之前,沒(méi)有必要全部裝入內(nèi)存,而是僅將那些當(dāng)前要運(yùn)行的部分頁(yè)面裝入內(nèi)存運(yùn)行。大多數(shù) 系統(tǒng)沒(méi)有 MMU 的處理器設(shè)計(jì),不能使用處理器的虛擬內(nèi)存管理技術(shù),采用的是實(shí)器管理策略。因而對(duì)于內(nèi)存的是直接的,它對(duì)地址的不需要經(jīng)過(guò) MM

21、U,而是直接送到地址線上輸出,所有的地址都是實(shí)際的物理地址;而且,大多數(shù)操 對(duì)內(nèi)存空間沒(méi)有保護(hù),各個(gè)進(jìn)程實(shí)際上共享一個(gè)運(yùn)行空間。一個(gè)進(jìn)程在執(zhí)行前,系統(tǒng)必須為它分配足夠的連續(xù)地址空間,然后全部載入主 器的連續(xù)空間。由此可見(jiàn),對(duì)于沒(méi)有 MMU 系統(tǒng)的開發(fā) 不得不參與系統(tǒng)的內(nèi)存管理。從編譯內(nèi)核開始,開發(fā)必須告訴系統(tǒng)這塊開發(fā)板到底擁有多少內(nèi)開發(fā)應(yīng)用程序時(shí),必須考慮內(nèi)存的分配情況并關(guān)注應(yīng)用程序需要運(yùn)行空間的大小。另外,由于采用實(shí) 器管理策略,用戶程序同內(nèi)核以及其它用戶程序在一個(gè)地址空間,程序開發(fā)時(shí)要保證不其它程序的地址空間,以使得程序不至于破壞系統(tǒng)的正常工作,或?qū)е缕渌绦虻倪\(yùn)行異常;因而,系統(tǒng)的開發(fā)對(duì)

22、 中的一些內(nèi)存操作要格外。(6) 內(nèi)核加載方式操內(nèi)核可以在 Flash 上直接運(yùn)行,也可以加載到內(nèi)存中運(yùn)行。Flash 的運(yùn)行方式,是把內(nèi)核的可執(zhí)行映像燒寫到 Flash 上,系統(tǒng)啟動(dòng)時(shí)從 Flash 的某個(gè)地址開始執(zhí)行。這種實(shí)際上是很多系統(tǒng)所采用的 。內(nèi)核加載方式是把內(nèi)核的壓縮文件存放在 Flash 上,系統(tǒng)啟動(dòng)時(shí)壓縮文件在內(nèi)存里解壓,然后開始執(zhí)行。這種方式相對(duì)復(fù)雜一些,但是運(yùn)行速度可能更快,因?yàn)?RAM 的存取速率要比 Flash 高。,由于 系統(tǒng)的內(nèi)存管理機(jī)制 操對(duì)用戶程序通常采用靜態(tài)鏈接的形式。在系統(tǒng)中,應(yīng)用程序和操內(nèi)核代碼編譯、鏈接生成一個(gè)二進(jìn)制影像文件來(lái)運(yùn)行。1.2 AT91RM9

23、200 和Linux操1.2.1 AT91RM9200 處理器SemitARM9200 開發(fā)板由 板和底板組成, 板上集成了 Atmel 的AT91RM9200 處理器,64M SDRAM 以及 16M 的 FLASH,為您的應(yīng)用研發(fā)提供了足夠的空間。底板上則提供以下外設(shè)接口:兩個(gè) RS-232 串口(COM),一個(gè) USB Host 接口,兩個(gè) USB Device,一個(gè) 10M/100M 自適應(yīng)以太網(wǎng)接口,一個(gè) LCD 接口。板和底板配合即 一個(gè)最小的完整應(yīng)用系統(tǒng)。系統(tǒng)具有體積小、耗電低、處理能力強(qiáng)、等特點(diǎn),能夠裝載和運(yùn)行 Linux 操。用戶可以在這個(gè)系統(tǒng)平臺(tái)上進(jìn)行 軟件開發(fā)。AT91R

24、M9200 具有豐富的接口資源:l 16-KB 數(shù)據(jù)Cache,16-KB 指令 Cache,寫緩沖區(qū);l 虛擬內(nèi)存管理單元 NMU;l 帶有 Debug 調(diào)試的在片 Emulator;l Mid-level Implementation Embedded Trace Macrocell;l 16KB 的內(nèi)部 SRAM 和 128KB 的內(nèi)部 ROM;l 外部總線接口(EBI);l 支持 SDRAM,SRAM,Burst Flash,和 CompactFlash,SmartMedia and NAND Flash 的無(wú)縫連接;l 增強(qiáng)型的時(shí)鐘產(chǎn)生器和電源管理單元;l 帶有兩個(gè) PLL 的兩個(gè)在

25、片振蕩器;l 慢速的時(shí)鐘操作模式和電源優(yōu)化能力;l 4 個(gè)可編程的外部時(shí)鐘信號(hào);l周期性中斷看門狗和第二計(jì)數(shù)器的系統(tǒng)定時(shí)器;l 帶有中斷的實(shí)時(shí)時(shí)鐘;l 帶有 8 個(gè)優(yōu)先級(jí)可單個(gè)中斷源Spurious 中斷保護(hù)的先進(jìn)中斷器;l 7 個(gè)外部中斷源和一個(gè)快速中斷源;l 四個(gè) 32 位的 PIO 器可以達(dá)到 122 個(gè)可編程 I/O 引腳(每個(gè)都有輸入可中斷及開路的輸出能力);l 20 通道的外部數(shù)據(jù)器(DMA);l 10/100M 的以太網(wǎng)接口;l 兩個(gè)全速的 USB2.0 主接口和一個(gè)從口;l 四個(gè) USART;l 3 通道 16 位的定時(shí)/計(jì)數(shù)器(TC);l 兩線接口(TWI);l IEEE 1

26、149.1 JTAG 標(biāo)準(zhǔn)掃描接口;1.2.2 Linux操 隨著微處理器的產(chǎn)生,價(jià)格低廉、結(jié)構(gòu)小巧的 CPU 和外設(shè)連接提供了可靠的硬件架構(gòu),那么限制系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在了方面。盡管從八十年代末開始,陸續(xù)出現(xiàn)了一些操,比較著名的有 Vxwork、pSOS、Neculeus 和Windows CE。但這些操 都是商業(yè)化 ,其高昂的價(jià)格使許多做低端的小公司望而卻步;而且,源代碼封閉性也大大限制了開發(fā)者的積極性。另外,結(jié)合國(guó)內(nèi)實(shí)情,當(dāng)前對(duì) 操 的大力支持,也為源代碼開放的 Linux 的推廣提供了廣闊的發(fā)展前景。還有,對(duì)上層應(yīng)用開發(fā)者而言,系統(tǒng)需要的是一套高度簡(jiǎn)練、界面友善、質(zhì)量可靠、應(yīng)用廣

27、泛、易開發(fā)、 多任務(wù),并且價(jià)格低廉的操。在的將來(lái),從冰箱到收音機(jī)都會(huì)有內(nèi)置處理器。因?yàn)?Linux 的開放性,許多人認(rèn)為 Linux 非常適合多數(shù) Internet 。他們認(rèn)為 Linux 可以支持不同的,支持不同的配置。Linux 對(duì)廠商不偏不倚而且成本極地,能夠很快成為用于各種的操。如今,業(yè)界已經(jīng)達(dá)成共識(shí):即 Linux 是大勢(shì)所趨,其巨大的市場(chǎng)潛力與醞釀的無(wú)限商機(jī)必然會(huì)吸引眾多的廠商進(jìn)入這一領(lǐng)域。操 主要有 Palm OS,Windows CE,EPOC,LinuxCE,QNX,ECOS,LYNX,高端 系統(tǒng)要求許多高級(jí)的功能,如圖形用戶界面和網(wǎng)絡(luò)支持。很多高端 RTOS 供應(yīng)商已經(jīng)提供

28、了這些功能,但其價(jià)格也很高端, 人難以接受。微軟的 Windows CE 也有此類似功能,卻不具備大多數(shù)系統(tǒng)要求的實(shí)時(shí)性能,而且難以移植,也曾有人想以 DOS 為基礎(chǔ)用單獨(dú)的第工具拼成一個(gè)系統(tǒng),但這種努力將是白費(fèi)?,F(xiàn)在需要的是一個(gè)便宜、成熟并且提供高端 系統(tǒng)所必須特性的操 , Linux 操以價(jià)格低廉、功能強(qiáng)大又易于移植而正在被廣泛采用,成為新興的力量,所以,眾多商家紛紛轉(zhuǎn)向了 Linux。Linux 為操 提供了一個(gè)極有吸引力的選擇,它是個(gè)和 UNIX 相似、以 為基礎(chǔ)的、完全內(nèi)存保護(hù)、多任務(wù)多進(jìn)程的操。Linux 支持廣泛的計(jì)算機(jī)硬件, MOTOROLA,X86,Alpha,MIPS,PP

29、C,ARM,NEC 等現(xiàn)有的大部分。,源碼全部公開,任何人可以修改并在 GNU 通用公共證(GNU General Public License)下 ,所以開發(fā) 可以對(duì)操 進(jìn)行定制,再也不必?fù)?dān)心象 Microsoft Windows 操中“后門”的威脅。同時(shí)由于有 GPL 的,大家開發(fā)的東西大都相互兼容 之路。Linux 用戶遇到問(wèn)題時(shí)可以通過(guò) Internet 向網(wǎng)上成千上萬(wàn)的 Linux 開發(fā)者請(qǐng)教,這使最的問(wèn)題也有辦法解決。Linux 帶有 UNIX 用戶熟悉的完善的開發(fā)工具,幾乎所有的 UNIX 系統(tǒng)的應(yīng)用都已經(jīng)移植到了 Linux 上。Linux 還提供了強(qiáng)大的網(wǎng)絡(luò)功能,有多種可選擇

30、窗口管理器(X windows)。其強(qiáng)大的語(yǔ)言編譯器 gcc、g+等也可以很容易得到。不但成熟完善、而且使用方便。系統(tǒng)選擇 Linux 作為操,主要有以下幾個(gè):(1) Linux 可應(yīng)用于多種硬件平臺(tái)。目前 Linux 已經(jīng)被移植到 PPC、ARM、MIPS 等多種硬件平臺(tái),這對(duì)受開銷、時(shí)間限制的研究與開發(fā)項(xiàng)目是很有吸引力的。原型可以在標(biāo)準(zhǔn)平臺(tái)上開發(fā)然后移植到具體的硬件上,加快了 與硬件的開發(fā)過(guò)程。(2) Linux 可以隨意地配置不需要任何的證或商家的合作 。唯一的限制是開發(fā)者必須做出對(duì) Linux 社區(qū)有益的改動(dòng)。(3) Linux 是的,源代碼可以得到。這使最吸引人的。,這會(huì)節(jié)省大量的開

31、發(fā)費(fèi)用。(4) Linux 的微內(nèi)核直接提供網(wǎng)絡(luò)支持,而不必象其他操要 TCP/IP 協(xié)議包。(5) Linux 的高度模塊化使添加部件非常容易。(6) Linux 在臺(tái)式機(jī)上的,也保證了 Linux 在系統(tǒng)中的輝煌前景。(7) Linux 與 UNIX 系統(tǒng)兼容,開放源代碼。它原本被設(shè)計(jì)為桌面系統(tǒng),現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域。而更大的影響在于它正逐漸的應(yīng)用于 系統(tǒng)領(lǐng)域。(8) Linux 是一個(gè) 開放的世界,在 Linux(無(wú)論 PC 還是系統(tǒng))上進(jìn)行開發(fā)都可以在廣袤的網(wǎng)絡(luò)資源中獲取幫助。1.3 Linux常見(jiàn)術(shù)語(yǔ)和常用命令1.3.1 Linux常見(jiàn)術(shù)語(yǔ)LinuxLinux 是一種 UNIX

32、操的克隆,它(的內(nèi)核)由 Linus Torvalds 以及網(wǎng)絡(luò)上組織松散的 隊(duì)伍一起從零開始編寫而成。 Linux 的目標(biāo)是保持和 POSIX 的兼容。Linux 具備現(xiàn)代一切功能完整的 UNIX 系統(tǒng)所具備的全部特征,其中真正的多任務(wù)、虛擬內(nèi)存、共享庫(kù)、需求裝載、共享的寫時(shí)程序執(zhí)行、優(yōu)秀的內(nèi)存管理以及 TCP/IP 網(wǎng)絡(luò)支持等。Linux 的遵守 GNU 的通用公共證。Linux 起初為基于 386/486 的 PC 機(jī)開發(fā),但現(xiàn)在,Linux 也可以運(yùn)行在 DEC Alpha、S arc、M68000,以及 MIPS 和 PowerPC 等計(jì)算機(jī)上。POSIXPOSIX 表示可移植操接口

33、(Portable Operating System Interface ,縮寫為POSIX 是為了讀音更像 UNIX)。電氣和工程師(Institute of Electrical and Electronics Engineers,IEEE)最初開發(fā) POSIX 標(biāo)準(zhǔn),是為了提高 UNIX 環(huán)境下應(yīng)用程序的可移植性。 ,POSIX 并不局限于 UNIX。許多其它的操,例如 DEC OpenVMS 和 Microsoft Windows NT ,都支持 POSIX 標(biāo)準(zhǔn),尤其是 IEEE Std. 1003.1-1990(1995 年修訂)或 POSIX.1,POSIX.1 提供了源代碼級(jí)別

34、的 C 語(yǔ)言應(yīng)用編程接口(API)給操 的服務(wù)程序,例如讀寫文件。POSIX.1 已經(jīng)被國(guó)際標(biāo)準(zhǔn)化組織(International Standards Organization,ISO)所接受,被命名為 ISO/IEC 9945-1:1990 標(biāo)準(zhǔn)。POSIX 現(xiàn)在已經(jīng)發(fā)展成為一個(gè)非常龐大的標(biāo)準(zhǔn)族,某些部分正處在開發(fā)過(guò)程中。POSIX 與 IEEE 1003 和 2003 的標(biāo)準(zhǔn)是可互換的。GNUGNU 是 GNU Is Not UNIX 的遞歸縮寫,是的一個(gè)項(xiàng)目,該項(xiàng)目的目標(biāo)是開發(fā)一個(gè) 的 UNIX 版本,這一 UNIX 版本稱為 HURD。盡管 HURD 尚未完成,但 GNU 項(xiàng)目已經(jīng)開發(fā)

35、了許多高質(zhì)量的編程工具, emacs 編輯器、著名的GNU C 和 C+ 編譯器(gcc 和 g+),這些編譯器可以在任何計(jì)算機(jī)系統(tǒng)上運(yùn)行。所有的 GNU 派生工作均適用 GNU 通用公共證,即 GPL。GPL 作者擁有,但授予其他任何人以合法、 和修改的權(quán)利。Linux 的開發(fā)使用了許多 GNU 工具。Linux 系統(tǒng)上用于實(shí)現(xiàn) POSIX.2 標(biāo)準(zhǔn)的工具幾乎都是 GNU 項(xiàng)目開發(fā)的,Linux 內(nèi)核、GNU 工具以及其他一些組成了人們常說(shuō)的 Linux:符合 POSIX 標(biāo)準(zhǔn)的操 Shell 和工具。C 語(yǔ)言編譯器和其他開發(fā)工具及函數(shù)庫(kù)。X Window 窗口系統(tǒng)。各種應(yīng)用 , 字處理 、

36、圖象處理 等。其他各種 Internet , FTP 服務(wù)器、WWW 服務(wù)器等。 數(shù)據(jù)庫(kù) 。GPLGPL (General Public License)GPL 的文本保 Linux 系統(tǒng)的不同目錄下名為 COPYING 的文件里。例如,輸入 cd /usr/doc/ghostscript* 然后再輸入 more COPYING 可查看 GPL 的內(nèi)容。GPL 和是否 無(wú)關(guān),它主要目標(biāo)是保證 對(duì)所有的用戶來(lái)說(shuō)是 的。GPL 通過(guò)如下途徑實(shí)現(xiàn)這一目標(biāo):它要求 以源代碼的形式發(fā)布,并規(guī)定任何用戶能夠以源代碼的形式將或發(fā)布給別的用戶。它提醒每個(gè)用戶,對(duì)于該 不提供 的擔(dān)保。如果用戶的 使用了受 GP

37、L 保護(hù)的任何的一部分,那么該 就繼承了GPL ,并因此而成為 GPL ,也就是說(shuō)必須隨應(yīng)用程序一起發(fā)布源代碼。GPL 并不排斥對(duì)進(jìn)行商業(yè)性質(zhì)的包裝和 ,也不限制在的基礎(chǔ)上打包其他非。遵照 GPL 的并不是可以任意傳播的,這些通常都有正式的 ,GPL 在發(fā)布 或者時(shí)限制條件。但是,從用戶的角度考慮,這些根本不能算是限制條件,相反用戶只會(huì)從中受益,因?yàn)橛脩艨梢源_保獲得源代碼。盡管 Linux 內(nèi)核也屬于 GPL 范疇,但 GPL 并不適用于通過(guò)系統(tǒng)調(diào)用而使用內(nèi)核服務(wù)的應(yīng)用程序,通常把這種應(yīng)用程序看作是內(nèi)核的正常使用。 Linux 采用 RPM 的保管理方式, 的安裝、卸載和升級(jí)非常方便, 并提供

38、了大量的圖形化管理工具,是初學(xué)者的最佳選擇。Mandrake、Slackware、Debian GNU/Linux 是由 GNU 的 Linux 版本,最符合GNU 精神。提供了最大的靈活性,適合 Linux 的高級(jí)用戶。1.3.2 Linux常用命令以下均以 Linux 為例說(shuō)明 Linux 操的常用命令?;久睿簂s:顯示當(dāng)前目錄下的所有文件和目錄。ls a :可以看到隱藏的文件,如以.開頭的文件。pwd:顯示當(dāng)前目錄路徑。ps:列舉當(dāng)前 TTY 下所有進(jìn)程ps A:列舉所有cd 目錄名:進(jìn)入目錄mkdir 目錄名:創(chuàng)建目錄rmdir 目錄名:刪除空目錄rm rf 目錄名:強(qiáng)行刪除整個(gè)目

39、錄內(nèi)容(無(wú)法恢復(fù)),其中 f 表示強(qiáng)制不進(jìn)行提示,r 表示目錄遞歸。Linux 下的文件和目錄是區(qū)分大小寫的。TAB 文件目錄匹配搜索的使用:例如 SEMIT 安裝的目錄為:/SEMIT,假設(shè)/目錄下沒(méi)有其它以 SE 字符開頭的其它目錄和文件,則要進(jìn)入這個(gè)目錄,只需敲入:cd /SE然后按下 TAB 鍵,則 SHELL 會(huì)自動(dòng)匹配找到 SEMIT 目錄,這樣就不必完全輸入剩余的 MIT 字符,這個(gè)功能在名字很長(zhǎng)的文件和目錄時(shí)非常有效,可以大大提供鍵盤輸入的速度,極為方便。ncftp 工具的使用:ncftp 是 Linux 下非常 FTP 工具,它除了支持 FTP 命令操作外,還支持LINUX

40、SHELL 下令用法,例如,它也支持 TAB 鍵用法,支持目錄上傳和(用-r 或-R 參數(shù))。ncftp 的用法,例如要 FTP 一臺(tái) IP 為 2 的 Linux PC機(jī) A,命令如下:ncftp u SEMIT 2其中 SEMIT 為A 機(jī)器上的合法的用戶,連接上之后會(huì)提示輸入 SEMIT 用戶的, 驗(yàn)證通過(guò)后,就進(jìn)入 ncftp 命令提示符。 編程時(shí)獲取幫助 man(類似于 VC 編程中的 MSDN)man,即 manunal:man 是 UNIX 系統(tǒng)手冊(cè)的本。根據(jù)習(xí)慣,UNIX 系統(tǒng)手冊(cè)通常分為不同的部分(或小節(jié),即 section),每個(gè)

41、小節(jié)闡述不同的系統(tǒng)內(nèi)容。目前的小節(jié)劃分如下:命令:普通用戶命令系統(tǒng)調(diào)用:內(nèi)核接口函數(shù)庫(kù)調(diào)用:普通函數(shù)庫(kù)中的函數(shù)特殊文件:/dev 目錄中的特殊文件文件格式和約定:/etc/passwd 等文件的格式游戲。雜項(xiàng)和約定:標(biāo)準(zhǔn)文件系統(tǒng)布局、手冊(cè)頁(yè)結(jié)構(gòu)等雜項(xiàng)內(nèi)容 系統(tǒng)管理命令。內(nèi)核例程:非標(biāo)準(zhǔn)的手冊(cè)小節(jié)。手冊(cè)頁(yè)保 /usr/man 目錄下,其中每個(gè)子目錄(如 man1, man2, 。, manl, mann)包含不同的手冊(cè)小節(jié)。使用 man 命令查看手冊(cè)頁(yè)。常用 man 命令行:man strtoul取消 root :vim /etc/shadow可以看到第一行內(nèi)容大致如下:root:$1$dVVd

42、5YVP$OgZG58TL/NRExTfcr6URH.:11829:0:99999:7:-1:-1:134539236要取消 root ,只需將第一行 root 后第一對(duì):之間的字符全部刪除即可,刪除后如下:root:11829:0:99999:7:-1:-1:134539236然后用:w!強(qiáng)行存盤(因?yàn)?shadow 文件是只讀的)后用:q vi 則實(shí)現(xiàn)取消了 root。修改 PC 機(jī) IP 地址:ifconfig eth0 2壓縮/解壓縮:Linux 的是以.gz 或.tar 或者.tar.gz 結(jié)尾的。前者是由 gzip 壓縮的,后者是先用 tar 歸檔,在用 gz

43、ip 壓縮而成的。1、以.gz 結(jié)尾的為壓縮文件,用命令:gzip -d filename 來(lái)解壓,得到的文件在當(dāng)前目錄中,但已沒(méi)有了.gz。2、以.tar 結(jié)尾的為歸檔文件,用命令:tar -xvf filename 來(lái)展開,生成的文件與源文件在同一目錄中,只是少了.tar。3、以.tar.gz 結(jié)尾的文件最常見(jiàn),可直接用命令:gzip -cd filename | tar xfv 來(lái)解開。tar 的用法:解壓:x 參數(shù)表示解壓tar xzf SEMIT.tgz把一個(gè)目錄 SEMIT 壓縮成一個(gè)文件:SEMIT.tgztar czf SEMIT.tgz SEMITc 參數(shù)表示壓縮。如:需查找

44、文件 main.c: 或者:find name main.c locate shadow注意:locate 為模糊匹配,它會(huì)遞歸的在當(dāng)前目錄下的目錄下搜索,并列出所有名字包含 shadow 字串的文件。在一個(gè)目錄下(含子目錄)的所有文件中查找含有某個(gè)字符串(如“Modified by SEMIT”)的所有文件:grep Modified by SEMIT * -rvi(m)用法vi 是 Linux/Unix 世界里極為普遍的全屏幕文本編輯器,幾乎可以說(shuō)任何一臺(tái)Linux/Unix 機(jī)器都會(huì)提供這個(gè)。vi 有三種狀態(tài),即編輯方式、命令方式。在命令方式下,所有命令都要以:開始,所輸入的字符系統(tǒng)均作

45、命令來(lái)處理,如:q 代表 ,:w 表示存盤。當(dāng)你進(jìn)入 vi 時(shí),會(huì)首先進(jìn)入命令方式(同時(shí)也是編輯方式)。按下 i 就進(jìn)入方式,用戶輸入的可視字符都添加到文件中,顯示在屏幕上。按下 ESC 就可以回到命令狀態(tài)(同時(shí)也是編輯方式)。編輯 命令方式類似,都是要輸入命令,但它令不要以:開始,它直接接受鍵盤輸入的單字符或組合字符命令,例如直接按下 u 就表示取消上一次對(duì)文件的修改,相當(dāng)于 WINDOWS 下的 Undo 操作。編譯方式下有一些命令是要以/開始的, 例如查找字符串就是:/string 則在文件中匹配查找 string 字符串。在編輯模式下按下:就進(jìn)入命令方式。基本命令解釋:1光標(biāo)命令k、j

46、、h、l上、下、左、右光標(biāo)移動(dòng)命令。雖然您可以在 Linux 中使用鍵盤右邊的 4 個(gè)光標(biāo)鍵,但是記住這 4 個(gè)命令還是非常有用的。這 4 個(gè)鍵正是右手在鍵盤上放置的基本位置。nG跳轉(zhuǎn)命令。n 為行數(shù),該命令立即使光標(biāo)跳到指定行。Ctrl+G光標(biāo)所在位置的行數(shù)和列數(shù)報(bào)告。w、b使光標(biāo)向前或向后跳過(guò)一個(gè)單詞。2編輯命令i、a、r在光標(biāo)的前、后以及所在處字符命令(i=insert、a=append、r=replace)。cw、dw改變(置換)/刪除光標(biāo)所在處的單詞令 (c=change、d=delete)。x、d$、dd刪除一個(gè)字符、刪除光標(biāo)所在處到行尾的所有字符以及刪除整行的命令。3. 查找命令

47、- /string、?string從光標(biāo)所在處向后或向前查找相應(yīng)的字符串令。4. 拷貝命令- yy、p拷到剪貼板或取出剪貼板中內(nèi)容 令。常用操作:無(wú)論是開啟新檔或修改舊文件,都可以使用 vi,所需指令為:$vifilemane如果文件是新的,就會(huì)在熒幕底部看到一個(gè) ,告訴用戶正在創(chuàng)建新文件。如果文件早已 ,vi 則會(huì)顯示文件的首廿四行,用戶可再用光標(biāo)(cursor)上下移動(dòng)。上面是一個(gè)經(jīng) vi 開啟的模擬文件,一行開始處的波折號(hào)()表示文件的結(jié)尾。指令 i 在光標(biāo)處正文指令 I 在一行開始處正文指令 a 在光標(biāo)後追加正文指令 A 在行尾追加正文指令 o 在光標(biāo)下面指令 O 在光標(biāo)上面在方式下,

48、不能打入指令,必需先按Esc鍵,返回命令方式。假若戶不知身處何態(tài),也可以按Esc鍵,不管處?kù)逗螒B(tài),都會(huì)返回命令方式。在修改文件時(shí),如何存檔及指定文件都非常重要。在 vi 內(nèi),行使存檔或退出的指令時(shí),要先按冒號(hào)(:),改變?yōu)槊罘绞剑脩艟涂梢钥匆?jiàn)在熒幕左下方,出現(xiàn)冒號(hào)(:),顯示 vi 已經(jīng)改為指令態(tài),可以進(jìn)行存檔或等工作。:q!放棄任何改動(dòng)而 vi,也就是強(qiáng)行 :w 存檔:w! 對(duì)于只讀文件強(qiáng)行存檔:wq 存檔并 vi:x 與 wq 的工作一樣:zz 與 wq 的工作一樣刪除正文刪除或修改正文都是利用編輯方式,故此,下面所提及的指令只需在編輯方式下,直接輸入指令即行。x 刪除光標(biāo)處字符(Ch

49、aracter)nx 刪除光標(biāo)處後 n 個(gè)字符nX 刪除光標(biāo)處前 n 個(gè)字符ndw 刪除光標(biāo)處下 n 個(gè)單詞(word)dd 刪除整行d$或 D 刪除由光標(biāo)至該行最末u 恢復(fù)前一次所做的刪除當(dāng)使用 vi 修改正文,加減字符采用另一組在編輯方式下操作的指令。 rchar 由char 代替光標(biāo)處的字符RtextEsc由 text 代替光標(biāo)處的字符cwtextEsc由 text 取代光標(biāo)處的單詞CtextEsc由 text 取代光標(biāo)處至該行結(jié)尾處cc 使整行空白,但保留光標(biāo)位置,讓你開始打入如刪除指令一樣,在指令前打入的數(shù),表示執(zhí)行該指令多少次。要檢索文件,必需在編輯方式下進(jìn)行。strReturn向

50、前搜尋 str 直至文件結(jié)尾處?strReturn往後搜尋 str 直至文件開首處n 同一重復(fù)檢索N 相反重復(fù)檢索vi 纏繞整個(gè)文件,不斷檢索,直至找到與模式相匹配的下一個(gè)出現(xiàn)。全程替換命令::%s/string1/string2/g 在整個(gè)文件中替換“string1”成“string2”。如果要替換文件中的路徑:使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路徑/usr/bin 換成/bin。也可以使用命令“:%s/usr/bin/bin/g”實(shí)現(xiàn),其中“”是轉(zhuǎn)義字符,表明其后的“/”字符是具有實(shí)際意義的字符,不是分隔符。同時(shí)編輯 2 個(gè)文件,拷貝一個(gè)文件中的文本并粘貼到

51、另一個(gè)文件中: 命令如下:- vi file1 file2- yy 在文件 1 的光標(biāo)處拷貝所在行- :n 切換到文件 2 (n=next) 或者按ctrl+ww,就在兩個(gè)文件間切換。- p 在文件 2 的光標(biāo)所在處粘貼所拷貝的行- :n 切換回文件 1將文件中的某一部分修改保存到臨時(shí)文件,例如僅僅把第 2059 行之間的內(nèi)容存盤成文件/tmp/1,我們可以輸入如下命令。- vi file- :20,59w /tmp/1如果要在vi 執(zhí)行期間,轉(zhuǎn)到 shell 執(zhí)行,使用驚嘆號(hào)(!)指令,例如在vi 期間,列出當(dāng)前目錄內(nèi)容,可以輸入 ::!ls另一方面,用戶可以在主目錄中創(chuàng)建。exrc 環(huán)境文

52、件,用 set 打入選項(xiàng),每次調(diào)用vi 讀入。exrc 中的指令與設(shè)置。下面是。exrc 環(huán)境文件的實(shí)例:setwrapmarging8 setshowmodesetautoindentminicom 用法minicom 是安裝 時(shí)安裝的 ,它使用配置文件/etc/minirc.dfl,SEMIT 光盤安裝時(shí)會(huì)提供這個(gè)文件?!咀⒁狻縨inicom 占用串口,能且僅能啟動(dòng)一個(gè) minicom,啟動(dòng)第二個(gè)報(bào)錯(cuò):Device/dev/modem is locked。其中/dev/modem 就是/dev/ttyS0,即 PC 機(jī)串口 1,它是在光盤安裝時(shí)執(zhí)行./arminstall 時(shí)創(chuàng)建的鏈接。查

53、看 arminst 文件,可以看到如下一行: ln -sf /dev/ttyS0 /dev/modemminicom 所有的操作都以 ctrl+A 開始,例如:為 ctrl+A,松手后再按下 Q,則彈出如下一個(gè)小框:選 Yes 即可 minicom。minicom 中最重要的操作就是對(duì)其進(jìn)行配置的修改。這個(gè)操作要先 ctrl+A,松手后按下 O,則彈出如下框:選擇第三項(xiàng)“Serial port setup”,則彈出下面框:輸入 E 則彈出如下框,可改變率。若要使用 PC 機(jī)的串口 2 來(lái)接 SemitARM9200 開發(fā)板的串口 1 做,則要在串口配置框中選擇 A,即“Serial Devic

54、e”,則原來(lái)的配置框第一行進(jìn)入編輯模式,將原來(lái)的/dev/modem 改為如下的:/dev/ttyS1,即串口 2。配置框只需連續(xù)按 ESC 鍵即可返回。軟、硬盤及光驅(qū)的使用在 Linux 中對(duì)其他硬盤邏輯分區(qū)、軟盤,光盤的使用與我們通常在 DOS 與 Windows 中的使用 是不一樣的,不能直接,因?yàn)樵?Linux 中它們都被視為文件,因此在 使用前必須使用裝載命令 mount 將它們裝載到系統(tǒng)的/mnt 目錄中來(lái),使用結(jié)束,必卸載。命令格式如下:mount t 文件系統(tǒng)類型 名 裝載目錄文件類型常用的有:msdosdos 分區(qū)文件ext2Linux 的文件系統(tǒng)swapLinux swap 分區(qū)或 swap 文件iso9660安裝 CD-ROM 的文件系統(tǒng)vfat支持長(zhǎng)文件名的 dos 分區(qū)hpfsOS/2 分區(qū)文件系統(tǒng)名是指要裝載的 的名稱,如軟盤、硬盤、光盤等,軟盤為/dev/fd0 fd1,硬盤 為/dev/hda hdb ,硬盤邏輯分區(qū)為期 hda1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論