嵌入式Linux系统串口和以太网编程资料.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE14 / NUMPAGES15 中国地质大学(北京) 实 验 报 告 课程名称:嵌入式系统 实验名称:嵌入式Linux系统串口和以太网编程 姓 名: 学 号: 班 级: 指导教师:曾 卫 华 评 分: 实验时间: 2013.5 实验题目:嵌入式Linux系统串口和以太网编程 一、实验目的 熟悉Linux环境 掌握嵌入式开发的基本流程,培养解决问题的能力 掌握Linux串口及以太网socket的应用程序开发 自学嵌入式Linux中多线程编程基础 二、实验内容 本次实验通过编写服务器(开发板)与客户端(虚拟机ubuntu)上的应用程序,来实现服务器与客户端之间信息的透明转发,构成类似于聊天的功能。该功能实现包括两个方面。 其一:服务器通过串口从终端(电脑键盘)上读取(read)数据,再通过网络(clifd)把读取到的数据发送到客户端,客户端在接收到数据后在显示器上打印出来; 其二:客户端把数据通过网络发送到主机上,主机接收到数据后通过串口写到电脑终端软件(SecureCRT)进行显示。实验流程图如下: 图一:总体框架图 三、基础知识 掌握linux串口和以太网socket应用程序开发方法: 串口配置:?打开串口,获得串口的使用句柄fd ??获取原先配置参数并进行保存??设置波特率??设置奇偶校验位??设置??设置停止位??设置最少接受字符和等待时间??设置数据位、无流控等相关参数??激活最新配置??结束时还原串口原先配置。 网络socket编程: 服务器端:?创建一个socket??bind(),给socket注册服务器端口地址??listen(),开始监听已经绑定的端口,创建监听队列??accept(),返回一个新的socket,阻塞等待客户端client的连接?? send(),recv()发送和接收数据??close(),关闭服务器。客户端:?创建一个socket??connect(),建立与服务器的连接??send(),recv()发送和接收数据???close(),关闭客户端。 掌握linux系统中线程的使用方法: 在linux中创建新的线程可以使用两种方式:pthread_create()函数和fork()函数。 pthread_create()使用: int?pthread_create(pthread_t?*restrict?thread, const?pthread_attr_t?*restrict?attr, void?*(*start_routine)(void*),?void?*restrict?arg); 参数:thread输出线程id,attr?线程属性, 默认NULL,start_routine线程执行函数,arg线程执行参数?。函数成功时返回0, 否则返回错误码。 fork()函数的使用: 一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。这样,对于程序,只要判断fork函数的返回值,就知道自己是处于父进程还是子进程中。 四、实现过程 4.4.3交叉编译工具的PATH已经生效,在任意目录下能够执行arm-linux-gcc –v 在开发板上进行内核以及根文件系统的移植,构建嵌入式linux系统 nfs网络文件系统的配置: 1.打开nfs1175.exe 2.配置板子ip,使其和电脑ip在同一个网段 3.挂载:在板子上运行 #mount -t nfs -o nolock 202.204.100.66:/f/aaa/LINUX/Share /mnt/nfs 4.使用 cd /mnt/nfs/0522 进入nfs共享目录下,ls 显示共享目录下的文件; 仔细阅读提供的代码server.c和client.c Target为服务器,Ubuntu为客户端。修改和完善代码,在原代码的基础上实现新的功能 交叉编译server.c(# arm-linux-gcc -lpthread -o server server.c) 本地编译client.c(# gcc -o client client.c -lpthread) 在板子上运行server可执行文件: #chmod 777 server,运行server: #./server 在ubuntu上运行client程序:

文档评论(0)

x5511167 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档