网站大量收购独家精品文档,联系QQ:2885784924

嵌入式实时操作系统复习.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

操作系统的基本功能:1、任务管理,2、内存管理,3、文件管理,4、CPU管理5、I/O口设备管理。

操作系统基本特征:1、多任务操作系统,2、多级中断机制,3、优先级调度机制。

任务的定义:程序的动态表现,在操作系统中体现为线程,是程序的一次执行过程。

任务的状态有:1、睡眠态,2、就绪态,3、运行态,4、阻塞态,5、挂起态。

调度算法:根据系统资源的资源分配策略所规定的资源分配算法。有“短作业优先算法”“轮转法”

事件:实时操作系统运行过程中发生的重要事件

事件处理对象:1、信号量,2、互斥信号量,3、事件标志组,4、邮箱,5、消息队列。

信号量定义:资源是具体的显示东西,把它数字化后,操作系统就便于管理这些资源。

信号量的用法:1、建立,2、请求,3、释放。

互斥信号量:是一种特殊的信号量,该信号不仅是只用于互斥资源的访问,还在于信号量管理需要解决的优先级反转问题。

互斥信号量管理:取值0或1,只能有一个任务访问的独占资源,应采用信号来管理,为了保证系统的定时性拒绝优先级反转,对互斥信号量的管理,采用优先级继承机制。

时钟:是一种特定的周期性中断,起“心脏”作用。时钟节拍是周期性中断,对应的中断服务程序成为时钟滴答服务。

中断:在任务的执行过程中,当出现异常情况或特殊请求时,停止任务的执行,转而对这些异常或特殊进行处理,处理结束后返回当前任务的中断处。

Uc/os内存管理方法:Uc/os采用内存控制块管理内存,内存控制块记录了“内存分区地址,分区内存块的大小和数量,空闲块数量信息”。

内存管理含有:“内存分区的创建,分配,释放,使用和等待系统调用时间标志节点,.”

事件标志组管理的主要数据结构:包括“事件标志组,(XX实体,XX列表,XX节点链表)。”

用户调用两个函数创建任务,不允许用户进行修改,被称为系统服务。用户的程序以函数的形式由用户编写,为用户函数。和操作系统的服务划分了界限。Uc/os采用抢占式任务调度算法,所有信息保存在TCB中。

任务就绪组是:为了查找高级优先级的任务与正在运行任务的优先级进行比较,以确定是否进行切换。

事件控制块(ECB):是核心的数据结构,被频繁访问,定义出现在操作系统的头文件ucos.h中承载了任务的相关信息。

Typedefstructosevent

{

INT8U OSEventType; /*事件控制块的类型*/

Void *OSEventPtr; /*指向下一个ECB或消息队列的指针*/

INT16U OSEventCnt;/*信号量计数值,对除信号量意外其他事件无效*/

OSPRIO OSEventGrp; /*事件等待组*/

OSPRIO OSEventGbl[OSEVENTTBLSIZE]; /*等待事件的任务表*/

INT8U*OSEventName; /*事件名称*/

}

OSEVENT;

移植步骤:1、使用开发软件MDK4.70,为uc/os操作系统建立一个目录,将系统的代码复制到该目录下,要有一个子目录。

2、在该目录下创建工程。

3、建立主程序main.c。

4、对os_cpu.h说明,根据硬件修改os_cpu.h。

5、修改os_cpu.c。

6、编译,下载,运行

信号量函数列表:

Name

Description

OsSemCreat

创建一个信号量

OsSemSet

设置信号量值

OsSemDel

删除一个信号量

OsSemPend

等待一个信号量

OsSemAccept

无等待请求信号

OsSemPendAbort

放弃等待信号量

OsSemPost

发出一个信号量

OsSemQuery

查询一个信号量

内存管理函数:

Name

Description

OSMemInit

创建一个内存分区

OsMemCreate、OsSemCreat

分配一个内存块,创建一个信号量

OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)

OSTaskCreate(TaskMessageSen,(void*)0,(OS_STK*)MBOX_SEN_STK[MBOX_SEN_STK_SIZE-1],MBOX_SEN_PRIO);

OSTaskCreate(TaskMessageRec,(void*)0,(OS_STK*)MBOX_REC_STK[MBOX_REC_STK_SIZE-1],MBOX_REC_PRI

文档评论(0)

songyj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档