嵌入式實(shí)驗報告_第1頁
嵌入式實(shí)驗報告_第2頁
嵌入式實(shí)驗報告_第3頁
嵌入式實(shí)驗報告_第4頁
嵌入式實(shí)驗報告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、嵌入式實(shí)驗報告姓名: 其他成員;: 學(xué)院: 機(jī)械與電子工程學(xué)院班級: 學(xué)號: 指導(dǎo)教師: 實(shí)驗一 熟悉Linux 開發(fā)環(huán)境一、實(shí)驗?zāi)康氖煜?Linux 開發(fā)環(huán)境,學(xué)會基于S3C2410 的Linux 開發(fā)環(huán)境的配置和使用。使用Linux 的armv4l-unknown-linux-gcc 編譯,使用基于NFS 方式的下載調(diào)試,了解嵌入式開發(fā)的基本過程。二、實(shí)驗內(nèi)容本次實(shí)驗使用 Redhat Linux 9.0 操作系統(tǒng)環(huán)境,安裝ARM-Linux 的開發(fā)庫及編譯器。創(chuàng)建一個新目錄,并在其中編寫hello.c 和Makefile 文件。學(xué)習(xí)在Linux 下的編程和編譯過程,以及ARM 開發(fā)板的使

2、用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到目標(biāo)開發(fā)板上運(yùn)行。3、 實(shí)驗步驟1、 編寫程序源代碼2、 編寫Makefile文件3、 下載調(diào)試4、 思考題1 Makefile 是如何工作的?其中的宏定義分別是什么意思?答:Makefile 文件定義了一系列的規(guī)則,它指明了哪些文件需要編譯,哪些文件需要先編譯,哪些文件需要重新編譯等等更為復(fù)雜的命令。使用它帶來的好處就是自動編譯,你只需要敲一個“make”命令整個工程就可以實(shí)現(xiàn)自動編譯,CC 指明編譯器 ;EXEC 表示編譯后生成的執(zhí)行文件名稱;OBJS 目標(biāo)文件列表;CFLAGS 編譯參數(shù);LDFLAGS 連接參數(shù) ;all: 編譯主入口;clea

3、n: 清除編譯結(jié)果實(shí)驗二 A/D 接口實(shí)驗一、實(shí)驗?zāi)康牧私庠?linux 環(huán)境下對S3C2410 芯片的8 通道10 位A/D 的操作與控制。二、實(shí)驗內(nèi)容學(xué)習(xí) A/D 接口原理,了解實(shí)現(xiàn)A/D 系統(tǒng)對于系統(tǒng)的軟件和硬件要求。閱讀ARM 芯片文檔,掌握ARM 的A/D 相關(guān)寄存器的功能,熟悉ARM 系統(tǒng)硬件的A/D 相關(guān)接口。利用外部模擬信號編程實(shí)現(xiàn)ARM 循環(huán)采集全部前4 路通道,并且在超級終端上顯示。3、 實(shí)驗步驟1、 閱讀理解源碼并編譯應(yīng)用程序2、下載調(diào)試程序4、 思考題1. 逐次逼近型的A/D 轉(zhuǎn)換器原理是什么?答:逐次逼近型(也稱逐位比較式)的 A/D 轉(zhuǎn)換器,應(yīng)用比積分型更為廣泛,主

4、要由逐次逼近寄存器SAR、D/A 轉(zhuǎn)換器、比較器以及時序和控制邏輯等部分組成。它的實(shí)質(zhì)是逐次把設(shè)定的SAR 寄存器中的數(shù)字量經(jīng)D/A 轉(zhuǎn)換后得到電壓Vc 與待轉(zhuǎn)換模擬電壓V。進(jìn)行比較。比較時,先從SAR 的最高位開始,逐次確定各位的數(shù)碼應(yīng)是“1”還是“0”,其工作過程如下:轉(zhuǎn)換前,先將SAR 寄存器各位清零。轉(zhuǎn)換開始時,控制邏輯電路先設(shè)定SAR 寄存器的最高位為“1”,其余位為“0”,此試探值經(jīng)D/A 轉(zhuǎn)換成電壓Vc,然后將Vc 與模擬輸入電壓Vx 比較。如果VxVc,說明SAR 最高位的“1”應(yīng)予保留;如果Vx<Vc,說明SAR 該位應(yīng)予清零。然后再對SAR 寄存器的次高位置“1”,依

5、上述方法進(jìn)行D/A 轉(zhuǎn)換和比較。如此重復(fù)上述過程,直至確定SAR 寄存器的最低位為止。過程結(jié)束后,狀態(tài)線改變狀態(tài),表明已完成一次轉(zhuǎn)換。2 A/D 轉(zhuǎn)換的重要指標(biāo)包括哪些?答:分辨率、精度有絕對精度和相對精度、轉(zhuǎn)換時間、電源靈敏度、量程、工作溫度范圍3 ARM 的A/D 功能的相關(guān)寄存器有哪幾個,對應(yīng)的地址是什么?答:寄存器ADCCON,地址:0x58000000。ADCDAT0:轉(zhuǎn)換結(jié)果數(shù)據(jù)寄存器;地址:0x5800000CADC觸摸屏控制寄存器ADCTSC,地址:0x58000004;4 如何啟動ARM 開始轉(zhuǎn)換A/D,有幾種方式?轉(zhuǎn)換開始時ARM 是如何知道轉(zhuǎn)換哪路通道的?如何判斷轉(zhuǎn)換結(jié)束

6、答:方式一:軟件啟動。定義與A/D轉(zhuǎn)換相關(guān)的寄存器,初始化寄存器,rADCCON=0x1;啟動轉(zhuǎn)換。方式二:硬件啟動:復(fù)位A/D轉(zhuǎn)換器,外接用高電平觸發(fā)ADCCON0.通過對ADCCON5:3的賦值來選擇通道實(shí)驗三 D/A 接口實(shí)驗一、實(shí)驗?zāi)康?、學(xué)習(xí) D/A 轉(zhuǎn)換原理2、掌握 MAX504 D/A 轉(zhuǎn)換芯片的使用方法3、掌握不帶有 D/A 的CPU 擴(kuò)展D/A 功能的主要方法4、了解 D/A 驅(qū)動程序加入內(nèi)核的方法二、實(shí)驗內(nèi)容學(xué)習(xí) D/A 接口原理,了解實(shí)現(xiàn)D/A 系統(tǒng)對于系統(tǒng)的軟件和硬件要求。閱讀MAX504芯片文檔,掌握其使用方法3、 實(shí)驗步驟1、閱讀理解源碼并編譯應(yīng)用程序2、下載調(diào)試程

7、序四、思考題1 D/A 轉(zhuǎn)換器的分類。答:D/A 轉(zhuǎn)換器的內(nèi)部電路構(gòu)成無太大差異,一般按輸出是電流還是電壓、能否作乘法運(yùn)算等進(jìn)行分類??煞譃椋弘妷狠敵鲂停ㄈ鏣LC5620)、電流輸出型(如THS5661A)、乘算型(如AD7533)、一位 D/A 轉(zhuǎn)換器2 D/A 轉(zhuǎn)換器的主要技術(shù)指標(biāo)。答:分辯率:指最小模擬輸出量(對應(yīng)數(shù)字量僅最低位為“1”)與最大量(對應(yīng)數(shù)字量所有有效位為“1”)之比。建立時間:是將一個數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬信號所需的時間,也可以認(rèn)為是轉(zhuǎn)換時間。其他指標(biāo)還有線性度(Linearity),轉(zhuǎn)換精度,溫度系數(shù)/漂移。3 MAX504 的特點(diǎn)及使用方法。答:、MAX504 10 位

8、D/A 轉(zhuǎn)換器的特點(diǎn):由單個 5V 電源供電,電壓輸出緩沖,內(nèi)部 2.048V 參考電壓INL=1/21LSB(MAX)、電壓不隨溫度變化、可變的輸出范圍:0VVDD,VSSVDD上電復(fù)位、串行輸出實(shí)驗四 CAN 總線通訊實(shí)驗1、 實(shí)驗?zāi)康?、掌握 CAN 總線通訊原理。2、學(xué)習(xí) MCP2510 的CAN 總線通訊的驅(qū)動開發(fā)。3、掌握 Linux 系統(tǒng)中斷在CAN 總線通訊程序中使用。二、實(shí)驗內(nèi)容學(xué)習(xí) CAN 總線通訊原理,了解CAN 總線的結(jié)構(gòu),閱讀CAN 控制器MCP2510 的芯片文檔,掌握MCP2510 的相關(guān)寄存器的功能和使用方法。編程實(shí)現(xiàn)兩臺CAN 總線控制器之間的通訊。ARM 接

9、收到CAN 總線的數(shù)據(jù)后會在于終端顯示,同時使用CAN 控制器發(fā)送的數(shù)據(jù)也會在終端反顯。MCP2510 設(shè)置成自回環(huán)的模式,CAN 總線數(shù)據(jù)自發(fā)自收。3、 實(shí)驗步驟1、編譯CAN 總線模塊2、 編譯應(yīng)用程序3、 下載調(diào)試4、 思考題1 CAN 總線通訊最少需要幾根線?如果多個節(jié)點(diǎn)應(yīng)該如何連接?答:只有2根線與外部相連。多個節(jié)點(diǎn)連接方式如下圖所示:2 為什么CAN 總線的可靠性高,傳輸數(shù)率卻可以速度比串口快(可達(dá)到1Mbps)?答:CAN總線使用串行數(shù)據(jù)傳輸方式,可以1Mb/s的速率在40m的雙絞線上運(yùn)行,也可以使用光纜連接,而且在這種總線上總線協(xié)議支持多主控制器。CAN與I2C總線的許多細(xì)節(jié)很

10、類似,但也有一些明顯的區(qū)別。當(dāng)CAN總線上的一個節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時,它以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。對每個節(jié)點(diǎn)來說,無論數(shù)據(jù)是否是發(fā)給自己的,都對其進(jìn)行接收。每組報文開頭的11位字符為標(biāo)識符,定義了報文的優(yōu)先級,這種報文格式稱為面向內(nèi)容的編址方案。在同一系統(tǒng)中標(biāo)識符是唯一的,不可能有兩個站發(fā)送具有相同標(biāo)識符的報文。當(dāng)幾個站同時競爭總線讀取時,這種配置十分重要。實(shí)驗五 串行端口程序設(shè)計1、 實(shí)驗?zāi)康?、了解在Linux環(huán)境下串行程序的基本方法。2、掌握終端的主要屬性及設(shè)置方法,熟悉終端I/O函數(shù)的使用。3、學(xué)習(xí)使用多線程完成串口的收發(fā)處理。2、 實(shí)驗內(nèi)容讀懂程序源代碼,學(xué)習(xí)終端I/O函數(shù)的使

11、用方法,學(xué)習(xí)將多線程編程應(yīng)用到串口的接受和發(fā)送程序設(shè)計中。3、 預(yù)備知識1、C語言的基礎(chǔ)2、掌握在Linux下常用編輯器的使用。3、掌握Makefile的編寫和使用。4、掌握Linux下的程序編譯與交叉編譯過程。 4、 實(shí)驗原理異步串行I/O方式是將傳輸數(shù)據(jù)的每個字符一位接一位(例如先低位、后高位)地傳送。數(shù)據(jù)的各不同位可以分時使用同一傳輸通道,因此串行I/O可以減少信號連接線,最后用一對線即可進(jìn)行。接收方對于同一根線上一連串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。在微型計算機(jī)中大量使用異步串行I/O方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定

12、誤差,因此實(shí)現(xiàn)較容易。但是由于每個字符都要獨(dú)立確定起始和結(jié)束(即每個字符都要重新同步),字符和字符間還可能有長度不定的空閑時間,因此效率較低。上圖給出異步串行通信中一個字符的傳送格式。開始前,線路處于空閑狀態(tài),送出連續(xù)“1”。傳送開始時首先發(fā)一個“0”作為起始位,然后出現(xiàn)在通信線上的是字符的二進(jìn)制編碼數(shù)據(jù)。每個字符的數(shù)據(jù)位長可以約定為5位、6位、7位或8位,一般采用ASCII編碼。后面是奇偶校驗位,根據(jù)約定,用奇偶檢驗位將所傳字符中“1”的位數(shù)湊成奇數(shù)個數(shù)或偶數(shù)個數(shù)。也可以也可以約定不要奇偶校驗位,這樣就取消奇偶校驗位。最后是表示停止位的“1”信號,這個停止位可以約定持續(xù)1位、1.5位或2位的

13、時間寬度。至此一個字符傳送完畢,線路又進(jìn)入空閑,持續(xù)為“1”。經(jīng)過一段隨機(jī)的時間后,下一個字符開始傳送才有發(fā)出起始位。每一個數(shù)據(jù)位的寬度等于傳送波特率的倒數(shù)。微機(jī)異步串行通信中,常用的波特率為50.95,110,150,300,600,1200,2400,4800,9600等。接收方按約定的格式接收數(shù)據(jù),并進(jìn)行檢查,可以查出以下三種錯誤:奇偶錯:在約定奇偶檢查的情況下,接收到的字符奇偶狀態(tài)和約定不符。幀格式錯:一個字符從起始位到停止位的總尾數(shù)不對。溢出錯:若先接收的字符尚未被微機(jī)讀取,后面的字符又傳送過來,則產(chǎn)生溢出錯。每一種錯誤都會給出相應(yīng)的出錯信息,提示用戶處理。一般串口調(diào)試都使用空的MO

14、DEM連接電纜,其連接方式如下:5、 程序分析本實(shí)驗的代碼如下:#include<termios.h>#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<sys/signal.h>#include<pthread.h>#define BAUDRATE B115200#define COM1 “/dev/ttyS0”#define COM2 “/dev/ttyS1”#define ENDMINITERM 27 /*ESC to quit miniterm*

15、/#define FAL SE 0#define TRUE 1volatile int STOP=FALSE;volatile int fd;void child_handler(int s)print(“stop!n”);STOP=TRUE;/*_*/Void* keyboard(void* date)Int c;For(;) c=getchar(); if(c=ENDMINITERM) STOP=TURE; Break; Return NULL;/*_*/*modem input handle*/Void* receive(void* date)Int c;Printf(“read mod

16、emn”);While(STOP=FALSE)Read(fd,&c,1);/*com port*/Write(1,&c,1);/*stdout*/Printf(“exit form reading modemn”);Return NULL;/*_*/Void* send(void* date)Int =0;Printf(“send daten”);While(STOP=FALSE)/*modem input handler*/C+;C%=255;Write(fd,&c,1);/*stdout*/Usleep(100000);Return NULL;/*_*/Int ma

17、in (int argc,char*argv)Struct termios oldtio,newtio,oldstdio,newstdio;Struct sigaction sa;Int ok;Pthread_t th_a;th_b,th_c;Void *retval*If(argc>1)Fd=open(COM2,O_RDWR);Else Fd=open(COM1,O_RDWR);/|O_NOCTTY|O_NONBLOCK);If(fd<0)Error(COM1);Exit(-1);Tcgetattr(0,&oldstdio);Tcgetattr(fd,&oldti

18、o); /*save current modem settings*/Tcgetattr(fd,&newstdio); /*get working stdio*/Newtio.c_cflag=BAUDRATE|CRTSCTS|CS8|CLOCAL|CREAD; /*ctrol flag*/Newtio.c_iflag=IGNPAR; /*input flag*/Newtio.c_oflag=0; /*output flag*/Newtio.c_lfag=0;Newtio.c_ccVMIN=1;Newtio.c_ccVTIME=0;/*now clean the modem line a

19、nd activate the settings for modem*/Tcflush(fd,TCIFLUSH);Tcsetattr(fd,TCSANOW,&newtio); /*set attrib*/Sa.sa_handler=child_handler;Sa.sa_flags=0;Sigaction(SIGCHLD,&sa,NULL);Pthread_creat(&th_a,NULL,keyboard,0);Pthread_creat(&th_b,NULL,receive,0);Pthread_creat(&th_c,NULL,send,0);Pt

20、hread_join(th_a,&retval);Pthread_join(th_b,&retval);Pthread_join(th_c,&retval);Tcsetattr(fd,TCSANOW,&roldtio); /*restore old modem setings*/Tcsetattr(0,TCSANOW,&oldstdio); /*restore old tty setings*/Close(fd);Exit(0);6、 實(shí)驗步驟1. 閱讀理解源碼進(jìn)入expbasic03_tty目錄,使用vi編輯器或其他編輯器閱讀理解源代碼。2. 編譯應(yīng)用

21、程序3. 下載調(diào)試切換到minicom終端窗口,使用NFS mount開發(fā)主機(jī)的/arm2410s到/host目錄。進(jìn)入expbasic03_tty目錄,運(yùn)行term,觀察運(yùn)行結(jié)果的正確性。rootzxt root#minicom/mnt/yaffs mount -t nfs -o nolock 6:/arm2410s /host/mnt/ysffscd/host/exp/basic/03-tty/host/exp/basic/03_tty.termRead modem Send date 123456789:;<=>?ABCDEFGHIGHLMNOPQRST

22、UVWX由于內(nèi)核已經(jīng)將串口1作為終端控制臺,所以可以看到term發(fā)出的數(shù)據(jù),卻無法看到開發(fā)主機(jī)發(fā)來的數(shù)據(jù),可以使用另外一臺主機(jī)連接串口2進(jìn)行收發(fā)測試。Ctrl+c可使程序強(qiáng)行退出。注意:如果在執(zhí)行./term時出現(xiàn)下面的錯誤,可以通過我們前文提到的方法建立一個連接來解決。/dev/ttySO:No such file or directory解決方法:/mnt/yaffscd /dev/dev ln -sf /dev/tts/0 ttySO (注意首字母是1,不是數(shù)字1)實(shí)驗六 無線通信實(shí)驗1 實(shí)驗?zāi)康?、掌握GPS通訊原理2、學(xué)習(xí)NMEA0183 ASCII接口協(xié)議格式3、學(xué)習(xí)Linux下對

23、GPS通訊信息采發(fā)集的編程方法2 實(shí)驗內(nèi)容學(xué)習(xí)GPS通訊原理,閱讀GPS模塊的產(chǎn)品說明,了解模塊的電氣指標(biāo)、串行接口連接方式、NMEA語句格式。通過軟件來設(shè)置GPS模塊的波特率、輸出語句和初始化經(jīng)緯度等內(nèi)容。編程實(shí)現(xiàn)對GPS通訊信息的采集方法,將接收到的數(shù)據(jù)進(jìn)行語義的分析,并在LCD上顯示當(dāng)前的地理位置信息。學(xué)習(xí)Linux GPS數(shù)據(jù)的解析過程。GPS(Global Positioning System全球定位系統(tǒng))是美國從本世紀(jì)70年代開始研制,歷時20年,耗資200億美元,具有在海、陸、空進(jìn)行全方位實(shí)時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。GPS的主要優(yōu)點(diǎn)包括:(1) 全球、全天候

24、工作:能為用戶提供連續(xù),實(shí)時的三維位置,三維速度和精密時間。不受天氣的影響。(2) 定位精度高:單機(jī)定位精度優(yōu)于10米,采用差分定位,精度可達(dá)厘米級和毫米級。(3) 功能多,應(yīng)用廣:目前已廣泛的應(yīng)用于大地測量、工程測量、航空攝影測量、運(yùn)載工具導(dǎo)航和管制、地殼運(yùn)動監(jiān)測、工程變形監(jiān)測、資源勘察、地球動力學(xué)等學(xué)科領(lǐng)域。GPS由三個獨(dú)立的部分組成:空間部分:21顆工作衛(wèi)星,3顆備用衛(wèi)星。地面支撐系統(tǒng):1個主控站,3個注入站,5個監(jiān)測站。用戶設(shè)備部分:接收GPS衛(wèi)星發(fā)射信號,以獲得必要的導(dǎo)航和定位信息,經(jīng)數(shù)據(jù)處理,完成導(dǎo)航和定位工作。GPS接收機(jī)硬件一般由主機(jī)、天線和電源組成。GPS定位原理:GPS定位

25、的基本原理是根據(jù)高速運(yùn)動的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會的方法,確定待測點(diǎn)的位置。如圖所示,假設(shè)t時刻在地面待測點(diǎn)上安置GPS接收機(jī),可以測定GPS信號到達(dá)接收機(jī)的時間,再加上接收機(jī)所接收到的衛(wèi)星星歷等其它數(shù)據(jù)可以確定以下四個方程式:上述四個方程式中待測點(diǎn)坐標(biāo)x、y、z和為未知參數(shù),其中。di(i=1,2,3,4)分別為衛(wèi)星1,衛(wèi)星2,衛(wèi)星3,衛(wèi)星4到接收機(jī)之間的距離。分別為衛(wèi)星1,衛(wèi)星2,衛(wèi)星3,衛(wèi)星4的信號到達(dá)接收機(jī)所經(jīng)歷的時間。C為GPS信號的傳播速度(即光速)。四個方程式中各個參數(shù)意義如下:x,y,z為待測點(diǎn)坐標(biāo)的空間直角坐標(biāo)。Xi,yi,zi(i=1,2,3,4

26、)分別為衛(wèi)星1,衛(wèi)星2,衛(wèi)星3,衛(wèi)星4在t時刻的空間直角坐標(biāo),可由衛(wèi)星導(dǎo)航電文求得。Vti(i=1,2,3,4)分別為衛(wèi)星1,衛(wèi)星2,衛(wèi)星3,衛(wèi)星4的衛(wèi)星鐘的的鐘差,由衛(wèi)星星歷提供。Vt0為接收機(jī)的鐘差。由以上四個方程即可解算出待測點(diǎn)的坐標(biāo)x,y,z和接收機(jī)的鐘差Vt0.目前GPS系統(tǒng)提供的定位精度是優(yōu)于10米,而為得到更高的定位精度,通常采用差分GPS技術(shù):將一臺GPS接收機(jī)安置在基準(zhǔn)站上進(jìn)行觀測。根據(jù)基準(zhǔn)站已知精密坐標(biāo),計算出基準(zhǔn)站到衛(wèi)星的距離改正數(shù),并由基準(zhǔn)站實(shí)時將這一數(shù)據(jù)發(fā)送出去。用戶接收機(jī)在進(jìn)行GPS觀測的同時,也接收到基準(zhǔn)站發(fā)出的改正數(shù),并對其定位結(jié)果進(jìn)行改正,從而提高定位精度。3

27、 實(shí)驗步驟1. 檢查跳線確定試驗平臺擴(kuò)展槽上方JP1102/JP1103跳線位于2、3之間,跳線位為EXPORT;確定GPS/GPRS模塊的JP201/JP202跳線位于模塊外側(cè)GPS端。2. 接入設(shè)備關(guān)閉2410-S平臺,將GPS天線連接到GPS/GPRS模塊上,天線接收端置放在能良好接收室外信號的地方,比如說窗臺,將模塊插入2410-S擴(kuò)展插槽。3. 編譯程序rootlocalhost/#cd /arm2410s/exp/basic/07_gps/rootlocalhost 07_gps#makearmv41-unknown-linux-gcc -c -o mian.o mian.carm

28、v41-unknown-linux-gcc -c -o gps.o gps.carmv41-unknown-linux-gcc -o./bin/gps main.o gps.o-lpthread4. 運(yùn)行程序啟動minicom,執(zhí)行以下指令。/mnt/yaffsmount -t nfs 3:/arm2410s /host /掛載主機(jī)目錄,IP地址可變。/mnt/yaffscd/host/exp/basic/bin/host/exp/basic/bin./gps此時可直接在minicom中看到試驗結(jié)果。通訊實(shí)驗確定試驗平臺擴(kuò)展槽上方JP1102/JP1103跳線位于2,3之

29、間,跳線為EXPORT;確定GPS/GPRS模塊的JP201/JP202跳線位于模塊上,將任意可用GSM手機(jī)SIM卡插入模塊背面SIMCARD插槽內(nèi),將模塊插入2410-S擴(kuò)展插槽編譯程序rootlocalhost /# cd /arm2410s/exp/basic/08_gprs/ /進(jìn)入實(shí)驗所在目錄rootlocalhost 08_gprs#make /編譯實(shí)驗內(nèi)容生成可執(zhí)行文件armv41-unknown-linux-gcc -c -o main.o main.carmv41-unknown-linux-gcc -c -o tty.o tty.carmv41-unknown-linux-

30、gcc -c -o gprs.o gprs.carmv41-unknown-linux-gcc -c -o keyshell.o keyshell.carmv41-unknown-linux-gcc -o ./bin/gprs main.o tty.o gprs.o keyshell.o ./keyboard/keyboard.o ./keyboard/get key.o -lpthread5. 觀看實(shí)驗結(jié)果<gprs control shell>1give a call /撥號2respond a call /接電話3hold a call /掛斷4send a msg /發(fā)送短

31、信(已定)*help menuKeyshell實(shí)驗七內(nèi)核與根文件系統(tǒng)實(shí)驗一、實(shí)驗?zāi)康牧私釲inux的內(nèi)核與根文件的概念,學(xué)會他們的燒寫。二、實(shí)驗內(nèi)容結(jié)合實(shí)驗指導(dǎo)書進(jìn)行內(nèi)核與根文件系統(tǒng)的燒寫。三、實(shí)驗內(nèi)容1、燒寫Linux內(nèi)核程序。首先安裝驅(qū)動程序,需要進(jìn)行相關(guān)驅(qū)動的安裝,點(diǎn)擊添加硬件,如圖所示:選擇下一步,截圖如下:添加Giveio點(diǎn)擊下一步安裝安裝好了截圖如圖所示:好了之后,需要燒寫VIVI使用CMD打開燒寫程序在此后出現(xiàn)的三次要求輸入?yún)?shù),第一次是讓選擇Flash,,選0,然后回車如圖所示:第二次是選擇jtag對flash的兩種功能,也選0,然后回車,如圖所示:第三次是讓選擇起始地址,選0

32、,然后回車,等待大約3-5分鐘的燒寫時間,如圖所示:當(dāng)VIVI燒寫完畢后選擇參數(shù)2,退出燒寫。如圖所示:至此內(nèi)核燒寫完畢。2、燒寫根文件系統(tǒng):在vivi狀態(tài)下,輸入燒寫根文件的命令為:tftp flash root root.cramfs.如圖所示:至此根文件系統(tǒng)燒寫完畢!實(shí)驗八驅(qū)動程序設(shè)計實(shí)驗1 實(shí)驗?zāi)康?、學(xué)習(xí)在LINUX下進(jìn)行驅(qū)動設(shè)計的原理;2、掌握使用模塊方式進(jìn)行驅(qū)動開發(fā)調(diào)試的過程。2 實(shí)驗內(nèi)容在PC機(jī)上編寫簡單的虛擬硬件驅(qū)動程序并進(jìn)行調(diào)試,實(shí)驗驅(qū)動的各個接口函數(shù)的實(shí)現(xiàn),分析并理解驅(qū)動與應(yīng)用程序的交互過程。3 實(shí)驗步驟Linux中的驅(qū)動設(shè)計是嵌入式Linux開發(fā)中十分重要的部分,他要求

33、開發(fā)者不僅要熟悉Linux的內(nèi)核機(jī)制、驅(qū)動程序與用戶級應(yīng)用程序的接口關(guān)系、考慮系統(tǒng)中對設(shè)備的并發(fā)操作等等,而且還要非常熟悉所開發(fā)硬件的工作原理。這對驅(qū)動開發(fā)者提出了比較高的要求,這個實(shí)驗主要是給大家進(jìn)入驅(qū)動設(shè)計提供一個簡單入門的實(shí)例,并不需要提供太多與硬件相關(guān)的內(nèi)容,這部分應(yīng)該是通過仔細(xì)閱讀芯片廠家提供的資料來解決。驅(qū)動程序的作用是應(yīng)用程序與硬件之間的一個中間軟件層,驅(qū)動程序應(yīng)該為應(yīng)用程序展現(xiàn)硬件的所有功能,不應(yīng)該強(qiáng)加其他的約束,對于硬件使用的權(quán)限和限制應(yīng)該由應(yīng)用程序?qū)涌刂?。但是有時驅(qū)動程序的設(shè)計是跟所開發(fā)的項目相關(guān)的,這時就可能在驅(qū)動層加入一些與應(yīng)用相關(guān)的設(shè)計考慮,主要是因為在驅(qū)動層的效率比應(yīng)用層高,同時為了項目的需要可能只強(qiáng)化或優(yōu)化硬件的某個功能,而弱化或關(guān)閉其他的一些功能;到底需要展現(xiàn)硬件的那些功能全都由開發(fā)者根據(jù)需要而定。驅(qū)動程序有時會被多個進(jìn)程同時使用,這時我們要考慮如何處理并發(fā)的問題,就需要調(diào)用一些內(nèi)核的函數(shù)使用互斥量和鎖等機(jī)制。驅(qū)動程序主要需要考慮下面三個方面:提供盡量多的選項給用戶,提高驅(qū)動程序的速度和效率,盡量使驅(qū)動程序簡單,使之易于維護(hù)。Linux的驅(qū)動開發(fā)調(diào)試有兩種方法,一種是直接編譯到內(nèi)核,再運(yùn)行新的內(nèi)核來測試;二是編譯為模

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論