Keil ARTX 介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Keil ARTX 介绍

Keil ARTX 介绍 Keil??ARTX(Advanced Real-Time eXecutive) 是keil 为ARM 系列所提供的一个小型实时操作系统,整合于其UV3 开发环境之中. 一,简介 与以前大家使用keil for 51 时所熟悉RTX51 实时操作系统类似,整个OS 为keil IDE 定制,面向特定的处理器,以库的形式提供,这就屏蔽了底层的操作,使得用户可以专注于应用的开发,但同时也使得用户无法接触到操作系统底层. ARTX 提供的基本功能包括任务的建立,运行,删除,可以给任务指定优先级,对任务进行切换,具体可以参考keil 的官方文档ARARM.chm, 位于UV3 的安装目录. ARTX 为任务间通信和共享资源的保护提供如下机制: *事件标志 *信号量 *互斥信号量 *邮箱 ??????????ARTX 的特征如下: 任务数量 最大256 邮箱数量 软件无限制,取决于硬件资源 信号量数量 软件无限制 互斥信号量数量 软件无限制 信号数量 每任务16 个事件标志 用户定时器 软件无限制 RAM 空间需求 最小500 字节 CODE 空间需求 小于5kB 硬件要求 一个片上定时器 任务优先级 1~255 上下文切换时间 在60MHz,0 等待时小于5us 中断锁定时间 60MHz,0 等待时为1.8us 由于ARTX 是keil 为UV3 所定制,所以使用UV3 可以方便地建立基于ARTX 的应用.简单的说,只需要引用一个头文件,并于连接时连接ARTX 库. 下面例子来自keil(位于Keil\ARM\ARTX\Examples\Artx_ex1). 假定当前有两个任务,称作”do-this”与”do-that”.这些必须重复运行,例如间隔时 间为50ms.两者都运行完成后会暂停一段时间,而”do-that”会在”do-this”运行后运行, 并暂停20ms. 按照如下步骤建立应用. 首先利用关键字__task 建立两个任务: void task1 (void) __task { .... code of task 1 placed here .... } void task2 (void) __task { .... code of task 2 placed here .... } 任务必须建立于运行之前,可通过在main 函数中调用os_sys_init() 来启动任务的运行. 如下例中,task1 最先启动,然后其通过调用os_tsk_create 来启动task2. void task1 (void) __task { ??os_tsk_create (task2, 0); ??.... code of task 1 placed here .... } void task2 (void) __task { ??.... code of task 2 placed here .... } void main (void) { ??os_sys_init (task1); } 完成最初所设定的应用任务的源代码如下: /* Include type and function declarations for ARTX */ #include ARTX.H /* id1, id2 will contain task identifications at run-time */ OS_TID id1, id2; /* Forward reference. */ void task1 (void) __task; void task2 (void) __task; void task1 (void) __task { ??/* Obtain own system task identification number */ ??id1 = os_tsk_self (); ??/* Assign system identification number of task2 to id2 */ ??id2 = os_tsk_create (task2, 0); ??for (;;) {????/* do-this */ ????/* Indicate to task2 completion of do-this */ ????os_evt_set (0x0004, id2); ????/* Wait for completion of do-that (0xffff means no time-out)*/ ????os_evt_wait_or (0

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档