嵌入式系統(tǒng) 實驗報告 南郵_第1頁
嵌入式系統(tǒng) 實驗報告 南郵_第2頁
嵌入式系統(tǒng) 實驗報告 南郵_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實驗報告(2011/2012學(xué)年第二學(xué)期)課程名稱 ARM嵌入式系統(tǒng)原理與開發(fā)實驗名稱嵌入式Linux交叉開發(fā)環(huán)境建立與程序開發(fā)實驗時間指導(dǎo)單位

2012 年 6計算機(jī)學(xué)院

月 21 日指導(dǎo)教師 王誠學(xué)生姓名學(xué)院(系)

顏澤鑫通信與信息工程

班級學(xué)號 B09011027專 業(yè) 電子信息工程實驗一、熟悉Linux開發(fā)環(huán)境實驗?zāi)康模菏煜inux開發(fā)環(huán)境,學(xué)會基于S3C2410的Linux開發(fā)環(huán)境的配置和使用,學(xué)習(xí)使用Linux操作系統(tǒng)的常用命令。使用Linux的armv4l-unknown-linux-gcc編譯,使用基于NFS方式的下載調(diào)試,了解嵌入式開發(fā)的基本過程。實驗內(nèi)容與要求:使用RedhatLinux9.0ARM-Linuxhello.c和MakefileLinux譯過程,以及ARM開發(fā)板的使用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到目標(biāo)開發(fā)板上運(yùn)行。學(xué)會集成環(huán)境的安裝與開發(fā)。實驗設(shè)備及工具(包括軟件調(diào)試工具):硬件:UP-NETARM2410-S嵌入式實驗平臺、PC機(jī)Pentium500以上,硬盤10GB以上。軟件:PC機(jī)操作系統(tǒng)REDHATLINUX9.0+MINICOM+ARM-LINUX開發(fā)環(huán)境。實驗過程:運(yùn)行PC機(jī)上的Linux系統(tǒng),進(jìn)入系統(tǒng)后,建立工作目錄,所用語句如下:[root@zxtsmile]#mkdirhello[root@zxtsmile]#cdhello編寫的hello.c如下:#include<stdio.h>main(){o}要使上面的hello.c程序能夠運(yùn)行,必須要編寫一個Makefile文件,Makefile哪些文件需要重新編譯等等更為復(fù)雜的命令。本次實驗所用的Makefile文件如下:CC=armv4l-unknown-linux-gccEXEC=helloOBJS=hello.oCFLAGS+==all:$(EXEC)$(EXEC):$(OBJS)$(CC)$(LDFLAGS)-o$@$(OBJS)clean:-rm-f$(EXEC)*.elf*.gdb*.o使用如下語句來創(chuàng)建Makefile文件:[root@zxthello]#viMakefile接下來,進(jìn)行hello.c的編譯,使用以下語句:[root@zxthello]#makeclean[root@zxthello]#make在宿主PC計算機(jī)上啟動NFS服務(wù),并設(shè)置好共享的目錄,進(jìn)入MINICOM中建立開發(fā)板與宿主PC機(jī)之間的通訊。[root@zxthello]#minicomtso實驗小結(jié) :通過此次的實驗,對于Linux操作系統(tǒng)有了初步的認(rèn)識。通過實驗,感到理分詳細(xì),對于較為復(fù)雜的編程以及Linux下的很多技巧任然知之甚少,希望能多一些這樣的實踐性的教學(xué)環(huán)節(jié),讓我們更好的了解書本中知識的應(yīng)用。實驗二、串行端口程序設(shè)計實驗?zāi)康模和ㄟ^該配套實驗環(huán)節(jié),鞏固和加強(qiáng)對《嵌入式系統(tǒng)B》理論課的學(xué)習(xí)和培養(yǎng)實踐動手能力。實驗內(nèi)容與要求:了解在Linux方法,熟悉終端I/O函數(shù)的使用。學(xué)習(xí)使用多線程來完成串口的收發(fā)處理。讀懂程序源代碼,學(xué)習(xí)終端I/O函數(shù)的使用方法,學(xué)習(xí)將多線程編程應(yīng)用到串口的接收和發(fā)送程序設(shè)計中。實驗設(shè)備:硬件:UP-NETARM2410-S嵌入式實驗平臺、PC機(jī)Pentium500以上,硬盤10GB以上。軟件:PC機(jī)操作系統(tǒng)REDHATLINUX9.0+MINICOM+ARM-LINUX開發(fā)環(huán)境。實驗過程:異步串行地傳送。數(shù)據(jù)的各不同位可以分時使用同一傳輸通道,因此串行I/O可以減少信方式,雙方使用各自的時鐘信號,而且允許“0”作為起始位,然后出現(xiàn)在通信線上的是字567位或8般采用ASCII“1”位可以約定持續(xù)1位、1.5位或2進(jìn)入空閑,持續(xù)為”Linux操作系統(tǒng)從一開始就對串行口提供了很好的支持,為進(jìn)行串行通訊提供了大量的函數(shù),本次實驗主要使用在Linux中進(jìn)行串行通訊編程的基本方法。程序流程圖如下:主程序 接收線程 發(fā)送線程程序如下:#include<termios.h>#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<sys/signal.h>#include<pthread.h>#defineBAUDRATEB115200#defineCOM1"/dev/ttyS0"#defineCOM2"/dev/ttyS1"#defineENDMINITERM27/*ESCtoquitminiterm*/#defineFALSE0#defineTRUE1volatileintSTOP=FALSE;volatileintfd;voidchild_handler(ints){printf("stop!!!\n");STOP=TRUE;}/*--------------------------------------------------------*/void*keyboard(void*data){intc;for(;;){c=getchar();if(c==ENDMINITERM){STOP=TRUE;break;}}returnNULL;}/*--------------------------------------------------------*//*modeminputhandler*/void*receive(void*data){intc;printf("readmodem\n");while(STOP==FALSE){read(fd,&c,1);/*comport*/write(1,&c,1);/*stdout*/}printf("exitfromreadingmodem\n");returnNULL;}/*--------------------------------------------------------*/void*send(void*data){intc='0';printf("senddata\n");while(STOP==FALSE)/*modeminputhandler*/{c++;c%=255;write(fd,&c,1);/*stdout*/usleep(100000);}returnNULL;}/*--------------------------------------------------------*/intmain(intargc,char**argv){structtermiosoldtio,newtio,oldstdtio,newstdtio;structsigactionsa;intok;pthread_tth_a,th_b,th_c;void*retval;if(argc>1)fd=open(COM2,O_RDWR);elsefd=open(COM1,O_RDWR);//|O_NOCTTY|O_NONBLOCK);if(fd<0){error(COM1);exit(-1);}tcgetattr(0,&oldstdtio);tcgetattr(fd,&oldtio);/*savecurrentmodemsettings*/tcgetattr(fd,&newstdtio);/*getworkingstdtio*/=||8||newtio.c_iflag=IGNPAR;/*inputflag*/newtio.c_oflag=0;/*outputflag*/newtio.c_lflag=0;newtio.c_cc[VMIN]=1;newtio.c_cc[VTIME]=0;/*nowcleanthemodemlineandactivatethesettingsformodem*/tcflush(fd,TCIFLUSH);tcsetattr(fd,TCSANOW,&newtio);/*setattrib*/sa.sa_handler=child_handler;sa.sa_flags=0;sigaction(SIGCHLD,&sa,NULL);/*handledyingchild*/pthread_create(&th_a,pthread_create(&th_b,NULL,NULL,keyboard,0);receive,0);pthread_create(&th_c,NULL,send,0);pthread_join(th_a,&retval);pthread_join(th_b,&retval);pthread_join(th_c,&retval);tcsetattr(fd,TCSANOW,&oldtio);/*restoreoldmodemsetings*/tcsetattr(0,TCSANOW,&oldstdtio);/*

溫馨提示

  • 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

提交評論