嵌入式系统基础实验报告

嵌入式系统基础实验报告

ID:40959050

大小:403.00 KB

页数:11页

时间:2019-08-11

嵌入式系统基础实验报告_第1页
嵌入式系统基础实验报告_第2页
嵌入式系统基础实验报告_第3页
嵌入式系统基础实验报告_第4页
嵌入式系统基础实验报告_第5页
资源描述:

《嵌入式系统基础实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式系统基础实验报告班级:学号:姓名:教师:第11页共11页目录实验说明实验做为学习的重要促进手段,是为了深化对理论的理解,锻炼实践动手能力,此为实验目的。实验准备工作1.安装ARM交叉编译工具链Ø2.如何在PC端进入开发板目录Ø3.在开发板上挂载PC目录实验内容l专题一IPC实验Ø1.UnixSocketØ2.FiFoPipeØ3.SystemVØ4.Mmapl专题二Drive实验1.字符驱动Ø2.PollDevice第11页共11页专题一:IPC(进程间通信)实验编号1题目UnixSocket整体理解使用socket实现进程间通信:(UNIXdomain中面向连接通信)使用套接字除了

2、可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。首先创建SOCKET,选择连接的方式TCP,面向连接,然后通过bind函数将他们绑定起来,服务端通过listen监听,看是否有连接请求,如果有就accept,客户端通过connect函数连接服务端,连接完成后,通过调用read/write函数来传递消息。理解代码一.Socket的三个参数1.socket的domain参数AF_UNIX,AF_LOCAL,AF_INET,PF_UNIX,PF_LOCAL,PF_INET.这几个参数有AF_UNIX=AF_LOCAL,PF_UNIX=PF_LOCA

3、L,AF_LOCAL=PF_LOCAL,AF_INET=PF_INET.AF_UNIX表示以文件方式创建socket,AF_INET表示以端口方式创建socket2.type:指定一个通信语义,其中:SOCK_STREAM:提供一系列reliable,two-way,connection-basedbytestream.Anout-of-banddatatransmissionmechanism3.protocal:指定一个给socket使用的协议,其中0:由于在本地通讯中不使用协议,所以设置0表示不使用任何协议二.地址格式4.地址格式常用的有两种socket域:AF_UNIX或AF_IN

4、ET,因此就有两种地址格式:sockaddr_un和sockaddr_in,un_path存放socket的本地文件名,sin_addr存放socket的ip地址5.创建完一个socket后,使用bind将其绑定:intbind(intsocket,conststructsockaddr*address,size_taddress_len)//将两种地址格式统一起来6.接下来开始监听:intlisten(intsocket,intbacklog)7.接受连接:intaccept(intsocket,structsockaddr*address,size_t*address_len)8.客户

5、端通过connect()函数与服务器连接:intconnect(intsocket,conststructsockaddr*address,size_taddress_len)9.双方都建立连接后,就可以使用常规的read/write函数来传递数据了10.通信完成后,我们需要关闭socket:intclose(intfd)第11页共11页实验结果分析使用套接字在UNIX域内实现进程间通信的客户端程序。相比服务端的程序,客户段较为简单。程序首先通过调用socket函数创建通信所需的套接字,然后,调用connect函数来连接服务器,在成功建立连接后,通过调用write函数向服务器发送指定的消息

6、。先挂载服务器,然后开启运行客户端,得到运行结果如图的上半部分。通过ipcs指令可以查看进程间通信的状态,得到如图的下半部分。实验编号2题目FiFoPipe整体理解1.fifo和pipe的区别mkfifo得到的是有名管道。这样的管道,在外界看起来像是一个文件。pipe()得到的是匿名管道,外界一般看不到它,故称“匿名”管道。fifo:可用于任意进程间,双工,有文件名,数据在内存,pipe:具有亲缘关系的进程间,单工,数据在内存中。1.创建匿名管道#includeintpipe(intfiledes[2]);该函数返回一个文件描述符数组fd[],fd[0]用于读管道,fd

7、[1]用于写管道。进程调用fork之后,子进程也会得到这两个文件描述符,且操作的是同一个管道。这样就在父子进程之间建立了通信连接。若父进程关闭写端f[1],子进程关闭读端f[0],那么就建立了一条子进程到父进程的单向管道。类似地,还可以建立一条父进程到子进程的单向管道。如果父进程在fork第11页共11页之前调用了pipe两次,创建了两条管道,那么可以在之后利用上面的方法建立两条半双工管道,一条从子进程读数据,一条向子进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。