uCOS操作系统46个基函数汇总.pdf
文本预览下载声明
uC/OS 操作系统46 个基本函数汇总
Void OSInit(void);
所属文件 OS_CORE.C 调用者 启动代码 开关量 无
OSinit ()初始化μC/OS- Ⅱ,对这个函数的调用必须在调用OSStart ()函数之前,
而OSStart ()函数真正开始运行多任务。
Void OSIntEnter(void);
所属文件 OS_CORE.C 调用者 中断 开关量 无
OSIntEnter ()通知μC/OS- Ⅱ一个中断处理函数正在执行,这有助于μC/OS- Ⅱ掌握中断嵌套的情况。
OSIntEnter ()函数通常和OSIntExit ()函数联合使用。
注意/警告:在任务级不能调用该函数。如果系统使用的处理器能够执行自动的独立执行读取-修改-写入的
操作,那么就可以直接递增中断 嵌套层数(OSIntNesting ),这样可以避免调用函数所带来的额外的开销。
Void OSIntExit(void);
所属文件 OS_CORE.C 调用者 中断 开关量 无
OSIntExit ()通知μC/OS- Ⅱ一个中断服务已执行完毕,这有助于μC/OS- Ⅱ掌握中断嵌套的情况。通常
OSIntExit ()和OSIntEnter ()联合使用。当最后一层嵌套的中断执行完毕后,如果有更高优先级的任务
准备就绪,μC/OS- Ⅱ会调用任务调度函数,在这种情况下,中断返回到更高优先级的任务而 不是被中断了
的任务。
注意/警告:在任务级不能调用该函数。并且即使没有调用OSIntEnter ()而是使用直接递增OSIntNesting 的
方法,也必须调用OSIntExit ()函数。
Void OSSchedLock(void);
所属文件 OS_CORE.C 调用者 任务或中断 开关量 N/A
OSSchedLock ()函数停止任务调度,只有使用配对的函数OSSchedUnlock ()才能重新开始内核的任务
调度。调用OSSchedLock ()函数的任务独占CPU,不管有没有其他高优先级的就绪任务。在这种情况下,
中断仍然可以被接受和执行(中断必须允许)。OSSchedLock ()函数和OSSchedUnlock ()函数必须配
对使用。μC/OS- Ⅱ可以支持多达254 层的OSSchedLock ()函数嵌套,必须调用同样次数的OSSchedUnlock
()函数才能恢复任务调度。
注意/警告:任务调用了OSSchedLock ()函数后,决不能再调用可能导致当前任务挂起的系统函数:
OSTimeDly (),OSTimeDlyHMSM (),OSSemPend (),OSMboxPend (),OSQPend ()。因为任
务调度已经被禁止,其他任务不能运行,这会导致系统死锁。
Void OSSchedUnlock(void);
所属文件 OS_CORE.C 调用者 任务或中断 开关量 N/A
在 调用了OSSchedLock ()函数后,OSSchedUnlock ()函数恢复任务调度。
注意/警告:任务调用了OSSchedLock ()函数后,决不能再调用可能导致当前任务挂起的系统函 数:
OSTimeDly (),OSTimeDlyHMSM (),OSSemPend (),OSMboxPend (),OSQPend ()。因为任务
调度已 经被禁止,其他任务不能运行,这会导致系统死锁。
void OSStart(void);
所属文件 OS_CORE.C 调用者 初始代码 开关量 无
OSStart( )启动μC/OS-II 的多任务环境。
注意/警告:在调用OSStart( )之前必须先调用OSInit ( ) 。在用户程序中OSStart( )只能被调用一次。第二次
调用OSStart( )将不进行任何操作。
void OSStatInit (void);
所属文件 OS_CORE.C 调用者 初始代码 开关量 OS_TASK_STAT_EN
OS_TASK_CREATE_EXT_EN
OSStatInit ()获取当系统中没有其他任务运行时,32 位计数器所能达到的最大值。OSStatInit ()的调用
时机是当多任务环境已经启动,且系统中只有一个任务在运行。也就是说,该函 数只能在第一个被建立并
运行的任务
显示全部