嵌入式系统 实验报告 南邮_第1页
嵌入式系统 实验报告 南邮_第2页
嵌入式系统 实验报告 南邮_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告(2011/2012学年第二学期)课程名称 ARM嵌入式系统原理与开发实验名称嵌入式Linux交叉开发环境建立与程序开发实验时间指导单位

2012 年 6计算机学院

月 21 日指导教师 王诚学生姓名学院(系)

颜泽鑫通信与信息工程

班级学号 B09011027专 业 电子信息工程实验一、熟悉Linux开发环境实验目的:熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用,学习使用Linux操作系统的常用命令。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。实验内容与要求:使用RedhatLinux9.0ARM-Linuxhello.c和MakefileLinux译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。学会集成环境的安装与开发。实验设备及工具(包括软件调试工具):硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10GB以上。软件:PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境。实验过程:运行PC机上的Linux系统,进入系统后,建立工作目录,所用语句如下:[root@zxtsmile]#mkdirhello[root@zxtsmile]#cdhello编写的hello.c如下:#include<stdio.h>main(){o}要使上面的hello.c程序能够运行,必须要编写一个Makefile文件,Makefile哪些文件需要重新编译等等更为复杂的命令。本次实验所用的Makefile文件如下:CC=armv4l-unknown-linux-gccEXEC=helloOBJS=hello.oCFLAGS+==all:$(EXEC)$(EXEC):$(OBJS)$(CC)$(LDFLAGS)-o$@$(OBJS)clean:-rm-f$(EXEC)*.elf*.gdb*.o使用如下语句来创建Makefile文件:[root@zxthello]#viMakefile接下来,进行hello.c的编译,使用以下语句:[root@zxthello]#makeclean[root@zxthello]#make在宿主PC计算机上启动NFS服务,并设置好共享的目录,进入MINICOM中建立开发板与宿主PC机之间的通讯。[root@zxthello]#minicomtso实验小结 :通过此次的实验,对于Linux操作系统有了初步的认识。通过实验,感到理分详细,对于较为复杂的编程以及Linux下的很多技巧任然知之甚少,希望能多一些这样的实践性的教学环节,让我们更好的了解书本中知识的应用。实验二、串行端口程序设计实验目的:通过该配套实验环节,巩固和加强对《嵌入式系统B》理论课的学习和培养实践动手能力。实验内容与要求:了解在Linux方法,熟悉终端I/O函数的使用。学习使用多线程来完成串口的收发处理。读懂程序源代码,学习终端I/O函数的使用方法,学习将多线程编程应用到串口的接收和发送程序设计中。实验设备:硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10GB以上。软件:PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境。实验过程:异步串行地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信方式,双方使用各自的时钟信号,而且允许“0”作为起始位,然后出现在通信线上的是字567位或8般采用ASCII“1”位可以约定持续1位、1.5位或2进入空闲,持续为”Linux操作系统从一开始就对串行口提供了很好的支持,为进行串行通讯提供了大量的函数,本次实验主要使用在Linux中进行串行通讯编程的基本方法。程序流程图如下:主程序 接收线程 发送线程程序如下:#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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论