CMX-RTOS中文使用手册.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
CMX-RTOS中文使用手册

C M X – R T O S 中文使用手册 郭 伟 2 0 0 5 年 5 月9 日 CMX-RTOS 中文使用手册 CMX 多任务执行体 欢迎来到实时多任务操作系统(RTOS)的世界。CMX 为创建一个由高效的C 语言或者汇编语言编 写的、设计良好的多任务应用程序提供了必要的函数调用功能和操作系统平台。 一个处理器可以通过分时执行、在不同的任务之间互相切换,从而使人感觉到这些任务好象是在 同时运行的,这就是所谓的多任务执行方式。CMX 是一个实时的多任务操作系统,它提供了一系列函 数调用功能和一个实时多任务操作系统内核。它可以完成: 对任务执行进程的控制 发送和接收消息 处理事件 资源访问控制 用不同的方法进行定时器控制 内存管理功用 任务切换和中断 1、CMX 任务调度程序 CMX 操作系统能根据所接收到的输入事件实时地进行任务切换,CMX 操作系统的核心就是其任 务调度程序。这个调度程序基于真正的抢占(preemption)机制,这意味着如果因为调用某个CMX 函数 使得具有更高优先级的任务变为可运行状态(就绪态) ,那么当前任务和中断服务子程序就会产生瞬时 的任务切换,执行目前优先级最高的任务。 除强行中断当前任务的抢占方式外,还有协作任务调度方式,也就是在必要的情况下,当前运行 任务可以让另一个任务(优先级相同或较低)先运行。CMX 操作系统能够实现真正的分时操作。分时调 度机制允许一个优先级较高的任务抢占当前正在运行的任务。当该高优先级的任务完成后,原先的分 时任务重新获得CPU 控制权,直到分配给它的时间片耗尽为止。 调度程序跟踪与任务相关的一些变量,调度程序何时执行任务切换取决于这些变量的状态。任务 或中断可能会引发抢占式任务调度,它通知调度程序有一个优先级较高的任务需要运行。也有可能会 发生决定*系统Tick* 中断,即所有与时间相关活动的基础。CMX 的时间tick 函数将决定是否有任何与 时间相关的活动需要处理,它也会通知调度程序调用CMX 定时器任务,定时器任务将处理定时工 作。 如果发生了任务抢占,正在运行的任务的上下文会被立即保存。调度程序为决定下一个运行的任 务会调入所有与该任务相关的信息。如果一个任务被挂起,不管是被函数调用所阻塞还是被优先级较 高的任务挂起,在执行完强行抢占的优先级较高的任务后,原先的任务都将重新恢复运行,就好象从 没有被挂起过。原先的任务将恢复运行时,所有被保存的任务变量将被重新载入,所有寄存器也都恢 复成原先在任务中的值。 如果你想获得更多的信息,请参看CMX RTOS 用户手册调度程序这章,该章详细介绍了调度程序 的工作机制。这一章解释了调度程序将用到的各种标记,以及调度程序对于中断驱动cmx_tick 函数、 任务、CMX 函数和其它中断的接口。 1.1 任务的中断 一个任务可能会因为进行了某个CMX 函数调用而把自身挂起,迫使调度程序立即发生重新调 度,而不考虑指定的系统时间间隔。当然把一个任务从挂起状态中脱离、或开始一个空闲态的任务的 CMX 函数调用也会发生强制性的任务重新调度,假如这个被挂起的任务或新任务比当前运行的任务优 1 CMX-RTOS 中文使用手册 先级高的话。 CMX 提供了处理单个或多重(嵌套) 中断的能力。当发生中断嵌套时,因为中断可能会调用许多 CMX 函数,CMX 为此提供了必要的中断函数用来保存和恢复任务或中断的上下文。 当一个任务(或中断) 的上下文被保存时,所有与该任务或中断有关的参数(所有的CPU 寄存器,局 部变量以及用于传递参数的变量)能够确保被准确地恢复,就好象这个任务或中断从来没有被挂起过。 1.2 任务的状态 一个任务可以处于几种可能的状态之一,但同一时刻一个任务只能有一种状态。这些状态是:空 闲态、就绪态、运行态、等待(挂起)态、恢复态。 (1) 空闲态 一个用cxtcre 函数创建但未由cxtrig 函数激活的任务处于在空闲态。一个已经执行完毕并调用

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档