- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式实时操作系统复习
操作系统的基本功能: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中承载了任务的相关信息。
Typedef struct os event
{
INT8U OSEventType; /*事件控制块的类型*/
Void *OSEventPtr; /*指向下一个ECB或消息队列的指针*/
INT16U OSEventCnt; /*信号量计数值,对除信号量意外其他事件无效*/
OS PRIO OSEventGrp; /*事件等待组*/
OS PRIO OSEventGbl[OS EVENT TBL SIZE]; /*等待事件的任务表*/
INT8U *OSEventName; /*事件名称*/
}
OS EVENT;
移植步骤: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 OS MemInit 创建一个内存分区 OsMemCreate、OsSemCreat 分配一个内存块,创建一个信号量 OsMemGet 释放一个内存块 OsMemPut,OsSemPend 等待一个信号量, OsMemQuery,OsSemQuery 查询一个内存分区状态,一个信号量 OsMemNameSet 设定一个内存分区名称 OsMemNameGet 获取一个内存分区名称
编程题例子
一、
#include sys.h
#include usart.h
#include delay.h
#include led.h
#include includes.h
文档评论(0)