文档详情

uCOS操作系统46个基函数汇总.pdf

发布:2018-11-13约2.26万字共15页下载文档
文本预览下载声明
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 ()的调用 时机是当多任务环境已经启动,且系统中只有一个任务在运行。也就是说,该函 数只能在第一个被建立并 运行的任务
显示全部
相似文档