欢迎来到天天文库
浏览记录
ID:34610072
大小:312.85 KB
页数:15页
时间:2019-03-08
《嵌入式linux系统串口和以太网编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中国地质大学(北京)实验报告课程名称:嵌入式系统实验名称:嵌入式Linux系统串口和以太网编程姓名:学号:班级:指导教师:曾卫华评分:实验时间:2013.5实验题目:嵌入式Linux系统串口和以太网编程一、实验目的1、熟悉Linux环境2、掌握嵌入式开发的基本流程,培养解决问题的能力3、掌握Linux串口及以太网socket的应用程序开发4、自学嵌入式Linux中多线程编程基础二、实验内容本次实验通过编写服务器(开发板)与客户端(虚拟机ubuntu)上的应用程序,来实现服务器与客户端之间信息的透明转发,
2、构成类似于聊天的功能。该功能实现包括两个方面。其一:服务器通过串口从终端(电脑键盘)上读取(read)数据,再通过网络(clifd)把读取到的数据发送到客户端,客户端在接收到数据后在显示器上打印出来;其二:客户端把数据通过网络发送到主机上,主机接收到数据后通过串口写到电脑终端软件(SecureCRT)进行显示。实验流程图如下:图一:总体框架图三、基础知识1、掌握linux串口和以太网socket应用程序开发方法:串口配置:打开串口,获得串口的使用句柄fd获取原先配置参数并进行保存设置波特率
3、设置奇偶校验位设置设置停止位设置最少接受字符和等待时间设置数据位、无流控等相关参数激活最新配置结束时还原串口原先配置。网络socket编程:服务器端:创建一个socketbind(),给socket注册服务器端口地址listen(),1/15开始监听已经绑定的端口,创建监听队列accept(),返回一个新的socket,阻塞等待客户端client的连接send(),recv()发送和接收数据close(),关闭服务器。客户端:创建一个socketcon
4、nect(),建立与服务器的连接send(),recv()发送和接收数据close(),关闭客户端。2、掌握linux系统中线程的使用方法:在linux中创建新的线程可以使用两种方式:pthread_create()函数和fork()函数。pthread_create()使用:intpthread_create(pthread_t*restrictthread,constpthread_attr_t*restrictattr,void*(*start_routine)(void*),void*
5、restrictarg);参数:thread输出线程id,attr线程属性,默认NULL,start_routine线程执行函数,arg线程执行参数。函数成功时返回0,否则返回错误码。fork()函数的使用:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。这样,对于程序,只要判断fork函数的返回值,就知道自己是处于父进程还是子进程中。四、实现过
6、程1、4.4.3交叉编译工具的PATH已经生效,在任意目录下能够执行arm-linux-gcc–v2、在开发板上进行内核以及根文件系统的移植,构建嵌入式linux系统3、nfs网络文件系统的配置:1.打开nfs1175.exe2.配置板子ip,使其和电脑ip在同一个网段3.挂载:在板子上运行#mount-tnfs-onolock202.204.100.66:/f/aaa/LINUX/Share/mnt/nfs4.使用cd/mnt/nfs/0522进入nfs共享目录下,ls显示共享目录下的文件;4、仔细阅
7、读提供的代码server.c和client.cTarget为服务器,Ubuntu为客户端。修改和完善代码,在原代码的基础上实现新的功能5、交叉编译server.c(#arm-linux-gcc-lpthread-oserverserver.c)6、本地编译client.c(#gcc-oclientclient.c-lpthread)7、在板子上运行server可执行文件:#chmod777server,运行server:#./server8、在ubuntu上运行client程序:#./client202
8、.204.100.67;五、实验结果客户端运行client与服务器端运行server建立通信2/15服务器端:客户端:按下$中断通信服务器端:客户端:六、心得体会在这一次的实验中,我们先建立硬件实验平台,又建立主机软件开发环境,接着为实验进行各项配置,最后完成了各个实验中的多种功能。很重要的一点,前期的硬件、软件准备3/15必须完整无误地实现,这是后续的实验能顺利进行的前提。本实验中,已经给出了串口程序和socket编程的程序,需要我们自学
此文档下载收益归作者所有