- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
一般地,下面三步是使用RTX51 Tiny 要实现的 
l       编写RTX51 程序 
l       编译并连接程序 
l       测试和调试程序 
一、编写程序 
   写RTX51 Tiny 程序时,必须用关键字对任务进行定义,并使用在 
RTX51TNY.H 中声明的RTX51 Tiny 核心例程。 
1、包含文件 
RTX51 Tiny 仅需要包含一个文件:RTX51TNY.H。所有的库函数和常 
数都在该头文件中定义。你可以在你的源文件中包含它: 
#includertx51tny.h 
2、编程原则 
以下是建立RTX51 Tiny 程序时必须遵守的原则: 
①、确保包含了RTX51TNY.H 头文件。 
②、不要建立main 函数,RTX51 Tiny 有自己的mian 函数。 
③、程序必须至少包含一个任务函数。 
④、中断必须有效(EA=1),在临界区如果要禁止中断时一定要小 
心。参见概述中的中断一节。 
⑤、程序必须至少调用一个RTX51 Tiny 库函数(象os_wait )。否 
则,连接起将不包含RTX51 Tiny 库。 
⑥、Task 0 是程序中首先要执行的函数,必须在任务0 中调用 
os_create_task  函数以运行其余任务。 
⑦、任务函数必须是从不退出或返回的。任务必须用一个while(1)或 
类似的结构重复。用os_delete_task 函数停止运行的任务。 
⑧、必须在uvison 中指定RTX51 Tiny,或者在连接器命令行中指定。 
更多技术文档参见keil 软件知识库。 
3、定义任务 
    实时或多任务应用是由一个或多个执行具体操作的任务组成的, 
RTX51 Tiny 支持最多16 个任务。 
任务就是一个简单的C 函数,返回类型为void ,参数列表为void , 
并且用_task_声明函数属性。例如: 
void func (void)_task_task_id 
这里,func 是任务函数的名字,task_id 是从0 到15 的一个任务ID 
号。 
下面的例子定义函数job0 编号为0 的任务。该任务使一个计数器递 
增并不断重复。 
void job0(void)_task_0 
{ 
    while(1) 
{ 
      Counter0++; 
     } 
} 
附注: 
l       所有的任务都应该是无限循环,任务一定不能返回。 
l       任务不能返回一个函数值,它们的返回类型必须是void 。 
l       不能对一个任务传递参数,任务的形参必须是void 。 
l       每个任务必须赋予一个唯一的,不重复的ID。 
l       为了最小化RTX51 Tiny 的存储器需求,从0 开始对任务进行 
顺序编号。 
二、编译和连接 
有两种方法编译和连接RTX51 Tiny 应用程序。 
l       用uvison 集成开发环境 
l       用命令行工具 
1、命令行工具 
RTX51 Tiny 已经完全集成到了C51 编译语言中,这使得生成RTX51 
Tiny 应 
用非常容易。建立RTX51 Tiny 程序只需编写C 函数,无需使用汇编。 
从命令行编译RTX51 Tiny 程序… 
按常规方式调用编译器,无需特别的编译指示。例如: 
C51   RTXPROG.C       DEBUG     OBJECTEXTEND 
产生的RTXPROG.OBJ 文件中包含C 代码和定义的RTX51 Tiny 任务。 
从命令行连接RTX51 Tiny 程序: 
l       在连接器命令行内指定RTX51TNY 指示 
l       在目标文件列表中包含RTX_CONF.OBJ 文件(如果改变了配 
置) 
例如:BL51         RTPROG.OBJ, RTX_CONF.OBJ            RTX51TNY 
RTX51TNY 指示命令连接器连接RTPROG.OBJ 和TX_CONF.OBJ 并且 
包含RTX51 Tiny 库。这样就建立了RTX51 Tiny 程序。 
附注: 
l       不要在RTX51 Tiny 程序中建立mian 函数,只建立任务函数就 
可以。main 函数包含在RTX51 Tiny 库中,它启动操作系统和任务0。 
如果在程序中包含了main 函数,将产生一个连接错误指示有多个 
main 被定义。 
l      程序中至少建立一个任务函数。 
l      必须至少调用一个RTX51 Tiny 函数(象os_wait 或 
os_create_task ),这样,连接器才会包含RTX51 Tiny 库。 
2、
                 原创力文档
原创力文档 
                        

文档评论(0)