一、 点击Options for Target -> Target选项卡中,在Operatingsystem中选择RTX-51 Tiny。然后点击OK。
二、 添加Conf_tny.A51文件,此文件在keil的安装目录下有,参考以下目录,复制Conf_tny.A51到工程文件下。并添加到工程。
三、 修改时钟节拍,通常是1ms。当然也可以更改。在Conf_tny.A51文件中,笔者的开发板是11.0592MHz的晶振,定时器定时1ms需要的计数值是1000*11.0592/12约等于922。
四、创建任务,这里和其他的os有点区别,.c文件中没有main函数,如果添加也会报错,这是因为在Conf_tny.A51已经有了main函数,并且自动创建了一个id号为0的任务任务。在MyTask1任务中分别创建了两个任务,本别为TASK1_ID、TASK2_ID。注意这里是任务的ID号。
五、任务功能介绍 1、 MyTask1:初始化外设,并创建其他任务。然后就是LED0状态翻转。 2、 MyTask2:实现1秒串口打印当前数值,并加1。注意C51的print打印函数使用有点区别。
3、 MyTask3:RGB模块实现颜色渐变过程,具体实现方法自己下载后看算法。
六、rtx_tiny是一个非常精简的操作系统,并支持抢占,但没有优先级。还有发送信号,等待信号等API函数,其他函数的使用方法后期介绍,特别是发送信号,对任务同步非常有用。具体函数可以看RTX51TNY.h文件。
七、很多人说51跑不了os、或者说跑os不稳定、占用资源等等。个人见解,目前的51单片机基本都是1T的模式,主频在16M甚至更高,本人使用rtx tiny也做过不少项目,没有出过任何问题。这是笔者在百度截的一张图rtx tiny资源占用表,可见占用flash不到1k,3字节一个一个任务,非常小了,写裸机程序,搭建状态机也不一定比这个少。并且状态机没有os灵活。毕竟os是宏观上的并行。好了,就扯淡这么多了。后面有空再分享!!!
|