嵌入式操作系统实验指导书
更新时间:2023-12-06 15:38:01 阅读量: 教育文库 文档下载
- 嵌入式工作推荐度:
- 相关推荐
《嵌入式操作系统》实验指导书
实验1 Linux编程基础
实验序号:1 适用专业:计算机科学与技术、通信工程 一、实验目的
1、熟悉Vim的工作模式,熟练使用vim中的常见操作。
2、熟练掌握gcc编译命令及gdb的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。
3、熟悉多文件的makefile的编写,熟悉各种形式的makefile,并且进一步加深对makefile中用户自定义变量、自动变量的理解。
4、使用autotools生成多文件的makefile,进一步掌握autotools的使用方法。 二、实验内容
1、vim使用练习
(1)在“/root”目录下建一个名为“vim”的目录。 (2)进入“vim”目录。
(3)将文件“/etc/inittab”复制到“vim”目录下。 (4)使用vim打开“vim”目录下的inittab.
(5)设定行号,指出设定initdefault(类似于“id:5:initdefault”)的所在行号。 (6)将光标移到该行。 (7)复制该行内容。
(8)将光标移到最后一行行首。 (9)粘贴复制行的内容。 (10)撤销第9步的动作。
(11)将光标移动到最后一行的行尾。 (12)粘贴复制行的内容。
(13)光标移到“si::sysinit:/etc/rc.d/rc.sysinit”。 (14)删除该行。 (15)存盘但不退出。 (16)将光标移到首行。
(17)插入模式下输入“Hello,this is vi world!”. (18)返回命令行模式。
(19)向下查找字符串“0:wait”。 (20)再向上查找字符串“halt”。
1
实验名称:Linux编程基础
学 时 数:4学时
(21)强制退出vim,不存盘。 2、用gdb调试程序的bug
(1)使用vi编辑器,将以下代码输入到名为greet.c的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出,代码如下所示。
#include
int display1(char *string); int display2(char *string);
int main() { }
int display1(char *string) { }
int display2(char *string1) {
char *string2; int size,i;
size=strlen(string1);
string2=(char *)malloc(size+1); for (i=0,i string2[size-i]=string[i]; printf(“The original string is %s \\n”,string); char string[]=”Embedded Linux”; display1(string); display2(string); string2[size+1]=’ ’; printf(“The string afterward is %s\\n”,string2); } (2)使用gcc编译这段代码,注意要加上“-g”选项以方便之后的调试。 (3)运行生成的可执行文件,观察运行结果。 (4)使用gdb调试程序,通过设置断点、单步跟踪,一步步找出错误所在。 2 (5)纠正错误,更改源程序并得到正确的结果。 3、编写包含多文件的makefile (1)用vi在同一目录下编辑两个简单的hello程序,如下所示。 #hello.c #include“hello.h” int main() { } #hello.h #include (2)仍在同一目录下用vim编辑makefile,且不使用变量替换,用一个目标体实现(即直接将hello.c和hello.h编译成hello目标体)。然后用make验证所写的makefile是否正确。 (3)将上述makefile使用变量替换实现。同样用make验证所编写的makefile是否正确。 (4)编辑另一个makefile,取名为makefile1,不使用变量替换,但用两个目标体实现(也就是首先将hello.c和hello.h编译为hello.o,再将hello.o编译为hello),再用make的“-f”选项验证这个makefile1的正确性。 (5)将上述makefile1使用变量替换实现。 4、使用autotools生成包含多文件的makefile (1)在/root下新建文件夹auto。 (2)将上例的两个代码文件“hello.c”和“hello.h”复制到该目录下。 (3)使用autoscan生成configure.scan. (4)编辑configure.scan,修改相关内容,并将其重命名为configure.in。 (5)使用aclocal生成aclocal.m4。 (6)使用autoconf生成configure。 (7)使用autoheader生成config.h.in。 (8)编辑makefile.am。 (9)使用automake生成makefile.in。 (10)使用configure生成makefile。 (11)使用make生成hello可执行文件,并在当前目录下运行hello查看结果。 (12)使用make install将hello安装到系统目录下,并运行,查看结果。 (13)使用make dist生成hello压缩包。 printf(“Hello everyone!\\n”); 3 (14)解压hello压缩包。 (15)进入解压目录。 (16)在该目录下安装hello软件。 三、实验步骤 根据实验内容要求完成实验。 4 实验2 进程管理实验 实验序号:2 适用专业:计算机科学与技术、通信工程 一、实验目的 1、通过编写多进程程序,使读者熟练掌握fork()、exec()、wait()和waitpid()等函数的使用,进一步理解在Linux中多进程编程的步骤。 2、通过编写经典的“生产者—消费者”问题的实验,进一步熟悉Linux中的多线程编程,掌握用信号量处理线程间的同步和互斥问题。 二、实验内容 1、编写多进程程序 该实验有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行“ls -l”指令,另一个子进程在暂停5s之后异常退出,父进程先用阻塞方式等待第一个子进程的结束,然后用非阻塞方式等待另一个子进程的退出,等待收集到第二个子进程结束的信息,父进程就返回。参考流程图如图1所示。 实验名称:进程管理实验 学 时 数:4学时 开始 fork()创建两个子进程子进程1父进程阻塞式等待子进程1的结束等待1s子进程2是否结束?运行(调用execlp()执行“ls -l”命令)是子进程2运行(调用sleep函数)结束 图1 多进程实验流程图 2、多线程实验 编写“生产者—消费者”问题的实验,熟悉Linux中的多线程编程。 “生产者—消费者”问题描述如下。有一个有限缓冲区和两个线程:生产者和消费者。他们分别不停地把产品放入缓 冲区和从缓冲区中拿走产品。一个生产者在缓冲区满的时候必须等待,一个消费者在 缓冲区空的时候也必须等待。另外,因为缓冲区是临界资源,所以生产者和消费者之间必须互斥执行。 要求使用有名管道来模拟有限缓冲区,并且使用信号量来解决“生产者—消费者”问题中 5
正在阅读:
嵌入式操作系统实验指导书12-06
精益一站到底知识题库01-19
实验中学校本课程图谱201306-25
如何处理好业主与物业管理企业的关系12-28
综合实践活动心得体会 - 国培计划01-05
sqlserver2000自动备份数据库,Sql Server Agent服务未启动问题集合10-06
我家的仙人掌作文450字07-15
实验二 实验报告07-03
中班踩踏安全教案03-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 指导书
- 嵌入式
- 操作系统
- 实验
- 电子购物商城系统毕业论文 - 图文
- 《施工项目管理实务模拟》练习题
- 关于《续租事宜的邀请函》的复函
- 炼钢厂100Trh精炼炉设备安装施工方案
- 冷却系统试题
- 创世纪背景与注释
- 2018-2019年英语小学人教精通版三年级上册Unit 1 Hello Im monkey Lesson1 精编习题 第一课时
- 真题2018年湖南省湘西州中考数学试卷(含解析)
- CCNA网络学院第一学期 第五章OSI网络层试题及答案
- 动漫影视赏析论文要求
- 心理危机干预应急预案
- 上海施工许可证办理流程
- 大学应用语文部分练习答案
- 《金融学基础》平时作业(新)
- 孝老爱亲的材料
- 2017-2023年中国微型车行业运营态势报告(目录) - 图文
- 深水保(2007)362号--关于印发《深圳市开发建设项目水土保持服务费计列办法》的通知
- 2019年整理广东省建筑施工安全管理资料统一用表--安全教育精品资料
- 送法下乡读后感
- 广联达算量软件学习心得 - 图文