新闻中心

EEPW首页 > 消费电子 > 设计应用 > 应对无线多媒体挑战(05-100)

应对无线多媒体挑战(05-100)

——
作者:时间:2009-02-20来源:电子产品世界收藏

  一个RTXC/SS线程是按C函数编程的,但实体中不设上下文关系,当它将控制返还给调度表时也不存放任何参数。不设上下文关系使从进度表至线程这一过程十分迅速,具备在要求的操作期限内完成响应的明显优点。在线程的执行周期内,它不能直接等待一个系统事件。不设上下文关系和不能被阻断是区别线程和任务的两个主要属性。

本文引用地址:http://www.eepw.com.cn/article/91483.htm

  由于线程没有上下文关系,必须在它实体内完成所需全部数据的初始化。当操作后,线程返回调度表不带返回,也不在堆栈中留下任何运算数据。

  线程存在于用户定义的优先级内。用户可以定义多个优先级,较高优先级的线程能抢占在较低优先级执行的线程。要是处于同一优先级,那么就不能抢占正在执行的线程,在调度表准予它控制前只能等待当前的线程完成执行周期。

  RTOS工具的基本特性是如何管理堆栈,这是它的传统。RISC RTOS 通常支持多个堆栈(OS1个,每个任务各1个,管理程序和用户堆栈)、而DSP RTOS 只管理单个堆栈。这是由于DSP系统中任务/线程的数量少且同步事项相对简单,因而单堆栈实现是最高效率的,也是相对安全的。

  多堆栈实现

  与单堆栈RTOS不同,控制RTOS使用多堆栈,这样可为大量的任务提供分离和控制。由于堆栈必须在上下关系切换时间或发生中断时交换,因此它的效率不高。然而,堆栈在一个特定任务内多少有点独立的,与RTOS保持分离,即便是某些任务失败时也还要继续进行下去。

  这类RTOS涉及更多的设计复杂性,应用开发人员通常自己不编写,而是倾向于购买现成的多堆栈RTOS。由于市场需求量大,很多RTOS供应商,包括Wind River、Enea、 Green Hills、Quadros等都提供多驱动、多堆栈RTOS。

  多堆栈内核程序(图2)既是传统的,又是灵活的一种多任务内核体系结构,旨在下列应用中使用:通信、汽车、过程控制以及仪表系统。

  这种体系结构对需要快速中断响应时间和在任务间快速而又确定的切换的系统是十分理想的。每个任务都有自己的堆栈,让它与系统事件同步;它清空系统堆栈,供处理内核服务程序以及中断服务例行程序使用。

  每个堆栈都具有自己的优先权,缺省的任务调度策略是根据优先权来抢先的。多堆栈调度表将控制权指定给准备运行的最高优先权任务。当较高优先权任务准备运行而低优先权任务控制着处理器时,调度表会抢占低优先权任务,将处理器控制权授予较高优先权任务中的一个。除了抢先调度安排,对同等优先权任务,内核程序还支持循环配置和时间分片调度。某些堆栈RTOS允许使用有别于时间的其它变量,让时间分片成为制约任务执行持续时间的通用解决方案。

  在很多多堆栈环境中,除了任务还有3种附加代码实体:内核服务API、内核服务程序以及中断服务例行程序。任务和中断服务例行程序执行应用要求的操作,并通过它们相关联的API功能调用内核服务程序来影响系统的行为。

  多堆栈内核程序支持内核目标代码的类别,而内核服务程序支持这些目标代码。设置目标代码是为:任务同步、传送数据、管理事件与计数器、报警、管理内存以及专用实体访问。凭借系统设计知识,系统开发人员可用实用程序来选择目标代码类别以及它们的属性,以便调整代码的大小和满足应用要求最佳配置的内核特性。多堆栈内核程序的规模是随它最初定位的应用而变化的,通常RTXC多堆栈RTOS在4.5KB与20KB这间,这取决于处理器和编释器的效率。

  

  图2 典型的多堆栈RTOS体系结构

霍尔传感器相关文章:霍尔传感器工作原理


电度表相关文章:电度表原理


霍尔传感器相关文章:霍尔传感器原理


评论


相关推荐

技术专区

关闭