版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章嵌入式操作系统及应用主要内容嵌入式操作系统概述39.1典型嵌入式操作系统μC/OSⅡ39.2基于μC/OS-Ⅱ下的应用程序设计39.4μC/OS-Ⅲ操作系统简介39.5μC/OS-Ⅱ的移植39.39.1嵌入式操作系统概述
9.1.1嵌入式操作系统一般结构39.1.2嵌入式操作系统的特点与分类
一、特点(1)代码固化存储,执行效率高(2)可裁剪性(3)实时性(4)强稳定性(5)硬件适应性,可移值性二、分类(1)按实时性分类分为硬实时操作系统和软实时操作系统。(2)按商业模式分类按照商业模式,可以把EOS分为商用型EOS和免费型EOS。
μC/OS-Ⅱ是抢占式多任务实时嵌入式操作系统。μC/OS-Ⅱ具有足够的稳定性和安全性。目前最新版本为μC/OS-Ⅲ。49.2典型嵌入式操作系统μC/OSⅡ
一、C/OS-Ⅱ的主要特点(1)公开源码的高质量实时内核(2)可移植性μC/OS-Ⅱ可被移植到多种微处理器上。(3)可裁剪、可固化(4)时间确定性绝大多数μC/OS-Ⅱ的函数调用与服务的执行时间都是确定的,其服务的执行时间与系统中运行的任务个数无关。(5)多任务μC/OS-Ⅱ可以管理64个任务(版本2.82以后扩充至255个任务)不支持时间片轮转(round-robin)调度机制。(6)抢占式内核μC/OS-Ⅱ是抢占式实时内核,在任意时刻都可能发生任务调度。因此,μC/OS-Ⅱ可以支持强实时应用。(7)多种系统服务μC/OS-Ⅱ提供很多实时内核所需的系统服务,例如任务管理、时间管理、信号量、事件标志组、互斥信号量、消息队列、内存分区管理等。5μC/OS-Ⅱ系统的组成μC/OS内核大致可以划分为任务调度、任务管理、时间管理、任务间同步与通信以及内存管理、系统管理等模块。6μC/OS-Ⅱ数据类型数据类型名称数据类型数据宽度BOOLEAN布尔型8位INT8U8位无符号整数8位INT8S8位带符号整数8位INT16U16位无符号整数16位INT16S16位带符号整数16位INT32U32位无符号整数32位INT32S32位带符号整数32位FP32单精度浮点数32位FP64双精度浮点数64位7μC/OS-Ⅱ的任务及其管理μC/OS-Ⅱ的任务由三部分构成:(1)程序代码(2)任务堆栈(3)任务控制块8μC/OS-Ⅱ任务管理服务-创建任务(1)任务创建函数OSTaskCreate()和OSTaskCreateExt()都可以创建任务。OSTaskCreateExt()函数提供了一些附加的功能,但会增加额外的开销。创建任务函数OSTaskCreate()原型如下:INT8UOSTaskCreate(void(*task)(void*pd), /*指向任务代码的的指针*/void*pdata, /*任务开始执行时传递给任务的参数的指针*/OS_STK*ptos, /*任务堆栈栈顶的指针*/INT8Uprio); /*分配给任务的优先级*/如:staticOS_STKAppTask1Stk[64];//任务1堆栈OSTaskCreate(//任务创建任务1 AppTask1,//任务代码指针
(void*)0,//传递给任务的参数指针
(OS_STK*)&AppTask1Stk[64-1],//任务的堆栈指针 4); //任务1任务优先级为49μC/OS-Ⅱ时间管理服务1、延时指定节拍数OSTimeDly()原型为:voidOSTimeDly(INT16Uticks);参数ticks为要延时的时钟节拍数2、延时指定具体时间OSTimeDlyHMSM()原型为:INT8UOSTimeDlyHMSM(INT8Uhours,//时
INT8Uminutes, //分
INT8Useconds, //秒
INT16Umilli); //毫秒实际的延时时间是时钟节拍的整数倍。如延时1小时18分26秒,则调用如下:OSTimeDlyHMSM(1,18,26,0);10μC/OS-Ⅱ通信与同步服务-发送1、释放信号量OSSemPostINT8UOSSemPost(OS_EVENT*pevent);2、释放互斥信号量OSMutexPostINT8UOSMutexPost(OS_EVENT*pevent);3、释放消息邮箱OSMboxPostINT8UOSMboxPost(OS_EVENT*pevent,void*pmsg);4、
释放消息队列OSSenPostINT8UOSSemPost(OS_EVENT*pevent);11μC/OS-Ⅱ通信与同步服务-接收1、等待信号量OSSemPendVoidOSSemPend(OS_EVNNT*pevent,INT16Utimeout,int8u*err);2、等待互斥信号量OSMutexPendvoidOSMutexPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err);3、等待消息邮箱OSMboxPendvoid*OSMboxPend(OS_EVENT*pevent,INT32Utimeout,INT8U*perr);4、
等待释放消息队列OSQPendvoid*OSQPend(OS_EVENT*pevent,INT32Utimeout,INT8U*perr);129.3μC/OS-II的移植移植μC/OS-II只需修改OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C这三个文件的相关函数。要使μC/OS-II正常运行,微控制器必须满足以下要求:微控制器的C编译器能产生可重入代码;微控制器支持中断,并且能产生定时中断;C语言可以开/关中断;微控制器支持一定数量的数据存储硬件堆栈;微控制器有将堆栈和其他CPU寄存器读出和存储到堆栈或内存的指令。13μC/OS-II的体系结构应用软件核心代码(处理器无关)
OS_CORE.C
OS_MBOX.C OS_MEM.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C
设置代码(应用相关)
OS_CFG.H INCLUDES.H
核心代码
消息队列
存储管理
消息管理信号量任务调度定时管理
OS_CPU.H 移植时需要修改 OS_CPU_A.ASM 移植时需要修改 OS_CPU_C.C 移植时需要修改CPU定时器软件硬件14嵌入式操作系统的裁剪嵌入式操作系统内核是针对多种处理器而设计的,对于一种处理器,某个应用场合,有些代码是多余的,则需要对代码进行适当的裁剪以满足够用就好的设计原则。裁剪的目标就是去掉多余的代码,以减少不必要的内存空间。更适应嵌入式系统量体裁衣的要求。159.4基于μC/OS-Ⅱ下的应用程序程序设计μC/OS-Ⅱ的初始化与main()函数结构voidmain(){HW_config(); /*硬件配置与初始化,包括时钟和使用的外设*/OSInit(); /*初始化μC/OS-Ⅱ内核*/OSTaskCreate(Task1,……); /*创建用户任务1*/OSTaskCreate(Task2,……); /*创建用户任务2*/......OSTaskCreate(Taski,……); /*创建用户任务i*/OSStart(); /*启动多任务调度*/}16μC/OS-Ⅱ用户任务的3种结构
-单次任务单次执行的任务通常执行三步操作:任务准备工作;任务实体;自我删除函数调用。voidTask(void*pdata){
任务初始化的准备工作;/*初始化硬件设备*/
任务实体; /*完成该任务的具体功能*/OSTaskDel(OS_PRIO_SELF);/*任务完成后删除*/}17μC/OS-Ⅱ用户任务的3种结构
-周期性执行的任务周期执行的任务一般采用循环结构,并在每次完成具体功能后调用系统延时函数OSTimeDly()或OSTimeDlyHMSM()等待下一个执行周期,并将处理器时间让给其他任务。voidTask(void*pdata){任务初始化准备工作;/*初始化硬件设备*/for(;;) /*无限的循环或while(1)*/{任务实体;/*完成该任务的具体功能*/OSTimeDly(n);/*调用系统延时函数等待下一个周期*/}}18μC/OS-Ⅱ用户任务的3种结构
-事件触发执行的任务这类任务的实体代码只有在某种事件发生后才执行。在相关事件发生之前,任务被挂起。事件触发执行的任务一般也采用循环结构,相关事件发生一次,任务实体代码执行一次。voidTask(void*pdata){
任务初始化的准备工作;/*初始化*/for(;;) /*无限的循环或while(1)*/{调用获取事件的函数; /*等待信号量或消息等*/任务实体; /*完成该任务的具体功能*/}}19μC/OS-Ⅱ应用程序设计实例按照执行周期性任务的程序结构创建四个任务:
任务1每隔100ms采集电位器电压 任务2每隔200ms判断电压值并控制蜂鸣器报警 任务3每隔300ms输出与电压相应的PWM波形控制电机 任务4每隔500ms在TFTLCD屏显示电压值打开实验例程中的任务调度应用实验,对照MDK-ARM工程讲解示例。(1)硬件初始化
(2)操作系统初始化(3)创建任务并编写任务程序(4)启动任务调度209.5μC/OS-
Ⅲ简介2010年,拉伯罗斯于推出了μC/OS-Ⅲ,他认为μC/OS-Ⅲ并不是μC/OS-Ⅱ的升级版本,而是一个全新的RTOS内核。μC/OS-Ⅱ是定位于8位和16位以及低端
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑行业数据监测合同协议2025
- 2025及未来5年中国素菜包市场调查、数据监测研究报告
- 城市公寓买卖合同范本
- 地产公司安全合同范本
- 土地用途变更合同范本
- 土地使用权合同协议书
- 售后技术服务合同范本
- 器具维保框架合同范本
- 商业地产居间合同范本
- 商铺门拆除协议书模板
- 2024年秋季新人教版九年级上册化学全册教案
- 介入治疗常见并发症及护理
- 职高幼儿保育职业生涯规划书
- 人教版五年级数学上学期《第4章可能性》单元测试卷解析版
- 小学作文教学困境分析及对策研究
- 县中医院妇科重点专科建设汇报
- 全国主要水文站点及雨量观测分布和代码
- 浙江省稽阳联谊学校2023-2024学年高三上学期11月联考语文试题含答案
- 人教版地理八年级上册知识点总结
- 青钢竹叶剑的文化传承与发展
- 电测应力应变实验课件ppt
评论
0/150
提交评论