lzh电子论坛

欢迎来到lzh电子论坛:
如果您对电子技术感兴趣就加入我们吧!在这里互相交流互相学习!主要讨论的方向有:单片机,ARM,PCB板设计,FPGA,汇编,C/C++等方面。
-----lzh电子论坛
lzhbbs.top-me.com
lzh电子论坛

电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...

欢迎访问lzh电子论坛。可通过【谷歌,SOSO,搜狗】搜索“lzh电子论坛”直接进入论坛。点击了解论坛详细制度


    UCOS_II常用函数

    分享
    avatar
    Admin
    管理员
    管理员

    帖子数 : 869
    威望 : 15
    注册日期 : 12-11-23
    年龄 : 25

    UCOS_II常用函数

    帖子 由 Admin 于 2013-08-05, 2:48 pm

    1、OSInit( )

    Void OSInit(void);

    OSinit()初始化μC/OS-Ⅱ,对这个函数的调用必须在调用OSStart()函数之前,而OSStart()函数真正开始运行多任务。

    注意/警告

    必须先于OSStart()函数的调用

     

    2、OSStart ( )

    void OSStart(void);

    OSStart( )启动μC/OS-II的多任务环境。

    注意/警告

    在调用OSStart( )之前必须先调用OSInit ( )。在用户程序中OSStart( )只能被调用一次。第二次调用OSStart( )将不进行任何操作。

     

    3、OSSchedLock( )

    Void OSSchedLock(void);

    OSSchedLock()函数停止任务调度,只有使用配对的函数OSSchedUnlock()才能重新开始内核的任务调度。调用OSSchedLock()函数的任务独占CPU,不管有没有其他高优先级的就绪任务。在这种情况下,中断仍然可以被接受和执行(中断必须允许)。OSSchedLock()函数和OSSchedUnlock()函数必须配对使用。μC/OS-Ⅱ可以支持多达254层的OSSchedLock()函数嵌套,必须调用同样次数的OSSchedUnlock()函数才能恢复任务调度。

     

    4、OSSchedUnlock( )

    Void OSSchedUnlock(void);

    在调用了OSSchedLock()函数后,OSSchedUnlock()函数恢复任务调度。

    注意/警告

    任务调用了OSSchedLock()函数后,决不能再调用可能导致当前任务挂起的系统函数:OSTimeDly(),OSTimeDlyHM***(),OSSemPend(),O***boxPend(),OSQPend()。因为任务调度已经被禁止,其他任务不能运行,这会导致系统死锁。

     

    5、OSStatInit ( )

    void OSStatInit (void);
    OSStatInit()获取当系统中没有其他任务运行时,32位计数器所能达到的最大值。OSStatInit()的调用时机是当多任务环境已经启动,且系统中只有一个任务在运行。也就是说,该函数只能在第一个被建立并运行的任务中调用。

     

    6、OSVersion( )

    INT16U OSVersion (void);

    OSVersion()获取当前μC/OS-II的版本。

    返回值

    当前版本,格式为x.yy,返回值为乘以100后的数值。例如当前版本2.00,则返回200。

      目前的日期/时间是2018-02-20, 11:45 am