付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——嵌入式操作系统试验指导书
《嵌入式操作系统》试验指导书
试验1Linux编程基础
试验序号: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,thisisviworld!〞.(18)返回命令行模式。
(19)向下查找字符串“0:wait〞。(20)再向上查找字符串“halt〞。
1
试验名称:Linux编程基础
学时数:4学时
(21)强制退出vim,不存盘。2、用gdb调试程序的bug
(1)使用vi编辑器,将以下代码输入到名为greet.c的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出,代码如下所示。
#include
intdisplay1(char*string);intdisplay2(char*string);
intmain(){}
intdisplay1(char*string){}
intdisplay2(char*string1){
char*string2;intsize,i;
size=strlen(string1);
string2=(char*)malloc(size+1);for(i=0,i
(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)使用makeinstall将hello安装到系统目录下,并运行,查看结果。(13)使用makedist生成hello压缩包。
printf(“Helloeveryone!\\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中的多线程编程。
“生产者—消费者〞问题描述如下。有一个有限缓冲区和两个线程:生产者和消费者。他们分别不停地把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商海外仓订单处理补充合同协议2025年
- 跨境电商独立站域名备案合同2025年
- 2025年AI语音助手集成服务合同协议
- 居家养老家庭会议合同2025年
- 深度解析(2026)《GBT 34630.5-2017搅拌摩擦焊 铝及铝合金 第5部分:质量与检验要求》
- 深度解析(2026)《GBT 34105-2017海洋工程结构用无缝钢管》
- 2026年七年级生物上册期末考试试卷附答案(四)
- 深圳市公办中小学2025年12月面向2026年应届毕业生公开招聘教师备考题库附答案详解
- 2026年鄂尔多斯市万里路桥集团招聘备考题库及一套答案详解
- 2026年国企浙江特产集团有限公司公开招聘备考题库及答案详解参考
- 2025-2026学年辽宁省名校联盟高三(上)月考英语试卷(12月份)
- 2025年福州左海高铁有限公司招聘备考题库带答案详解
- 2025年信阳艺术职业学院招才引智公开招聘专业技术人员32名参考题库附答案
- 2025秋人美版(2024)初中美术八年级上册知识点及期末测试卷及答案
- pcr应急预案演练(3篇)
- 小学英语谚语500句
- 浅谈企业经营管理中绩效考核的作用
- QC成果-提高组合幕墙铝单板安装一次施工合格率(诏安县总医院扩建项目QC小组)
- 2025年榆林旅投集团招聘(25人)笔试考试参考题库附答案解析
- 2025年武夷学院期末题库及答案
- 中储粮试卷历年真题及答案
评论
0/150
提交评论