单片机操作系统RTX51 Tiny的使用步骤

本文介绍RTX51Tiny编程的三个主要步骤:编写程序、编译连接及调试。重点介绍了如何定义任务、编程原则及使用uvison集成开发环境的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般地,下面三步是使用RTX51 Tiny要实现的


l        编写RTX51程序


l        编译并连接程序


l        测试和调试程序


一、编写程序


   写RTX51 Tiny程序时,必须用关键字对任务进行定义,并使用在RTX51TNY.H中声明的RTX51 Tiny核心例程。


1、包含文件


RTX51 Tiny仅需要包含一个文件:RTX51TNY.H。所有的库函数和常数都在该头文件中定义。你可以在你的源文件中包含它:


#include<rtx51tny.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、uvison集成开发环境


用uvison建立RTX51 Tiny程序。


1)      打开目标对话框选项(从project菜单选择Options for Target)。


2)      选择目标标签。


3)      从操作系统选项列表选择RTX51 Tiny。


三、调试


    uvison模拟器允许运行和测试RTX51 Tiny应用程序。RTX51 Tiny程序的载入和无RTX51 Tiny程序的载入是一样的。无需指定特别的命令和选项。


一个核心的对话框显示RTX51 Tiny核心和程序中任务的所有特征。从Peripherals菜单选择RTX51 Tiny Tasklist显示该对话框。


该对话框中:


l        TID是在任务定义中指定的任务ID。


l        Task Name是任务函数的名字。


l        State是任务当前的状态。


l        Wait for Event指出任务正在等待什么事件。


l        Sig显示任务信号标志的状态(1为置位)。


l        Timer指示任务距超时的滴答数,这是一个自由运行的定时器,仅在任务等待超时和时间间隔时使用。


l        Stack指示任务栈的起始地址


第 1 部分 概述描述 rtx51实时操作系统的功能并给出RTX51 TinyRTX51 Full 版本的基本特征和差异同时包括 RTX51 Full 和 RTX51 Tiny. 的 技术数据 第 部分系统需求和定义讨论 RTX51 Tiny的开发工具和目标系统的需求解释在 RTX51 Tiny 手册中使用的术语和任务定义的描述 第 部分建立 R T X 5 1 T i n y 应用程序描述建立 RTX51 Tiny应用程序的步骤 第 部分库函数提供全部 RTX51 Tiny库程序的索引 第 部分系统调试描述 RTX51 Tiny的堆栈管理还包括系统调试得有关信息 第 部分应用程序例子包括几个使用 RTX51 Tiny的例子和软件开发过程的描述此信息可 以作为你的实时设计的指导原则 概述 .......................................................................................................... 7 入门 ............................................................................................................... 7 单任务程序.................................................................................................. 8 时间片轮转程序............................................................................................... 8 用 RTX51进行循环调度..................................................................... 8 RTX51事件 ........................................................................................................... 9 用 RTX51进行编译和连接 ....................................................................... 11 要求和定义 .............................................................. 15 开发工具需求............................................................................................................ 15 目标系统需求................................................................................................................... 15 中断处理 ................................................................................................... 15 可重入功能 ................................................................................................. 16 c51库函数 ............................................................................................. 16 多数据指针和数学单元的用法 ........................................... 16 寄存器段........................................................................................................... 17 任务定义 ....... 17 任务管理 ... 17 任务切换 ........................................................................................................ 18 事件 ...................................................................................................................... 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值