uSmartX在ARM平台中的移植及应用.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
uSmartX在ARM平台中的移植及应用.doc

PAGE  PAGE 6 实时操作系统uSmartX及其在LPC2132上的应用 武汉理工大学自动化学院 于彬 摘要:uSmartX是一个免费的源码公开的轻量级嵌入式实时操作系统。微内核的设计令它不仅性能优良、功能齐全而且只占用很少的系统资源,并且使用非常简单。本文主要阐述uSmartX的任务调度策略、时间控制机制以及一些相关的系统模块的实现原理,然后以uSmartX在LPC2132上的应用为例介绍uSmartX的使用方法。 一、前言 随着人们对智能化的要求越来越高,嵌入式系统的发展也越来越迅速,嵌入式实时操作系统(RTOS)正得到越来越广泛的应用。采用RTOS可以简化应用软件的设计,缩短系统开发时间, 更合理的利用CPU的资源,更好地保证系统的可靠性。由于RTOS需要消耗一定的RAM和ROM,可以用于小型系统得RTOS并不多,目前国内比较流行的是μC/OSII,因为μC/OSII的资料丰富,非常便于学习。但μC/OSII本身是商业操作系统, 在商业场合使用需要交纳一定的费用。 uSmartX是一个完全免费的嵌入式实时操作系统,它几乎完全由C语言编写,已经通过许多场合的测试,具有功能齐全、性能优良、使用方便、占用系统资源少等特点。 二、uSmartX的基本特点 uSmartX 是一个非先占式、多任务、基于优先级的RTOS,作为一个轻量级的操作系统,它提供了任务间相互通信的机制和基本的任务及时间控制功能。uSmartX专门为小型嵌入式系统而设计,非先占式内核只消耗极少的存储空间,并且使用起来非常简便。 uSmartX主要有以下特性: 任务控制 时间控制 邮箱 信号量 带触发功能的环形缓存 内存管理 平台无关 在使用uSmartX前,一般先将其所有源文件编译为“库”的形式。在正式的应用中只需包含必要的头文件,并在编译时将库连接到工程中即可,这比较类似于KEIL 自带RTX51,这种方法相对于直接操作源文件,不仅能有效的减少代码的体积,还能使文件结构显得更加简洁,管理更加方便。 三、uSmartX的任务调度策略 任务调度是嵌入式实时操作系统的灵魂。在uSmartX初始化期间,内核将需要运行的任务建立成一张任务表,任务的调度是基于优先级的,如果所有任务优先级相同,则调度策略降低为时间片轮番调度。 每当一个任务开始运行,内核就会得到来自任务的一个“系统事件”以表明任务的行为。 uSmartX内核提供了以下系统事件。 SYS_NONE :任务未得到任何来自内核的事件; SYS_ERROR:任务正在挂起(等待)一个资源而且资源被复位。这种情况的一个例子就是当任务在等待一个信号量而信号量正在被复位; SYS_TOUT:任务在运行时被中断延时且出现超时; SYS_MBX:任务在挂起一个邮箱,或发送了一个带超时限制的邮箱; SYS_MBX_TOUT:任务正在挂起邮箱且出现超时 ; SYS_SEM:任务正在挂起信号量且发送了一个带超时限制的信号量; SYS_SEM_TOUT:任务正在挂起邮箱且出现超时; SYS_IDLE:调度器返回待机状态,表示当时没有任何任务处于就绪状态 SYS_OK:系统的调用者(任务)或调度器成功返回 uSmartX 内核保证正在运行的任务具有最高优先级并处于准备就绪状态。如果没有任何任务准备就绪的任务需要运行,则调度器将返回“SYS_IDLE”事件代码,用户可以根据需要处理。任务在运行时可以被挂起或延时,既可以通过调用一个专用的系统函数来实现精确的延时,也可以用挂起资源的方式间接延时。但在挂起资源时必须特别注意,一种典型的情况就是当一个任务等待邮箱和超时,由于这是一个非先占式内核,即使当时的资源(邮箱或超时)不可用,任务也必须结束并返回系统事件。 由于这是一个非先占式内核,故上下文切换只发生在一个任务运行结束时。这一点至关重要,因为一旦一个任务总是不结束,那么它将中断整个系统。 四、uSmartX功能模块简介 uSmartX主要包含以下模块: FIFO缓存 邮箱 内存管理 信号量 内核 任务控制 定时器 下面简要介绍各个模块的功能与特点。 4.1. FIFO缓存 uSmartX 中实现的缓存结构是带一些附加特性的标准FIFO循环缓存。 它与邮箱基本类似,除了一点:任务在请求或存放数据到缓存中的时候不能够挂起。缓存的结构是在编译的时候定义的,特别是缓存的大小和元素的大小。尽管缓存的一些默认参数是在编译的时候输入的,其他的参数可以在运行时改变。 有两个系统事件与缓存有关,一个是当缓存填充到某个程度的时候调用,另一个是在缓存中有超时元素时执行。 4.2. 邮箱 邮箱是一种任务间互相通信的机制,它也用于中断与任务的通信。 uSmartX 中每个邮箱都有自己的控制结构。不同的任务和中断可以发送同一个邮箱,但

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档