




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式实时操作系统 uCOS 嵌入式实时操作系统1. 实时操作系统定义,特点,性能指标2. 实时操作系统现状3. uCOS操作系统简介4. uCOS操作系统移植操作系统主要类型实时操作系统实时操作系统 (VxWorks、eCos、uCOS、FreeOS等)网络操作系统网络操作系统 (Linux, UNIX,BSD, Windows ServerMac , OS X Server, Novell NetWare等)嵌入式操作系统嵌入式操作系统 (Linux、Android、IOS、WinCE)桌面操作系统桌面操作系统 (MAC OS、Windows、Linux)服务器操作系统服务器操作系统 (L
2、inux,UNIX,BSD,Windows Server, Mac OS X Server,Novell NetWare等)主要主要类型:类型:实时操作系统定义实时系统定义:实时系统定义:实时操作系统(RTOS)是指当外界事件或数据产生时,能够及时接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。要点:要点:1、对外部事件或数据快速处理。2、对处理结果能够在规定时间内快速响应。3、让所有的实时任务协调一致的运行。实时操作系统特点嵌入式实时系统特点:嵌入式实时系统特点:(1)对外部事件作出反应的时间是确
3、定的、可重复实现的,系统响应时间都是可预测的。(2)具有处理异步并发事件的能力。(3)具有出错处理和自动复位功能。(4)可裁剪、可移植,适用于多种处理器(5)具有多任务执行、调度能力,能进行任务间通讯、消息传递等实时操作系统性能指标系统性能指标:系统性能指标:中断延迟时间; 中断延迟时间是指从中断发生到系统获知中断,并且开始执行中断服务程序所需要的最大滞后时间中断响应时间; 中断响应时间是指从中断发生到开始执行用户中断服务程序的第一条指令之间的时间中断恢复时间; 中断恢复时间是用户中断服务程序结束后回到被中断代码之间的时间实时操作系统性能指标内核最大关中断时间 内核在执行一些临界区的代码时采取
4、了关中断,即执行临界区代码所用时间任务上下文切换时间 任务上下文切换是指 的控制权由运行任务转移到另外一个就绪任务时所发生的时间任务响应时间 任务响应时间是指从任务对应的中断产生到该任务真正开始运行这一过程所花费的时间。任务响应时间又称调度延迟。系统调用的执行时间 调用系统函数所执行的时间。实时操作系统性能指标实时操作系统现状从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。最早的单片机是Intel公司的8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有
5、256字节的RAM、4K的ROM、4个8位并口、1个全双工串行口、两个16位定时器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。实时操作系统现状从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥
6、、中断支持、内存管理等功能。90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。如PalmOS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,DeltaOs等嵌入式操作系统。实时操作系统现状RTOS在嵌入式系统设计中的主导地位已经确定,越来越多的工程师使用RTOS,更多的新用户愿意选择购买而不是自己开发。我们注意到,RTOS的技术发展有以下一些变化:1新的处理器越来越多,RTOS
7、自身结构的设计更易于移植,以便在短时间内支持更多种微处理器。2开放源码之风已波及RTOS厂家。相当多的RTOS厂家出售RTOS时,就附加了源程序代码并含生产版税。3后PC时代更多的产品使用RTOS,它们对实时性要求并不高,如手持设备等。微软公司的WinCE, Plam OS, Android, IOS等产品就是顺应这些应用而开发出来的。5嵌入式Linux已经在消费电子设备中得到广泛应用。实时操作系统现状RTOS 有名的厂家:1. Green Hills Software INTEGRITY2. Wind River VxWorks3. QNX Neutrino4. FreeRTOS5. Mic
8、rium C/OS-II, III6. Windows CE7. TI-RTOS Kernel (previously called DSP/BIOS)RTOS RTOS 应用趋势OS OS 用户兴趣调查uCOS uCOS 简介uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,与很多商业操作系统性能相当的实时操作系统(RTOS)。C/OS-II 的前身是C/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在嵌入式系统编程
9、杂志的5 月和6 月刊上刊登的文章连载,并把C/OS 的源码发布在该杂志的B B S 上。 目前最新版本 C/OS-III http:/ uCOS 支持芯片类型ARM (Generic)ARM Cortex-A5ARM Cortex-A8ARM Cortex-A9ARM Cortex-M0ARM Cortex-M3ARM Cortex-M4ARM Cortex-M7ARM Cortex-R4ARM7ARM9Altera NIOS-IIAnalog Devices BlackfinAtmel AVR32Atmel AVR8MIPS32 M4KMicrochip PIC24/30/33Microc
10、hip PIC32 (MIPS32-M4K)uCOS uCOS 支持芯片类型Freescale 68HC08Freescale 68HC12Freescale 68HC16Freescale ColdfireFreescale Core603EFreescale DSP568xxFreescale M.COREFreescale M68000Freescale M683xxFreescale MCF5272Freescale MPC5200Freescale MPC55xxFreescale MPC56xxFreescale MPC8xxFreescale PPC555Freescale S1
11、2XE PagedFreescale StarCoreuCOS uCOS 支持芯片类型Renesas 78KRenesas H8Renesas M16CRenesas M32CRenesas R32CRenesas RL78Renesas RX100Renesas RX200Renesas RX600Renesas RX700Renesas SuperH RISCRenesas V850Renesas V850E2MRenesas V850E2SRenesas V850ESSparc Leon3Tensilica XtensaTexas Instruments MSP430WindowsXil
12、inx Micro-BlazeuCOS 内核组成C/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。1) 核心部分(OSCore.c) :是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。2) 任务处理部分(OSTask.c) :任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为C/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。3) 时钟部分(OSTime.c) :C/OS-II中的最小时钟单位是time
13、tick(时钟节拍)。任务延时等操作是在这里完成的。uCOS uCOS 内核组成4) 任务同步和通信部分: 为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。5) 与CPU的接口部分: 是指C/OS-II针对所使用的CPU的移植部分。由于C/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。uCOS uCOS 架构
14、信号量、互斥信号量、事件标识、消息邮箱、消息队列、任务管理、固定大小内存块管理、时间管理移植相关,任务切换,入栈,出栈,中断关断、开启,系统时钟中断服务程序等任务调度方式前后台系统任务调度方式多任务系统uCOSuCOS操作系统移植中断向量表中断过程,PC、PSW值保存及恢复过程软中断、硬中断汇编语言任务状态入栈、出栈基础基础知识:知识:注:以后章节涉及内容均依据Renesas V850ES/Fx3 手册和相关的汇编手册作为参考uCOSuCOS操作系统移植中断向量中断向量表表中断源,中断名,中断优先级,中断码,中断服务程序入口地址,中断控制寄存器。有些中断向量固定到ROM中,有些中断向量固定到R
15、AM中uCOSuCOS操作系统移植中断过程,中断过程,PCPC、PSWPSW值保存及恢复值保存及恢复过程过程uCOSuCOS操作系统移植汇编语言汇编语言命令字 源操作数, 目的操作数 stsr 5, r1;store special register 5 to r1 ldsr r1, 5 ; load special register r1 to 5 mov #_OSRunning, r11; move “OSRunning” address to r11 st.b r2, 0r11; store byte r2 to r11 address mov #_OSTCBHighRdy, r11;
16、ld.w 0r11 , r11; ld.w 0r11 , sp; jarl _OSTaskSwHook, lp ; jmp lp; cmp 0 x1, r2; bne b ;uCOSuCOS操作系统移植任务状态任务状态uCOSuCOS操作系统移植任务切换任务切换从图中可以看出任务切换有两个通路1、以定时器中断为基础通过调用_OSIntCtxSw来实现任务调度2、以OS_Sched()调用trap指令来实现软中断为基础,通过调用_OSCtxSw来实现任务调度注:图中带颜色部分均是与移植相关的uCOSuCOS操作系统移植入栈,出栈,相关寄存器入栈,出栈,相关寄存器栈的特点是FILO(先入后出)有的
17、栈从高地址向低地址增长,有的栈则相反,具体跟处理器有关。栈的操作一般发生在函数调用前和后,中断响应前和后。函数在调用前先将主调函数的寄存器值、PC、PSW值等保存到栈中,然后调用被调函数,在被调函数返回时,在将之前保存在栈中的内容恢复到相应的寄存器、PC、PSW中。这样主调函数才能继续执行。对于无操作系统的任务来说,栈的使用是由编译器编译决定的。对于多任务操作系统来说,栈空间是由任务创建者手动创建,这就要求操作系统在任务切换时能够准确知道任务栈的首地址及栈空间的大小,因此栈的操作对于操作系统移植能否成功起关键性作用。uCOSuCOS操作系统移植移植准备移植准备在官方网站根据自己CPU选择相近的
18、处理器型号进行源码下载http:/ 文件里主要定义了一些重要的宏,如: OS_CTX_SAVE, 入栈操作 OS_CTX_RESTORE, 出栈操作 OS_ISR_ENTER , 通知内核已经进入中断,中断计数器自增 OS_ISR_EXIT ,通知内核已经退出中断,如果有任务就绪,任务切换在这里发生,中断计数器自减uCOSuCOS操作系统移植移植准备移植准备os_cpu_a.s 定义了一些重要的函数,如任务切换函数,中断响应函数等,如下:_OS_CPU_SR_Save:中断到来时,将PSW值保存到R1中,并关中断DI_OS_CPU_SR_Restore:中断结束时,将R1中的值恢复到PSW中_
19、OSStartHighRdy:系统初始化后,首先要调度的第一个优先级最高的任务_OSCtxSw:任务切换函数,由OS_Sched()调用OS_TASK_SW()产生软中触发_OSIntCtxSw:由时钟中断触发的任务切换函数_OS_CPU_TickHandler:时钟中断服务程序uCOSuCOS操作系统移植移植要素移植要素1、时钟中断向量表、时钟中断向量表2、时钟中断服务程序、时钟中断服务程序3、时钟初始化、时钟初始化4、软中断向量表、软中断向量表5、软中断服务程序、软中断服务程序6、软中断触发程序、软中断触发程序7、 os_cpu_a.s 中的函数8、 os_cpu_a.inc中的函数9、o
20、s_cpu.h 中软中断触发中软中断触发#define OS_TASK_SW() _asm(trap 0 x00)uCOSuCOS操作系统移植时钟中断向量时钟中断向量表表为了时钟不受影响的产生中断,中断优先级必须设置为最高时钟时钟中断服务程序中断服务程序 新建os_int_tick.s 文件,其内容为: .extern _OS_CPU_TickHandler .section INTTAA0CC0, text - INTTAA0CC0 interrupt vector 180HINT_TAA0CC0: jr _OS_CPU_TickHandler时钟时钟初始化初始化 新建os_time_tick_init.c , os_time_tick_init.h 文档 TAA0_Init();uCOSuCOS操作系统移植软中断向量软中断向量表表软中断服务程序软中断服务程序 .extern _OSCtxSw .section TRAP00, text- TRAP interrupt vector 00_TRAP_INT40: jr _OSCtxSw 软中断触发程序软中断触发程序 os_cpu.h#define OS_TASK_SW() _asm(trap 0 x00)uCOSuCOS操作系统移植os_c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 4656-2024未成年人保护工作站管理和服务规范
- 《物联网运维与服务》课件 项目三智慧建筑
- 运动康复宣教模板
- DB32/T 4605-2023增材制造金属激光粉末床熔融设备验收试验方法
- 膝痹病的康复指导
- 高精度牌类计时器行业深度调研及发展项目商业计划书
- 环保型橡胶防老剂企业制定与实施新质生产力项目商业计划书
- 高端脱毛器配套产品行业跨境出海项目商业计划书
- 云南特色菌菇种植基地企业制定与实施新质生产力项目商业计划书
- 2025年项目可行性报告及经费概算编写提纲
- 简明疼痛评估量表
- 爱宝s-990p打卡机说明书
- 部分需控制滴速的抗菌药物
- GB/T 31586.1-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第1部分:拉开法试验
- 大坝安全监测培训课件
- DB37-T 3449-2019山东省金属非金属地下矿山通风技术规范
- 高等数学上册ppt课件完整版
- 电力建设热工热控作业指导书
- 四川危险废物经营许可证申请书
- 甲醇及制氢装置预试车方案
- 分子的立体构型
评论
0/150
提交评论