没有合适的资源?快使用搜索试试~ 我知道了~
PSoC MCU实时操作系统.pdf
需积分: 10 9 下载量 63 浏览量
2009-09-28
17:20:54
上传
评论
收藏 150KB PDF 举报
温馨提示
试读
19页
PSoC MCU实时操作系统.pdf PSoC MCU实时操作系统.pdf
资源推荐
资源详情
资源评论
应用手册 AN2046
PSoC MCU
实时操作系统
作者:Edward Nova
相关项目:是
相关部件系列:CY8C25xxxCY8C26xxx 、
CY8C27xxx、CY8C29xxx
摘要
本应用手册介绍PSoC可编程片上系统的实时操作系统(RTOS)。该系统可以用于各种应用,如:控制系统或
汽车业。
引言
PSoC可编程片上系统具有先进的嵌入式应用所需要的
丰富中断功能。
使用具有任务阻断方法的速率单调调度算法(RMS)实
现RTOS的内核是适用于PSoC的最佳方案。我们将介绍
实时多任务内核如何利用周期时隙方法在特定时隔运
行多个任务。周期时隙在此类实施中不会相互阻断。
只有采用中断服务才能够实现任务阻断。
这种实施极其简单,速度极快,而且不占用宝贵的CPU
时间和内存。该框架在扩展后还可以容纳更为复杂的
调度方法。
本项目的开发是基于PSoC Designer Version 3.10 Build
240。此应用程序采用Pod 28 Rev D.或E运行。
为了说明RTOS的多线程特性,我们在Pod(或Pup)的
8个LED之间进行切换。每个任务都具有相关的LED。
LED在任务时隙过程中闪烁。每个时隙的长度是上一
个时隙的两倍。
利用该RTOS使用户能够加快项目创建。另外,RTOS
的结构还有助于组织程序模块。
RTOS存在许多变体。本应用手册介绍的RTOS旨在用
于快速而又简便的实施。本作者将证明此RTOS不会占
用大量PSoC资源。下文将更详细地介绍其他众多优势。
实时操作系统
典型的操作系统包含以下部分或全部功能:
z 硬件接口
z 内存管理
z 任务调度
z 中断处理
z 文件管理
z 设备驱动器
z 组网
对于实时系统而言,在错误时间提供的正确解决方案
也是错误的解决方案。在对时间要求严格的系统中,
操作系统保证程序的关键部分及时得到处理并且满足
期限要求。
嵌入式系统建模
设计人员需要根据每种应用的情况选择合理的微控制
器。CPU速度、内存容量和输入/输出数量是选择微控
制器时必须考虑的问题。另一方面,设计人员还需要
选择如何满足软件需求。
嵌入式系统建模存在多种方式,其中包括:
z 顺序处理
z 状态机
z 多任务处理
顺序处理
在顺序处理过程中,每次处理一个任务,CPU把自己
的时间和其他资源全部分配给相应任务。传统流程可
以清晰说明这些系统。顺序处理可用于复杂系统的一
部分、小型系统或者无需处理多个事件或多个外部中
断的应用程序。
状态机
状态机极其有用,可以简化状态数量有限的系统。处
理规则也并不复杂。例如,可以利用简单的状态机实
现键盘扫描或电梯建模。
多任务处理
任务是执行某些工作的小程序段。它是资源分配的基
本单位。任务将争用CPU时间、内存空间或其他资源。
复杂的问题可以分割成众多较小、较简单的任务。大
任务也可以划分到多个小时隙。一个时隙可以包含多
个任务。
每个任务只处理一项工作的一小部分。任务可以按照
不同优先级运行,或者按照正常时隔运行。具有众多
外部中断的先进嵌入式系统与生俱来和多任务操作系
统较为相似。
图1:周期任务调度程序
时隙是可以为任务分配的最短时间间隔。本例中的时
隙为1ms,因此1号任务每隔2ms运行一次,每次运行
1ms。2号任务每隔4ms运行一次,每次运行1ms,以此
类推。需要更高优先级的任务需要更短的周期频率。
用下式可以计算出每个任务的周期:
n号任务周期 = 时隙周期 × 2^n
1号任务周期 = 1ms × 2^1 = 2ms
2号任务周期 = 1ms × 2^2 = 4ms
3号任务周期 = 1ms × 2^3 = 8ms
4号任务周期 = 1ms × 2^4 = 16ms
5号任务周期 = 1ms × 2^5 = 32ms
6号任务周期 = 1ms × 2^6 = 64ms
实时多任务处理内核
嵌入式系统一般对成本较为敏感。而系统成本在一般
情况下完全取决于处理器。速度和内存对处理器至关
重要。为了降低成本,设计人员需要选择能够完成工
作且成本最低的处理器。
实时内核仅包含RTOS的重要功能,如:任务调度和中
断处理。
实时内核的开发需要大量工作,而且占用处理器的时
间和内存,不过,出于各种原因嵌入式系统正在采用
越来越多的实时内核。
实时内核具有以下优势:
• 可靠的调度
• 简化的框架
可靠调度
可靠的调度可以简化占用CPU时间的计算过程。另外,
拥有可靠调度机制使设计人员能够采用状态驱动的方
法。
例如,在需要反弹按键的应用中,设计人员可以采用
一项任务测试按键状态和时延。所采用的任务将禁止
CPU运行其他任务。
状态驱动的键盘反弹程序更准确而且功能更丰富,同
时,当反弹任务进入各种状态时,CPU可以运行其他
任务。
简化的框架
快速上市对嵌入式系统的重要性日益突出,而采用简
化的框架有助于在实时内核中轻松添加应用程序。
设计人员采用实时内核可以把复杂的操作简化成更为
简单的任务。而且多名设计人员可以井然有序地共享
CPU资源。
完全不同的应用也能够使用相同的实时内核。
实时内核功能
实时内核可包含众多功能。我们在本应用手册中讨论
以下功能:
• 调度
• 环境转换
调度
RTOS中的调度程序用于确定各个任务的状态。在本应
用中,任务可以为以下状态:
• 运行
• 暂停
• 阻断
调度程序评估一系列因素,如:任务优先级或中断状
态。根据评估,调度程序把任务设置为相应状态。
环境转换
如果调度程序确定需要运行更高优先级的任务,则阻
断正在运行的任务。然后保存继续运行被阻任务所需
要的信息。此类信息称为“任务环境”,一般包含程
序计数器(PC)、CPU寄存器和累加器。调度程序然后运
行高优先级的任务。完成后执行恢复任务环境的相反
过程。调度程序执行任务环境保存和恢复的操作称为
“环境转换”。
环境转换信息的保存通常采用堆栈,不过某些设计人
员更愿意采用专用的静态内存位置。
为了实现高效的环境转换,理想的C编译程序将检查每
个任务的所有寄存器,然后仅保存发生变化的寄存器。
这样不但可以加快环境转换速度,而且还可以减少对
宝贵的RAM和编程空间的占用。
环境转换会增加时间和内存开销。因此某些应用程序
首选非抢占式调度程序。
实时内核类型
根据嵌入式系统的硬件和软件,设计人员选用各种类
型的实时内核。最常用的两种类型为:
• 非抢占式
• 抢占式
非抢占式
不需要中断任务的系统常采用非抢占式内核。在非抢
占式内核中,调度程序启动的任务从系统获取时间和
内存资源。调度程序只有在任务完成后才可以重新获
得控制权。
由于无需处理环境转换,因此实现非抢占式内核相对
较简单。
抢占式
在抢占式内核中,调度程序可以把系统资源从正在运
行的任务转移到优先级更高的任务。也就是说,高优
先级任务可以中断低优先级任务。这正是大多数抢占
式内核采用中断机制调度更高优先级任务的原因。
某些任务或者任务的某些部分需要拥有对资源的完全
控制权。此时,其他任务不得中断它们。这些关键部
分应当尽可能短小,以便任务满足时间要求。此情况
下可以采用全局中断禁用功能禁用所有可屏蔽的中
断。处理不可屏蔽的中断时应当慎之又慎。
速率单调调度
速率单调调度(RMS)是用于实现各种实时操作系统内
核的方法。
RMS易于实现,而且非常可靠。RMS的属性在设计过
程中确定并且固定下来。周期较短的周期任务具有较
高的优先级。
RMS存在两个类型:
• 无任务阻断功能的RMS
• 有任务阻断功能的RMS
无任务阻断功能的RMS
这种实施不允许任务相互阻断。为了确保调度程序拥
有执行所有任务的时间,可以采用以下条件:
式中,“n”是任务最高数量。“Ej”是任务“j”的执
行时间,“Pj”是任务“j”的周期。式左侧称为计算
利用率,右侧称为利用率限制。只有计算利用率低于
利用率限制时才可以满足其时间要求。
表1:利用率限制随任务数增加而降低
图2:利用率限制随任务数增加而降低
图3:4个任务的调度程序
在图3中,任务以不同的周期运行,具有不同的执行时
间。
表2:无任务阻断功能的RMS的计算利用率
4个任务的利用率限制大于0.75(见表1)。由于计算利
用率(0.675)低于利用率限制(0.75),则调度程序可
以满足所有时间要求。
剩余18页未读,继续阅读
资源评论
q042096
- 粉丝: 6
- 资源: 176
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功