




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一任务管理实验类别设计型实验时数 4学时开课单位计算机学院计算机科学与技术系实验地点 待安排一、 实验目的本实验用于北京信息科技大学计算机学院计算机科学与技术专业必修课“嵌入式操作系统”的实验环节。“嵌入式操作系统”课程在“操作系统”原理课程之后开设,使学生在学习操作系统原理的基础知识、基本实现方法、基本算法设计的基础上,对一个实际的、面向具体目标的特定操作系统类型进行学习,掌握嵌入式实时操作系统基本原理、基本管理方法,并将操作系统原理和面向嵌入式实时应用的实现技术结合起来。本实验通过实例程序,分析、运行、验证嵌入式操作系统C/OS-II内核及其任务工作原理及方法,提升本专业高年级学生对嵌入式实时操作系统技术的理解能力和学习水平。达到对系统软件原理、技术、实现、应用的立体化、体系化全方位理解和实践应用能力。二、 实验原理任务管理是嵌入式操作系统的最核心模块,是嵌入式操作系统管理运行在其上应用程序的基本方式和方法。本实验以任务管理的基本方式、方法、手段入手,通过了解、掌握嵌入式操作系统C/OS-II内核有关任务管理的系统函数,以一些简单的具体应用范例入手,了解任务的各项属性及其操作方法,掌握对任务的设计、建立、管理、运行、调试、性能测试等技术。并根据实验要求自行设计满足某些设计要求的任务。三、 实验环境1、 实验环境架构C/OS-II的内核代码及其应用实例均用Borland C/C+ 编译器(V3.1)编译。这些代码可在Intel Pentium II PC (300MHz)上运行和测试。选用PC机作为目标机系统的原因如下:以PC机作为目标机系统,比其他嵌入式环境,如评估板,仿真器等,更容易进行代码的测试。用户只需要使用系统提供的编译环境及各种源文件,就可以简单地完成编译、链接和执行等设计和调试工作。该目标机环境容易构建,学生容易理解、操作和控制。构建实验环境分为以下几个步骤。1) 安装软件环境很简单,只需将C/OS-II内核与应用范例程序等源代码(即根目录、software)拷贝到你的目录(如C:)下,这一步就完成了。2) 软件环境Software目录的结构及内容安装完成后,需要查看一下该目录下的具体内容。该目录包括三个子目录:BLOCK、TO、uCOS-II。BLOCK包括一些PC函数,由DOS操作系统实现,实现有关终端的输入和输出操作;TO包括一些界面的操作命令,该实验不使用该部分功能;uCOS-II由应用程序编译环境、内核源码、参考文档构成。下面,以一个应用程序实例为例,说明编译环境的构成与使用。SOFTWAREuCOS-IIEX1_x86L(当然,还包括其他三个实例。)这个目录里包括应用程序实例1的编译环境BC45,可用来实现对实例1应用程序的编辑、编译、调试、运行等基本过程。BC45编译环境由lst、obj、source、test、work等子目录组成,可以提供在DOS(或Windows 下的DOS窗口)下,进行应用程序源代码的编辑、编译、调试、运行。该实例编译环境的具体目录结构如下:lst:编译需要的备份列表文件目录。obj:实例程序、内核源码、移植相关代码编译生成的目标文件等。source:实例源代码、实例源代码头文件和本实例的配置头文件,链接命令文件定义生成可执行程序需要使用的目标文件和函数库。test:编译本实例程序的make文件(TEST.MAK)和批处理文件,供用户生成DOS环境下的可执行文件实例程序的可执行代码(TEST.EXE),链接生成的MAP文件等等。work:修改源代码重新编译的工作目录,包括所有应用代码、平台源代码和内核源代码。3) 调整环境参数略。由于安装目录定为C:,所以,所有相关文件中包含的目录不需修改。4) 运行调试可以进入test目录,双击MAKETEST.BAT文件,进行并完成关于该实例应用程序tset.c的编译、链接,然后,双击运行该目录下生成的可执行文件test.exe。在这个过程中,如果不能生成可执行文件test.exe,说明,编译或链接的过程有误,建议进行关于make文件的单步编译和链接。关于make文件的单步编译和链接,具体做法如下:通过windows下的点击开始菜单中的程序|附件|命令提示符,进入DOS界面,在DOS界面下,通过输入命令:cd C:SOFTWAREuCOS-IIEX1_x86LBC45TEST,将当前目录设定为C:SOFTWAREuCOS-IIEX1_x86LBC45TEST,然后,输入MAKETEST | more,可以看到编译的过程正在开始,可不断击键,查看编译的过程,可以看到无法生成可执行文件的具体位置和原因,然后,针对编译问题,进行test.c源文件的修改,针对链接问题,对编译环境进行重新架构,即对编译环境的文件及目录结构进行调整,在该环境下,对应用程序进行反复的运行、调试,得出该应用程序是否达到设计要求的结论。2、 实验范例程序的运行与调试1) 利用环境中提供的编译环境及其一个可直接使用的应用程序,借用该应用程序的编译环境,对该应用程序(源文件命名为test.c的程序),对该应用程序进行编译、链接、运行、调试。2) 调试的主要初级工作包括,查看运行界面的运行情况,记录所有显示的信息,长时间运行该程序,观察信息显示的特点和规律。3) 调试的主要中级工作包括,以任务运行为观察目标,察看每个任务运行的循环周期,每个周期的运行过程都处理什么内容,显示什么内容,运行的过程中,状态有什么变化等4) 调试的主要高级工作包括,察看CPU利用率、空闲任务、统计任务、和每个任务的运行周期,单位时间上述任务的运行规律或次数等等性能指标。5) 通过使用应用程序的编译环境,可以了解和掌握uCOS-II内核使用的PC机虚拟机开发运行平台的运行机制,体验基于宿主机平台和嵌入式实时操作系统进行嵌入式软件开发的基本过程和基本手段。3、 自行设计的嵌入式应用程序的编译、链接、调试。既然编译环境中提供了一个可直接使用的应用程序,我们可以借用该应用程序的编译环境,将自行设计编写的应用程序源文件命名为test.c,替换该环境中的test.c,以此,对自己的应用程序进行编译、链接、运行、调试。调试运行的方式,同样可参考2、中的内容进行。4、 开发环境构建中应注意的问题编译环境的使用实例程序的调试实例程序的程序分析自行设计应用程序的任务如何分解?如何设计?嵌入式应用程序的运行规律和普通的软件有何异同?嵌入式应用程序的构造结构是怎样的?有何特点?嵌入式应用程序的任务如何设计与实现?嵌入式任务如何被调度运行?嵌入式任务运行基本规律、基本过程和特点是什么?四、 实验预备知识与资料1、 嵌入式操作系统C/OS-II内核任务管理相关的系统函数列表参见源代码资源。2、 范例程序选择一个范例程序,进行嵌入式应用程序分析,对程序功能、程序结构、程序运行逻辑和流程、关键技术进行总结。以下源代码是范例程序其中之一。该应用程序只是自行设计了一个实时任务,该任务按照循环设计反复运行,每次向显示器终端输出显示一个字符,直到接收到来自键盘的中断键盘按下字符“ESC”,应用程序的执行中止,返回宿主机平台DOS操作系统。为了对程序具体实现技术进行详细描述,以该源程序为例,对程序的每条语句均进行了设计说明。使得学生对一些关键技术的实现,有明确的感性认识。#include includes.h/该头文件包含C/OS-II内核各个模块的源代码A#define TASK_STK_SIZE 512/定义任务堆栈数组的长度OS_STK TaskStartStkTASK_STK_SIZE;/定义任务堆栈数组区INT16S key;/用于退出uCOS_II的键盘输入INT8U x=0,y=0;/字符显示位置的横坐标和纵坐标void MyTask(void *data);/声明该程序后部设计的那个任务对应的函数/* 主函数 */void main (void) char* s=M;/定义字符指针指向要显示的字符 OSInit();/初始化uCOS_II内核 B PC_DOSSaveReturn();/保存Dos环境 C PC_VectSet(uCOS, OSCtxSw);/安装uCOS_II中断 D OSTaskCreate(MyTask,/创建任务MyTask,标识任务函数名s,/给任务函数代码传递的参数&TaskStartStkTASK_STK_SIZE - 1,/设置任务堆栈栈顶指针0);/任务MyTask的优先级定为0 OSStart();/启动uCOS_II的多任务管理 Evoid MyTask (void *pdata)/实时任务的函数定义#if OS_CRITICAL_METHOD = 3/ OS_CPU_SR cpu_sr;#endif pdata = pdata; /防止编译时产生警告信息 OS_ENTER_CRITICAL();/关中断 PC_VectSet(0x08, OSTickISR);/安装uCOS_II时钟中断向量F PC_SetTickRate(OS_TICKS_PER_SEC);/设置uCOS_II时钟频率G OS_EXIT_CRITICAL();/开中断 OSStatInit();/初始化uCOS_II的统计任务H for (;) /mytask任务的无限循环 if (x10) /如果x10 x=0;/x=0 y+=2; /y+2跳到后两行 PC_DispChar(x, y,/在x,y位置显示s中的字符*(char*)pdata, /字符指针的内容DISP_BGND_BLACK+DISP_FGND_WHITE );/前景色和背景色 x += 1;/纵坐标x+1/如果按下Esc键则退出uCOS_II及其应用程序的运行if (PC_GetKey(&key) = TRUE) /如果有键盘按下输入字符 if (key = 0x1B) /如果输入字符是“ESC” PC_DOSReturn(); /返回DOS环境,跳转到保存环境I OSTimeDlyHMSM(0, 0, 1, 0);/mytask任务等待1秒钟再继续 程序补充说明A#include #include #include #include #include #include #include #include softwareucos-iiix86lbc31os_cpu.h/#include os_cfg.h#include softwareucos-iisourceucos_ii.h#include softwareblockspcbc31pc.hB初始化各种杂项数据,就绪队列、空闲TAB队列、空闲事件队列。初始化事件标示、消息队列、内存管理数据结构,创建空闲任务、统计任务。C该函数保留DOS操作系统的现场数据,以备返回。该函数允许退出uC/OS-II下的多任务运行,返回DOS。D该函数在中断向量表中设置一个中断。uCOS表示期望的中断向量码0-255,OSCtxSw表示中断或意外发生时执行的函数指针。EFGHI该函数将控制权返回DOS五、 实验步骤1、 安装开发环境参见三、2、 调试范例程序参见三、3、 针对以下设计目标,自行设计编写任务管理应用程序。初级:应用程序功能如下:创建一个任务,使用关中断、开中断技术,完成互斥操作,能够实现终端字符显示,能够接受来自键盘的中断,能够实现任务的延迟。友情提示:不能和范例程序类同。中级:应用程序功能如下:创建一个任务,使用关中断、开中断技术,完成互斥操作,能够实现终端字符显示,能够接受来自键盘的中断,能够实现任务的延迟。能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目协调方案(3篇)
- 2025试用期内劳动合同样本(B)
- 关于阿乌公路二标20m箱梁处理方案及报告
- 孕产妇VTE预防知信行调查问卷(基线)
- 2025新版股权转让合同范本
- 急救技能知识题库(含答案)
- 2025年道路运输安全员两类人员考核试题库答案
- 2025年12月泌尿胸外科护士理论考试试题及答案
- 2025年新版货运驾驶员试题及答案
- 2025年继续教育临床护理风险防范试题及答案
- 《鸿蒙智能互联设备开发(微课版)》全套教学课件
- 企业员工健康管理实施方案
- 小学科学大象版四年级上册全册教案(共27课)(2022秋季)
- 2024-2030年中国集成智能功率模块(IPM)行业深度调查与发展趋势研究研究报告
- 职业技术学校《药物分析检测技术》课程标准
- 苏教版(2024年新教材)七年级上册生物全册教案
- 自动售货机投放合作合同2024版
- 医院院感检查表格全套汇总
- 动漫手办制作课
- 《现代控制理论》(刘豹-唐万生)
- 食品包装用纸盒企业标准
评论
0/150
提交评论