版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026河南洛陽科技職業(yè)學(xué)院招聘15人備考題庫有完整答案詳解
- 2026貴州五色體育發(fā)展有限責(zé)任公司招聘4人備考題庫及1套參考答案詳解
- 青島濱海學(xué)院《資源環(huán)境統(tǒng)計分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南科技大學(xué)《視唱Ⅲ》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東輕工職業(yè)技術(shù)學(xué)院《醫(yī)學(xué)生物化學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌醫(yī)學(xué)院《副項與實踐(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶護(hù)理職業(yè)學(xué)院《專業(yè)論文寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州科技職業(yè)技術(shù)大學(xué)《藥物合成反應(yīng)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城市理工學(xué)院《物理化學(xué)(雙語)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長沙理工大學(xué)《醫(yī)藥信息技術(shù)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年司法鑒定人資格考試歷年真題試題及答案
- 江蘇省連云港市2024-2025學(xué)年第一學(xué)期期末調(diào)研考試高二歷史試題
- 生成式人工智能與初中歷史校本教研模式的融合與創(chuàng)新教學(xué)研究課題報告
- 2025年湖北煙草專賣局筆試試題及答案
- 2026年開工第一課復(fù)工復(fù)產(chǎn)安全專題培訓(xùn)
- 特殊人群(老人、兒童)安全護(hù)理要點
- 2026年檢察院書記員面試題及答案
- 《煤礦安全規(guī)程(2025)》防治水部分解讀課件
- 2025至2030中國新癸酸縮水甘油酯行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 2025年保安員職業(yè)技能考試筆試試題(100題)含答案
- 尾礦庫閉庫綜合治理工程項目可行性研究報告
評論
0/150
提交評論