嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書_第1頁
嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書_第2頁
嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書_第3頁
嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書_第4頁
嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——嵌入式系統(tǒng)與應(yīng)用試驗指導(dǎo)報告書安徽工業(yè)大學(xué)

嵌入式系統(tǒng)與應(yīng)用

試驗報告冊

學(xué)院:電氣與信息工程學(xué)院專業(yè):測控技術(shù)與儀器姓名:學(xué)號:

試驗一Linux認(rèn)知試驗

一、試驗?zāi)康模?/p>

1、通過試驗,把握Linux操作系統(tǒng)下常用的命令,能靈活運(yùn)用這些命令完成特定的工作;

2、學(xué)習(xí)Linux下文本編輯器vi的使用方法。

二、試驗內(nèi)容:

1、新建文件hello.c,文件位于/home/test/目錄下;2、使用vi編輯

三、試驗步驟:

1、開啟電腦上的虛擬機(jī),加載Linux系統(tǒng)。

2、輸入密碼進(jìn)入系統(tǒng)后,按ctrl+Alt+t開啟終端;3、使用mkdir建立/home/test文件夾;4、使用chmod命令修改文件夾權(quán)限;

5、使用vi開啟hello.c文件,從而新建文件;

6、在hello.c文件中輸入程序,使得程序能夠顯示打印字符:“Hello,Linux!〞

四、試驗結(jié)果:(包括代碼源碼和運(yùn)行結(jié)果)

1、源代碼

(1)hello.c程序代碼:

#include\intmain(){

printf(\}

(2)修改文件夾權(quán)限:

用chmod修改文件夾權(quán)限lv@lv-pc:~$cdtest1lv@lv-pc:~/test1$ls-l總用量28

-rwxr-xr-x1lvlv81365月711:36a.out-rwxr-xr-x1lvlv78695月1109:10main-rw-r--r--1lvlv2505月711:35main.c-rwxr-xr-x1lvlv81363月3020:28mianlv@lv-pc:~/test1$chmod733a.out

-1-

lv@lv-pc:~/test1$ls-l總用量28

-rwx-wx-wx1lvlv81365月711:36a.out-rwxr-xr-x1lvlv78695月1109:10main-rw-r--r--1lvlv2505月711:35main.c-rwxr-xr-x1lvlv81363月3020:28mian

2、試驗結(jié)果

五、思考:

在建立文件夾的過程中,假使不進(jìn)入管理員權(quán)限,會出現(xiàn)什么問題?同樣,不進(jìn)入管理員權(quán)限,vi編輯完代碼,能不能保存退出?chmod后面的數(shù)字參數(shù)是什么含義?

答:會出現(xiàn):鍵入mkdirtest后顯示:無法創(chuàng)立目錄\權(quán)限不夠的問題。不進(jìn)入管理員權(quán)限,vi編輯完代碼,不能保存退出。想對文件夾所修改成的權(quán)限。

-2-

試驗二交織編譯試驗

一、試驗?zāi)康模?/p>

1、通過試驗,把握交織編譯的原理,理解文件系統(tǒng)掛載的原理;

2、把握交織編譯工具的使用,學(xué)會使用兩種不同的方式訪問目標(biāo)板系統(tǒng),學(xué)會使用gdb對程序進(jìn)行調(diào)試。

二、試驗內(nèi)容:

編輯hello.c程序,使用交織編譯工具進(jìn)行編譯,生成可執(zhí)行文件,分別使用minicom和telnet登錄到目標(biāo)板上,對程序進(jìn)行運(yùn)行調(diào)試。

三、試驗步驟:

1、開啟電腦上的虛擬機(jī),加載Linux系統(tǒng)。

2、Linux系統(tǒng)登錄完畢,設(shè)置PC機(jī)網(wǎng)絡(luò)地址為192.168.0.10,其中子網(wǎng)掩碼為255.255.255.0,連接好試驗箱上的電源、網(wǎng)線和USB轉(zhuǎn)串口工具以及串口延長線。

3、按ctrl+Alt+t開啟終端,輸入sudominicom開啟minicom,查看串口設(shè)置是否正確,進(jìn)行串口設(shè)置;

4、開啟試驗箱電源,查看啟動代碼,啟動完成后,試驗箱屏幕顯示界面,按“Ctrl+c〞,然后按“Enter〞,進(jìn)入板子系統(tǒng)。

5、在文件系統(tǒng)(/home/nfs)下的test文件夾下,建立hello.c的程序,程序中輸入相應(yīng)程序,實現(xiàn)打印信息“hello,linux〞并換行輸出1~10;

6、再開啟一個終端,在該終端中轉(zhuǎn)到文件系統(tǒng)test文件夾,使用交織編譯工具對hello.c進(jìn)行編譯。

7、在minicom中,目錄轉(zhuǎn)到“/test〞文件夾下使用./(你的程序名)運(yùn)行程序;8、使用“gdb你的程序名〞運(yùn)行程序,設(shè)置斷點進(jìn)行程序調(diào)試。

9、關(guān)閉minicom,終端中輸入telnet,然后輸入open192.168.0.11,等待出現(xiàn)“l(fā)ogin:〞輸入“root〞,進(jìn)入目標(biāo)板系統(tǒng);

10、目錄轉(zhuǎn)到“/test〞文件夾下使用./(你的程序名)運(yùn)行程序;11、使用“gdb你的程序名〞運(yùn)行程序,設(shè)置斷點進(jìn)行程序調(diào)試。

四、試驗結(jié)果:(包括代碼源碼和運(yùn)行結(jié)果)

1、源程序

#includemain(){

inti;

printf(“hellolinux!!\\n〞);for(i=1;iopen192.168.0.11Trying192.168.0.11...

Connectedto192.168.0.11.Escapecharacteris'^]'.

Linux2.4.18-rmk7-pxa1(192.168.0.11)(0)192.168.0.11login:root

BusyBoxv0.60.3(2023.05.13-08:36+0000)Built-inshell(ash)Enter'help'foralistofbuilt-incommands.

#./helloarm

./helloarm:Nosuchfileordirectory#cdtest#./helloarm

Hellolinux!!

-4-

thisis1thisis2thisis3thisis4thisis5thisis6thisis7thisis8thisis9thisis10

(2)在minicom下運(yùn)行:

wyxj@wyxj-cpu:~$sudominicom[sudo]passwordforwyxj:Welcometominicom2.6.2OPTIONS:I18n

CompiledonFeb82023,06:27:51.Port/dev/ttyUSB0,21:22:32

PressCTRL-AZforhelponspecialkeysWaitingforentertostart'/bin/sh'(pid46,terminal/dev/console)PleasepressEntertoactivatethisconsole.Startingpid46,console/dev/console:'/bin/sh'

BusyBoxv0.60.3(2023.05.13-08:36+0000)Built-inshell(ash)Enter'help'foralistofbuilt-incommands.#ls

333.bmpmicrowindows-0.90sbin

binmmcsdsheryl.mp3bombmnttestdevnotebooktmp

etcpig.mp3usrhello.cprocvariceage.mpegqcop-msg-qpevconguilibqcop-msg-quicklauncherlinuxrcqtembedded-root#cdtest#./helloarm

Hellolinux!!thisis1thisis2thisis3thisis4

-5-

thisis5thisis6thisis7thisis8thisis9

thisis10

(3)超級終端下運(yùn)行:

3、gdb調(diào)試

-6-

-7-

五、思考:

1、在使用交織編譯工具進(jìn)行編譯過程中,要生成可用gdb調(diào)試的程序,需要再編譯過程中加什么參數(shù)?

答:gcc-ghello.c-ohello要加上“-g〞,這樣編譯出的可執(zhí)行代碼中才包含調(diào)試信息,否則之后gdb無法載入該執(zhí)行文件。

2、使用telnet進(jìn)行目標(biāo)板訪問過程中,什么時候運(yùn)行open命令不會出現(xiàn)連接不到目標(biāo)板的狀況?

答:目標(biāo)版能顯示文檔內(nèi)容,表示所有連接成功。連接不到原因:1)線路問題;(檢查線路);

2)telnet的網(wǎng)絡(luò)設(shè)備負(fù)載過高,無法正常響應(yīng)服務(wù);(重啟一下設(shè)備);3)telnet的網(wǎng)絡(luò)設(shè)備阻止了telnet的23端口...(于設(shè)備中開啟該端口);

-8-

試驗三S3C2410基礎(chǔ)試驗

一、試驗?zāi)康模?/p>

了解在ADS環(huán)境下對S3C2410芯片的AD接口的操作、鍵盤/LED接口的操作、直流和步進(jìn)電機(jī)的工作原理和實際編程操作。

二、試驗內(nèi)容:

1、實現(xiàn)使用ADS和簡易JTAG仿真器連接ARM芯片S3C2410;2、使用提供例程和超級終端對上述的各個模塊的接口進(jìn)行實際操作。

三、試驗步驟:

1、ADS試驗環(huán)境的建立,參照《THUEA-1A型嵌入式(ARM9)高級試驗/開發(fā)系統(tǒng)》試驗指導(dǎo)書的157~162頁;

2、設(shè)置好以后,到D盤ARM文件夾下,找到ADS的工程文件,拖入到開啟的ADS1.2中;

3、重啟開發(fā)板,超級終端中顯示等待狀態(tài),點擊ADS1.2上的調(diào)試按鈕,程序開始下裝到開發(fā)板;ADS進(jìn)入調(diào)試界面;

4、點擊調(diào)試界面上的運(yùn)行按鈕,程序執(zhí)行到主程序處,再次點擊運(yùn)行程序;5、程序運(yùn)行后,超級終端上顯示運(yùn)行提醒,按提醒操作鍵盤/LED、電機(jī)和AD轉(zhuǎn)換.

四、試驗結(jié)果:(超級終端上的運(yùn)行提醒和實際運(yùn)行結(jié)果)1、運(yùn)行程序:

(1)A/D程序:讀取采樣值函數(shù):

intReadAdc(intch){

inti;

staticintprevCh=-1;

rADCCON=(1return((int)rADCDAT0}

在超級終端顯示數(shù)字量:{

a4=ReadAdc(4);a6=ReadAdc(6);Uart_Printf(\%0.2f}

AIN6:%0.2f\\n\

(2)D/A程序:MAX504的控制程序如下:

voidDA_Test(){inti;

intSAVrGPACON,SAVrGPFCON,SAVrGPGCON;floatv;

SAVrGPACON=rGPACON;SAVrGPFCON=rGPFCON;SAVrGPGCON=rGPGCON;MAX504_CLEAR();for(i=0;i>8);

//開啟MAX504//發(fā)送高8位//左移兩位//寄放器狀態(tài)恢復(fù)//寄放器狀態(tài)恢復(fù)//寄放器狀態(tài)恢復(fù)

//MAX504讀取數(shù)字量轉(zhuǎn)化//數(shù)字量顯示//數(shù)字量保持時間//寄放器狀態(tài)保護(hù)//寄放器狀態(tài)保護(hù)//寄放器狀態(tài)保護(hù)//將DAC寄放器設(shè)為0

Uart_Printf(\Test]\\nPleaseobservethecorrespondingofoutputandinput:\\n\

Uart_Printf(\DigitalVoltageOfInput=%1.2fV\\r\

-10-

SendSPIData(value);MAX504_DISABLE();}

//發(fā)送低8位//關(guān)閉MAX504

(3)鍵盤/LED接口程序:超級終端顯示鍵值數(shù)組:

unsignedcharScandata[4][4]={

{'F','E','D','C'},{'B','A','9','8'},{'7','6','5','4'},

{'3','2','1','0'},};

數(shù)碼管碼段顯示值數(shù)組:

unsignedcharst[4][4]={

{0x8e,0x86,0xa1,0xc6},{0x83,0x88,0x90,0x80},{0xf8,0x82,0x92,0x99},{0xb0,0xa4,0xf9,0xc0},};

掃描鍵值中斷函數(shù):

do{

rGPEDAT=rGPEDATrGPEDAT=rGPEDAT|0x70;i=3;

Read_value(i);

rGPEDAT=rGPEDAT//置GPE4為低,掃描鍵盤第三行rGPEDAT=rGPEDAT|0x68;i=2;

Read_value(i);

rGPEDAT=rGPEDATrGPEDAT=rGPEDAT|0x58;i=1;

Read_value(i);

rGPEDAT=rGPEDATrGPEDAT=rGPEDAT|0x38;i=0;

Read_value(i);}while(value!='0');

//置GPE3為低,掃描鍵盤第四行//GPE4、5、6為高

//GPE3、5、6為高

//置GPE5為低,掃描其次行鍵盤//GPE3、4、6為高

//置GPE6為低,掃描第一行鍵盤//GPE3、4、5為高

-11-

某列鍵值讀?。?/p>

case(0xe):

value=Scandata[data][0];rGPADAT=0x81e0;rSMG0=st[data][0];rGPADAT=0x01e0;break;

Uart_Printf(\keyvalueis%c\

//超級終端顯示

//GPA5,6,7,8輸出1,15輸出高//數(shù)碼管顯示

//GPA5,6,7,8輸出1,15輸出低

(5)直流、步進(jìn)電機(jī)程序:

直流電機(jī)正轉(zhuǎn):rGPADAT=0xfff80;//GPA7置1,GPA4、5、6置0

Delay(50);//延時函數(shù),控制低脈沖時間rGPADAT=0xfff90;//GPA4、7置1,GPA5、6置0

Delay(30);//延時函數(shù),控制高脈沖時間

直流電機(jī)反轉(zhuǎn):

rGPADAT=0xfff20;//GPA5置1,GPA4、6、7置0

Delay(50);//延時函數(shù),控制低脈沖時間rGPADAT=0xfff60;//GPA5、6置1,GPA4、7置0

Delay(30);//延時函數(shù),控制高脈沖時間

步進(jìn)電機(jī)輸出脈沖:

rGPADAT=0xfff07;//0111,注意:低電平有效

Delay(140);//延時函數(shù),控制步進(jìn)電機(jī)轉(zhuǎn)速rGPADAT=0xfff0b;//1011

Delay(140);rGPADAT=0xfff0d;//1101

Delay(140);rGPADAT=0xfff0e;//1110

Delay(140);

2、超級終端運(yùn)行結(jié)果:

-12-

-13-

五、思考:

在ADS下載程序的過程中,目標(biāo)板為什么不能進(jìn)入到linux系統(tǒng),目標(biāo)板進(jìn)入linux系統(tǒng)后,下裝的程序能不能正常運(yùn)行?答:由于內(nèi)存沖突;能。

-14-

五、思考:

在網(wǎng)絡(luò)通信試驗中,在目標(biāo)板和PC機(jī)通信過程中,是否可以把目標(biāo)板設(shè)置為服務(wù)器,PC機(jī)設(shè)置為客戶機(jī)?為什么?

答:不可以。

客戶機(jī)又稱為用戶工作站,是用戶與網(wǎng)絡(luò)打交道的設(shè)備,一般由用戶PC擔(dān)任,每一個客戶機(jī)都運(yùn)行在它自己的、并為服務(wù)器所認(rèn)可的操作系統(tǒng)環(huán)境中??蛻魴C(jī)主要通過服務(wù)器享受網(wǎng)絡(luò)上提供的各種資源。

客戶機(jī)是連接服務(wù)器的計算機(jī),使用服務(wù)器共享的文件、打印機(jī)和其他資源,是網(wǎng)絡(luò)軟件運(yùn)行的一種形式,尋常采用客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)的系統(tǒng),有一臺或多臺服務(wù)器以及大量的客戶機(jī)。服務(wù)器配備大容量存儲器并安裝數(shù)據(jù)庫系統(tǒng),用于數(shù)據(jù)存放和數(shù)據(jù)檢索;客戶端安裝專用的軟件,負(fù)責(zé)數(shù)據(jù)的輸入、運(yùn)算和輸出。

客戶機(jī)和服務(wù)器都是獨立的計算機(jī)。當(dāng)一臺連入網(wǎng)絡(luò)的計算機(jī)向其他計算機(jī)提供各種網(wǎng)絡(luò)服務(wù)(如數(shù)據(jù)、文件的共享等)時,就被叫做服務(wù)器。那些用于訪問服務(wù)器資料的計算機(jī)則被叫做客戶機(jī)。嚴(yán)格說來,客戶機(jī)/服務(wù)器模型并不是從物理分布的角度來定義,它所表達(dá)的是一種網(wǎng)絡(luò)數(shù)據(jù)訪問的實現(xiàn)方式。

服務(wù)器(英文名稱server),也稱伺服器。指一個管理資源并為用戶提供服務(wù)的計算機(jī)設(shè)備。由于服務(wù)器需要響應(yīng)服務(wù)請求,并進(jìn)行處理,因此一般來說服務(wù)器應(yīng)具備承受服務(wù)并且保障服務(wù)的能力。服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,和通用的計算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。在網(wǎng)絡(luò)環(huán)境下,根據(jù)服務(wù)器提供的服務(wù)類型不同,分為文件服務(wù)器,數(shù)據(jù)庫服務(wù)器,應(yīng)用程序服務(wù)器,WEB服務(wù)器等。

-30-

3、目標(biāo)板運(yùn)行結(jié)果

4.超級終端上運(yùn)行

-20-

五、思考:

主程序運(yùn)行過程中,超時退出是靠select()函數(shù)的那個參數(shù)控制的?在整個試驗過程中,假使in1,in2的名字發(fā)生變化,需要修改程序源碼中的哪部分?

答:timeout;修改如下部分中的in1和in2

if((fds[1]=pen(“in1〞,O_RDONLY|O_NONBLOCK))0)set_speed(fd,115200);else{printf(\exit(0);}if(set_parity(fd,8,1,'n')==FALSE){printf(\exit(1);}printf(\while(1){read(fd,//ch=getchar();putchar(ch);//write(fd,}close(fd);return(0);}

Makefile代碼:

KERNELDIR=/usr/src/linux-2.4.20-8#CC=armv4l-unknown-linux-gccCC=gcc

CFLAGS=-I$(KERNELDIR)/include/-Wall

host_serial:$(CC)$(CFLAGS)-ohost_serialserial.chost_serial.c

clean:rm-fhost_serial

(2)target_serial.c:

#include\

#defineTRUE1

-23-

#defineFALSE0/**

*@breifmain()*/

intmain(){intfd;charch;

char*dev=\fd=init_serial(dev);if(fd>0)set_speed(fd,115200);else{printf(\exit(0);}if(set_parity(fd,8,1,'N')==FALSE){printf(\exit(1);}printf(\while(1){//ch=getchar();ch='a';write(fd,//read(fd,//printf(\//putchar(ch);}close(fd);return(0);}

Makefile代碼:

KERNELDIR=/home/sitsang/linux-2.4.19#KERNELDIR=/usrCC=arm-linux-gcc

CFLAGS=-I$(KERNELDIR)/include/-Wall

serial:

-24-

$(CC)$(CFLAGS)-otarget_serialserial.ctarget_serial.cclean:rm-ftarget_serial

2、試驗結(jié)果:

-25-

-26-

五、思考:

串口傳送過程中,假使不能接收到數(shù)據(jù),怎么處理?怎么測試PC機(jī)上的接收端口能接收到數(shù)據(jù)?

答:確認(rèn)接線正確,有信號;確認(rèn)波特率正確,兩端一致

-27-

試驗六Linux網(wǎng)絡(luò)編程試驗

一、試驗?zāi)康模?/p>

1、通過試驗,把握Linux操作系統(tǒng)下網(wǎng)絡(luò)通信的基本方法;

2、學(xué)習(xí)socket編程的基本函數(shù)socket()、bind()、listen()、accept()、send()、sendto()、recv()以及recvfrom()的使用方法;

二、試驗內(nèi)容:

該試驗中,需要建立網(wǎng)絡(luò)通信的程序,程序分為客戶端和服務(wù)器端兩部分,其中服務(wù)器端首先建立起socket,然后與本地端口進(jìn)行綁定,接著就開始接收從客戶端的連接請求并建立與它的連接,接下來,接收客戶端發(fā)送的消息??蛻舳藙t在建立socket之后調(diào)用connect()函數(shù)來建立連接。

三、

溫馨提示

  • 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

提交評論