- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- GW射流曝气在迁安焦化废水处理中的应用.pdf
- GyneFixIN宫内节育器避孕效果及副作用的临床研究.doc
- HACCP在豆腐生产、销售过程中的实践和应用.doc
- HACCP 原理在挂面生产中的应用.pdf
- HACCP在食品添加剂生产企业中的应用研究.doc
- Half title page–NCM logo.doc
- HART 协议设备描述语言简介及HART 协议设备互操作.pdf
- HB19808周杰伦武汉演唱会传播计划080820.doc
- HBeAg阴性的HBV感染产妇与母婴传播关系.doc
- HBsAg阳性产妇的母婴传播问题的探讨.doc
- Ki-67和CD105在子宫内膜样腺癌的表达及意义.doc
- KSLPP:新的人脸识别算法.pdf
- La flessibilità dei sistemi produttivi concettualizzazioni e misurazioni sul campo.doc
- LASIK屈光手术围术期健康教育.doc
- LDPC纠错码.ppt
- LED40K260D-LED46K260D-LED48K260D说明书.doc
- LEEP刀加爱杰特联合治疗宫颈糜烂的疗效观察.doc
- LEEP刀治疗宫颈上皮内瘤变40例临床分析.doc
- LEEP刀治疗宫颈病变的临床体会.doc
- LEEP刀治疗宫颈糜烂120例分析.doc
文档评论(0)