嵌入式设计与开发实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式设计与开发
实
验
指
导
书
内蒙古工业大学信息学院计算机系
2016年3月
目录
实验一、嵌入式Linux开发入门 (3)
实验二文件及进程控制编程 (5)
实验三进程间通信程序设计 (7)
实验四网络通信程序设计 (8)
实验一、嵌入式Linux开发入门
一、实验目的
1、掌握GCC编译器的使用
2、掌握如何通过gdb调试应用程序
3、掌握makefile文件的编写
4、掌握交叉编译工具的使用
二、实验内容
1、熟悉虚拟机linux开发工具的使用
2、使用gcc编译程序,gdb调试程序、编写makefile文件
3、通过nfs方式挂载实验箱,通过交叉编译工具编译基于ARM架构的程序,下载到实验箱并执行程序,分析程序执行结果。
三、实验要求:
1、编写一个C源程序,使用gcc进行编译,并分别使用-c、-g、-O、-O2等编译选项;使用gdb进行调试,调试中使用常用的gdb命令;记录调试过程,在实验报告中描述。
2、实现一个应用程序,该程序由两个或两个以上的C源文件构成,编写makefile文件,通过make工具完成该程序
的编译。
3、通过nfs挂载实验箱,将前面的程序通过arm_linux_gcc 进行编译,下载到实验箱执行,分析结果。
实验二文件及进程控制编程
一、实验目的
1、掌握采用系统调用的方式进行文件操作
2、掌握进程控制相关的调用:fork( )、exec( )、wait( )等。
二、实验内容
1、编写程序实现who命令的功能
2、进程控制程序设计
三、实验要求
1、编写程序实现who命令的功能。在终端里运行who命令,查看结果,分析其实现原理,然后用文件操作实现其功能。(提示:who是读取/var/run/utmp文件来得到输出信息的,utmp是二进制文件,里面保存的是结构体数组,这些数组是struct utmp结构体。)
2、编程使用fork( )、vfork( )创建子进程,分别在父进程、子进程中显示出进程的PID,父进程打印字符串”**********”,然后sleep一定的时间,子进程打印字符串”##########”,然后sleep一定时间。多次执行程序,分析fork的特点。
3、编程使用exec函数族启动进程,在子进程中调用exec 函数族启动新的程序。
4、在实验2的基础上改进,要求父进程等待子进程结束后输出“子进程结束”,然后退出。(提示:使用wait或waitpid)
实验三进程间通信程序设计
一、实验目的
1、掌握进程间通信的基本方法
2、掌握基于管道、信号、共享内存、消息队列等进程间
通信的实现
二、实验内容:
1、采用无名管道和命名管道实现进程间通信
2、采用共享内存或消息队列实现进程间通信
三、实验要求:
1、在父进程中创建一个无名管道,创建子进程读该管道,父进程写该管道。
2、编写进程A和进程B,实现进程A创建命名管道,并写入数据,进程B读命名管道
3、编写进程A和进程B,实现进程A创建共享内存,并写入数据,进程B读出A进程写入的数据
4、创建一消息队列,实现向消息对列写数据和读数据。
其中3、4可以任选一个实现
实验四网络通信程序设计
一、实验目的
1、掌握Linux的socket套接字网络编程
2、熟悉使用TCP传输协议的网络编程流程
3、熟悉使用UDP传输协议的网络编程流程
二、实验内容:
1、实现基于TCP协议的服务端、客户端通信
2、实现基于UDP协议的服务端、客户端通信
三、实验要求:
1、编写使用TCP协议的服务端、客户端程序,实现客户端向服务器发送字符串,服务器打印收到的字符串。
2、编写使用UDP协议的服务端、客户端程序,实现客户端向服务器发送字符串,服务器打印收到的字符串。