small rtos51使用手册

单片机实验

27人已加入

描述

small rtos51使用手册

1.      Small RTOS(51)文件列表

 

根目录:

list.txt                        :本文件

README.TXT                      :一些说明

license.txt                     :许可协议

manual.txt                      :用户手册

 

.\ex1:

这是第1个例子的目录

README.TXT                      :本例子的一些说明

ext1.c                          :本例子的程序文件

OS_CFG.H                        :本例子的Small RTOS(51)配置文件

config.h                        :本例子的配置文件

OS_CPU.H                        :本例子的与cpu相关的配置文件

test.Uv2                        :keil c51工程文件

test.plg                        :keil c51工程附属文件

test.Opt                        :keil c51工程附属文件

 

.\ex2:

这是第2个例子的目录

README.TXT                      :本例子的一些说明             

ext2.c                          :本例子的程序文件             

OS_CFG.H                        :本例子的Small RTOS(51)配置文件

config.h                        :本例子的配置文件             

OS_CPU.H                        :本例子的与cpu相关的配置文件

display.c                       :对仿真dll的一些操作函数         

display.h                       :display.c的头文件         

test.Uv2                        :keil c51工程文件             

test.Opt                        :keil c51工程附属文件

test.plg                        :keil c51工程附属文件

 

.\ex3:

这是第3个例子的目录

README.TXT                      :本例子的一些说明               

ext3.c                          :本例子的程序文件                

OS_CFG.H                        :本例子的Small RTOS(51)配置文件 

config.h                        :本例子的配置文件               

OS_CPU.H                        :本例子的与cpu相关的配置文件

display.c                       :对仿真dll的一些操作函数        

display.h                       :display.c的头文件              

test.Uv2                        :keil c51工程文件               

test.Opt                        :keil c51工程附属文件           

test.plg                        :keil c51工程附属文件           

 

.\ex4:

这是第4个例子的目录

ext4.c                          :本例子的一些说明               

README.TXT                      :本例子的程序文件               

OS_CFG.H                        :本例子的Small RTOS(51)配置文件 

config.h                        :本例子的配置文件               

OS_CPU.H                        :本例子的与cpu相关的配置文件

display.c                       :对仿真dll的一些操作函数        

display.h                       :display.c的头文件              

test.Uv2                        :keil c51工程文件               

test.Opt                        :keil c51工程附属文件           

test.plg                        :keil c51工程附属文件           

 

.\keilc51

这是与CPU(8051系列)相关的移植代码

OS_CPU_C.C                      :移植代码C语言部分

OS_CPU_A.ASM                    :8任务版的移植代码汇编语言部分

OS_CPU_A_task16.ASM             :16任务版的移植代码汇编语言部分

 

.\os

这是Small RTOS(51)与CPU无关部分

OS_CORE.C                       :Small RTOS(51)核心

OS.H                            :Small RTOS(51)头文件


 

 

1.      概述:

    Small RTOS是一个源代码公开的多任务实时操作系统,Small RTOS 51是其在8051系列处理器上的移植(使用keil c51)。Small RTOS可以简化那些复杂而且时间要求严格的工程的软件设计工作.本手册主要讲述Small RTOS的使用,本说明了在8051系列处理器上使用应该注意的问题。同时讲述了Small RTOS的移植。

    本手册仅针对Small RTOS(51) 1.00版本

 

2.       Small RTOS的特点:

(1)公开源代码

    只要遵循许可协议,任何人可以免费获得源代码。

(2)可移植

    作者尽量使用把与CPU相关部分压缩到最小,与CPU无关部分用ansi c编写。

(3)可固化

    Small RTOS为嵌入系统设计,如果您有固化手段,它可以嵌入到您的产

    品中成为产品的一部分。

(4)占先式

    Small RTOS可以管理16个任务,每个任务优先级不同。

(5)中断管理

    中断可以使正在执行的任务挂起。如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255层。如果需要,可以禁止中断嵌套管理。

(6)RAM需求小

    Small RTOS为小RAM系统设计,应而RAM需求小,相应的,系统服务也少。

 

 

3.      Small RTOS的使用:

(1)系统配置:

    os_cfg.h中定义了一些常量可以配置系统,具体定义如下:

 

#define OS_MAX_TASKS        1   /* 最大任务数1~16                                           */

#define OS_TICKS_PER_SEC    10  /* 设置1秒系统系统节拍数                                   */

#define USER_TICK_TIMER_EN 0   /* 禁止(0)或允许(1)系统定时中断调用用户函数UserTickTimer() */

#define EN_OS_INT_ENTER     1   /* 禁止(0)或允许(1)中断嵌套管理                             */

#define EN_TIMER_SHARING    1   /* 禁止(0)或允许(1)定时器中断调用OSTimeTick()               */

#define TICK_TIMER_SHARING  1   /* 定义进入多少次硬件中断为一次系统定时器软中断             */

//

#if EN_TIMER_SHARING == 0

#define TIME_ISR_TASK_ID   SHOW_TASK_ID  /* 定义系统定时器软中断触发的任务ID             */

#endif

 

    Os_cpu.h中定义了一些常量可以配置一些与cpu相关的部分。

针对Small RTOS 51,具体定义如下:

#define EN_SP2          0           /* 禁止(0)或允许(1)非屏蔽中断      */

#define IDATA_RAM_SIZE 0x100       /* idata大小                       */

#define Sp2Space        4          /* 高级中断(软非屏蔽中断)堆栈大小 EN_SP2为0时无效    */

#define OS_TIME_ISR     1          /* 系统定时器使用的中断                                  */

  //

SET_EA  MACRO               ;打开所有允许中断

SETB   EA

ENDM

 

 

(2)运行Small RTOS

    在main函数中调用OSStart()后系统开始运行,OSStart()结束后运行优先级为0的任务。

    注意:在调用OSStart()前不要使能总中断标志,系统会自动使能这个标志,对于8051系列,这个标志为EA。

(3)建立任务:

    Small RTOS使用静态方法建立任务,在config.h中有这样一段代码:

 

   #ifdef IN_OS_CPU_C

   extern void TaskA(void);

   extern void TaskB(void);

   extern void TaskC(void);

 

   void  (* const TaskFuction[OS_MAX_TASKS])(void)={TaskA,TaskB,TaskC};

   //函数数组TaskFuction[]保存了各个任务初始PC指针,其按任务ID(既优先级次序)顺序保存

   #endif

  

用户只要定义好OS_MAX_TASKS,TaskFuction[],任务将自动运行。其中TaskA等为任务对应函数。

注意:ID为0的任务为最高优先级任务,系统运行后首先执行它。

(4)删除任务

    Small RTOS 1.00版不允许删除任务,因此,每个任务必须为无限循环结构。

(5)任务睡眠

    任务可以调用OSWait()使自己睡眠,其原型如下:

   

    unsigned char OSWait (unsigned char typ, unsigned char ticks);

 

    功能描述: 系统等待函数,任务调用此函数可以等待一定时间或信号

    输入: typ: 等待事件类型,目前可以取以下值,或是其中任意个值的按位或

              K_SIG: 等待信号

              K_TM 等待超时   

         ticks : 等待超时时的系统节拍数

    输出 : NOT_OK : 参数错误

          TMO_EVENT : 超时到

          SIG_EVENT : 有信号

    如果任务等待信号,另一个任务可以调用OSSendSignal()使其进入就

    绪状态,其原型如下:

  

    void OSSendSignal (unsigned char TaskId);

 

    功能描述: 中断中给指定任务发送信号,既使指定任务就绪

    输 入: TaskId : 任务ID

    输 出: 无

    中断调用OSIntSendSignal()也可以唤醒睡眠任务,其原型如下:

  

    void OSIntSendSignal (unsigned char TaskId);

 

    功能描述: 任务中给指定任务发送信号,既使指定任务就绪

    输 入: TaskId : 任务ID

    输 出: 无

(5)优先级最低的任务

    优先级最低的任务必须一直处于就绪状态,不允许调用OSWait;

(6)Small RTOS 51 任务特殊处由于

Small RTOS51 使用许可协议

复制、发布和修改的条款和条件:
(1)任何人可以免费获取Small RTOS51 源代码用于非商业目的而无需作者同意。一
旦您得到这些源代码,表示您接受本协议。如果您不同意本协议,请销毁它,或是将其退回
原购买处。
(2)任何人可以分发Small RTOS51 源代码,条件是要完整分发,不能缺少任何一个
文件,目录结构也不得改变,也不能修改它的任何部分,
(3)如果要将Small RTOS51 用于您的项目中,而您的项目有商业目的,您也无需支
付任何费用,但您必须将项目的简要介绍、技术特点、应用范围、Small RTOS51 的使用情
况等说明文字交给作者,联系方法请阅读readme.txt 文件。
(4)法律与本许可协议冲突的地区暂时不允许使用本产品。如果您确实需要,可以与作者
联系。
没有担保
由于Small RTOS51 只是最终产品的程序的一部分,作者不提供任何类型的担保。不
论是明确的,还是隐含的。包括但不限于合适特定用途的保证。全部的风险,由使用者来承
担。如果程序出现缺陷,使用者承担所有必要的服务、修改和改正的费用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分