Keil ARTX 介绍

Keil ARTX 介绍

ID:37457095

大小:80.50 KB

页数:10页

时间:2019-05-24

Keil ARTX 介绍_第1页
Keil ARTX 介绍_第2页
Keil ARTX 介绍_第3页
Keil ARTX 介绍_第4页
Keil ARTX 介绍_第5页
资源描述:

《Keil ARTX 介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、KeilARTX介绍Keil  ARTX(AdvancedReal-TimeeXecutive)是keil为ARM系列所提供的一个小型实时操作系统,整合于其UV3开发环境之中.一,简介与以前大家使用keilfor51时所熟悉RTX51实时操作系统类似,整个OS为keilIDE定制,面向特定的处理器,以库的形式提供,这就屏蔽了底层的操作,使得用户可以专注于应用的开发,但同时也使得用户无法接触到操作系统底层.ARTX提供的基本功能包括任务的建立,运行,删除,可以给任务指定优先级,对任务进行切换,具体可以参考keil的官方文档ARARM.chm,位于UV3的安装目录.AR

2、TX为任务间通信和共享资源的保护提供如下机制:*事件标志*信号量*互斥信号量*邮箱          ARTX的特征如下:任务数量最大256邮箱数量软件无限制,取决于硬件资源信号量数量软件无限制互斥信号量数量软件无限制信号数量每任务16个事件标志用户定时器软件无限制RAM空间需求最小500字节CODE空间需求小于5kB硬件要求一个片上定时器任务优先级1~255上下文切换时间在60MHz,0等待时小于5us中断锁定时间60MHz,0等待时为1.8us由于ARTX是keil为UV3所定制,所以使用UV3可以方便地建立基于ARTX的应用.简单的说,只需要引用一个头文件,并

3、于连接时连接ARTX库.下面例子来自keil(位于KeilARMARTXExamplesArtx_ex1).假定当前有两个任务,称作”do-this”与”do-that”.这些必须重复运行,例如间隔时间为50ms.两者都运行完成后会暂停一段时间,而”do-that”会在”do-this”运行后运行,并暂停20ms.按照如下步骤建立应用.首先利用关键字__task建立两个任务:voidtask1(void)__task{....codeoftask1placedhere....}voidtask2(void)__task{....codeoftask2plac

4、edhere....}任务必须建立于运行之前,可通过在main函数中调用os_sys_init()来启动任务的运行.如下例中,task1最先启动,然后其通过调用os_tsk_create来启动task2.voidtask1(void)__task{  os_tsk_create(task2,0);  ....codeoftask1placedhere....}voidtask2(void)__task{  ....codeoftask2placedhere....}voidmain(void){  os_sys_init(task1);}完成最初所设定的应用任务的源

5、代码如下:/*IncludetypeandfunctiondeclarationsforARTX*/#include"ARTX.H"/*id1,id2willcontaintaskidentificationsatrun-time*/OS_TIDid1,id2;/*Forwardreference.*/voidtask1(void)__task;voidtask2(void)__task;voidtask1(void)__task{  /*Obtainownsystemtaskidentificationnumber*/  id1=os_tsk_self();  /

6、*Assignsystemidentificationnumberoftask2toid2*/  id2=os_tsk_create(task2,0);  for(;;){    /*do-this*/    /*Indicatetotask2completionofdo-this*/    os_evt_set(0x0004,id2);    /*Waitforcompletionofdo-that(0xffffmeansnotime-out)*/    os_evt_wait_or(0x0004,0xffff);    /*Waitnowfor50ms*/   

7、 os_dly_wait(5);}}voidtask2(void)__task{  for(;;){    /*Waitforcompletionofdo-this(0xffffmeansnotime-out)*/    os_evt_wait_or(0x0004,0xffff);/*do-that*/    /*Pausefor20msuntilsignalingeventtotask1*/    os_dly_wait(2);    /*Indicatetotask1completionofdo-that*/    os_evt_set(0x0004,id1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。