logo资料库

嵌入式操作系统实验报告.docx

第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
资料共47页,剩余部分请下载后查看
实验一 Linux下C编程
实验二 搭建NFS服务器
实验三 守护进程
实验四 进程间通信——有名管道
实验五 进程间通信——信号机制
实验六 进程间通信——共享内存
综合实验——课程考核
《嵌入式操作系统》实验报告 实验一 Linux 下 C 编程 一、实验目的 1、熟悉 Linux 常用命令。 2、掌握 gcc 编译器、gdb 调试器的使用方法。 3、会编写多文件的 C 程序,并使用 gcc 编译。 4、熟悉 makefile 的结构和编制,利用 make 命令编译程序。 二、实验原理 1、linux 不以文件名后缀区分文件类型,但是通常将 C 源代码以.c 结尾,事实证明,在 使用 GCC 编译器时,是要求以.c 结尾的。 2、在 linux 下,编写好的 C 程序需要编译为二进制的可执行文件才能运行;得到可执 行文件要经过以下几个步骤: 预处理汇编编译链接二进制可执行文件。 3、make 工具,是程序的自动编译器。利用时间戳检测文件修改的时间,查看当前哪些 文件是更新的,只编译改变了的程序,是一个项目管理工具。用于大型程序的编制,可节省 时间,提高效率。 Makefile 的基本格式: (1)目标体:目标文件/可执行文件。 (2)依赖文件。 (3)运行的命令(必须以 Tab 开头)。 Makefile 具有隐含规则和模式规则。隐含规则:同名的.c 文件生成同名的.o 文件,不用 写 main.o、print.o 等的编译语句。模式规则:相同名称的.c 生成相同名称的.o 文件,这种方 式更加显式。 三、实验内容 1、 编写多文件的.c 源码,实现的功能为用户输入一个数字,程序计算并输出介于 1 至此数之间的所有个位数为 1 的素数;如果不存在,则打印-1。 2、编写 Makefile 文件。 3、使用 gcc 编译并运行。 4、使用 make 编译并运行。 源程序: (1)运行 c 文件 main.c: 1
《嵌入式操作系统》实验报告 #include void first(int a); void main(){ int a; scanf("%d",&a); first(a); } (2)输出输入数字范围内个位为 1 的质数的功能 c 文件 function.c: void first(int a){ int i,j,t;//t 统计质数因子 if(a<=10){//个位数为 1 的素数只有大于 10 才存在否则不存在 printf("-1\n"); return; } for(i=1;i<=a;i++){//第一轮自动过滤数为 1 for(j=1;j<=a;j++){ if(i%j==0) t++;//一个质数只有自己和 1 两个数取余为 0 才为质数 } if(t==2&&i%10==1){//质数因子为 2 个位取余为 1 printf("%d\t",i); } t=0;//归零 } printf("\n"); } (3)Makefile 文件内容: first:main.c function.c gcc -E main.c -o first.i 注解:进行预编译 main.c 下同 gcc -E function.c -o second.i gcc -S first.i -o first.s 注解:由预编译文件生成汇编代码下同 gcc -S second.i -o second.s gcc -c first.s -o first.o 注解:由汇编代码生成生成目标文件下同 gcc -c second.s -o second.o gcc first.o second.o -o first 注解:链接目标文件 first.o second.o 生 成 目 标 文 件 注:以上的 Makefile 文件中所有 gcc 内容可以简写为 gcc main.c function.c -o first first 2
《嵌入式操作系统》实验报告 实验截图: (1)gcc 编译并运行(实验结果展示介绍放在 make 中) <1>生成预处理的.i 文件:gcc -E xx.c -o xx.i; <2>生成汇编代码.s 文件:gcc -S xx.i -o xx.s; <3>生成二进制目标代码.o 文件:gcc -c xx.s -o xx.o; <4>生成可执行文件:gcc xx.o -o xx; (2)make 编译并运行 输入命令 sudo make first 生成 first 目标文件并输入密码 输入代表数字: <1>1(本身不为个位为 1 的质数) <2>10(10 以内不存在个位为 1 的质数) <3>100(内含 5 个个位为 1 的质数) 3
《嵌入式操作系统》实验报告 实验总结:本次实验中了解到了在使用 makefile 文件来执行 make 命令编译相应文件为 可执行文件时,必须使用 su - root 或 make 命令前加 sudo 获得管理员权限。除此以外在 makefile 文件中的格式一般为目标体:再加上相应的 gcc 编译命令。在执行 gcc 编译命令时, 可以直接用 gcc xx.c -o xx 的形式形成可执行的目标文件而不必依次输入预编译、编译不汇 编、编译不连接、最后连接生成的 gcc 命令。 4
《嵌入式操作系统》实验报告 实验二 搭建 NFS 服务器 一、实验目的 1、熟悉搭建 NFS 服务器的过程和方法,为嵌入式开发打下基础。 2、了解 NFS 服务器在嵌入式开发的重要作用。 二、实验原理 1、NFS 实现不同主机与操作系统之间通过网络进行资源共享的目的; 2、在嵌入式开发中,服务器端为 PC 机;客户端为嵌入式目标板; 3、NFS 便于交叉编译的进行,可以不用将编译好的内核逐个部署到开发板,而是由开 发板根据需要自行下载。 三、实验内容 1、准备两台安装 ubuntu 系统的 PC 机。用网线连接两台计算机,设置在同一网段的静 态 IP 地址。 2、利用 ping 命令测试两台机器是否连通。 3、搭建 NFS 服务器: (1)使用 apt-get update 命令更新系统软件包 (2)使用 apt-get install nfs-kernel-server 命令安装 nfs-kelnel-server (3)作为服务端,新建 nfs 共享目录 (4)作为客户端,新建 nfs 挂载目录 (5)修改配置文件/etc/exports,对客户端设置挂载权限 (6)重启 nfs 服务,命令为 service nfs-kernel-server restart (7)客户端使用 mount 命令,手动挂载共享目录 (8)客户端卸载共享目录 实验截图: (1)搭建 NFS 服务器: 具体步骤:<1>下载 nfs 服务器(图一) <2>修改服务器配置如图二所示 <3>在修改服务器对应相同位置创建 nfs 服务器文件夹 <4>重启 nfs 服务器 5
《嵌入式操作系统》实验报告 图一 (2)客户端挂载: 图二 具体步骤:<1>使用 sudo apt-get install nfs-common 下载 nfs 命令(图片中不再演示 <2>手动使用 mount 命令挂载 nfs 服务器文件夹(采用 TCP 协议把 IP 地址为 10.200.121.240 的 nfs 服务器文件夹 home/jipeng/one 中的内容挂 载到客户端 home/jipeng/two 文件夹中) 6
《嵌入式操作系统》实验报告 (3)具体操作: <1>服务器端原有内容 <2>挂载后客户端所创建的目标文件夹 two 中自动出现的内容 <3>客户端对服务器文件.docx 进行修改 <4>服务器文件夹再次查看该文件时发现被修改 7
《嵌入式操作系统》实验报告 <5>服务器对服务器文件.docx 进行修改 <6>客户端文件夹再次查看该文件时发现被修改 实验总结:在本次试验中,首先了解到了 Linux 系统下如何用 apt 命令下载相应的 文件资源。在获得管理者权限并完成服务器和客户端的相关配置文件下载后,于服务器 端要使用 mkdir 命令生成相应的 nfs 服务器文件夹同时用 vi 命令进入/etc/exports 文件内 8
分享到:
收藏