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

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

ID:37287194

大小:335.98 KB

页数:15页

时间:2019-05-20

uCOS操作系统46个基本函数汇总_第1页
uCOS操作系统46个基本函数汇总_第2页
uCOS操作系统46个基本函数汇总_第3页
uCOS操作系统46个基本函数汇总_第4页
uCOS操作系统46个基本函数汇总_第5页
资源描述:

《uCOS操作系统46个基本函数汇总》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、uC/OS操作系统46个基本函数汇总VoidOSInit(void);所属文件OS_CORE.C调用者启动代码开关量无OSinit()初始化μC/OS-Ⅱ,对这个函数的调用必须在调用OSStart()函数之前,而OSStart()函数真正开始运行多任务。VoidOSIntEnter(void);所属文件OS_CORE.C调用者中断开关量无OSIntEnter()通知μC/OS-Ⅱ一个中断处理函数正在执行,这有助于μC/OS-Ⅱ掌握中断嵌套的情况。OSIntEnter()函数通常和OSIntExit()函数联合使用。注意/警告:在任务级不能调用该函数。如果系统使用的处理器能够执行

2、自动的独立执行读取-修改-写入的操作,那么就可以直接递增中断嵌套层数(OSIntNesting),这样可以避免调用函数所带来的额外的开销。VoidOSIntExit(void);所属文件OS_CORE.C调用者中断开关量无OSIntExit()通知μC/OS-Ⅱ一个中断服务已执行完毕,这有助于μC/OS-Ⅱ掌握中断嵌套的情况。通常OSIntExit()和OSIntEnter()联合使用。当最后一层嵌套的中断执行完毕后,如果有更高优先级的任务准备就绪,μC/OS-Ⅱ会调用任务调度函数,在这种情况下,中断返回到更高优先级的任务而不是被中断了的任务。注意/警告:在任务级不能调用该函数

3、。并且即使没有调用OSIntEnter()而是使用直接递增OSIntNesting的方法,也必须调用OSIntExit()函数。VoidOSSchedLock(void);所属文件OS_CORE.C调用者任务或中断开关量N/AOSSchedLock()函数停止任务调度,只有使用配对的函数OSSchedUnlock()才能重新开始内核的任务调度。调用OSSchedLock()函数的任务独占CPU,不管有没有其他高优先级的就绪任务。在这种情况下,中断仍然可以被接受和执行(中断必须允许)。OSSchedLock()函数和OSSchedUnlock()函数必须配对使用。μC/OS-Ⅱ可

4、以支持多达254层的OSSchedLock()函数嵌套,必须调用同样次数的OSSchedUnlock()函数才能恢复任务调度。注意/警告:任务调用了OSSchedLock()函数后,决不能再调用可能导致当前任务挂起的系统函数:OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。因为任务调度已经被禁止,其他任务不能运行,这会导致系统死锁。VoidOSSchedUnlock(void);所属文件OS_CORE.C调用者任务或中断开关量N/A在调用了OSSchedLock()函数后,OSSchedUnlock(

5、)函数恢复任务调度。注意/警告:任务调用了OSSchedLock()函数后,决不能再调用可能导致当前任务挂起的系统函数:OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。因为任务调度已经被禁止,其他任务不能运行,这会导致系统死锁。voidOSStart(void);所属文件OS_CORE.C调用者初始代码开关量无OSStart()启动μC/OS-II的多任务环境。注意/警告:在调用OSStart()之前必须先调用OSInit()。在用户程序中OSStart()只能被调用一次。第二次调用OSStart()

6、将不进行任何操作。voidOSStatInit(void);所属文件OS_CORE.C调用者初始代码开关量OS_TASK_STAT_EN&&OS_TASK_CREATE_EXT_ENOSStatInit()获取当系统中没有其他任务运行时,32位计数器所能达到的最大值。OSStatInit()的调用时机是当多任务环境已经启动,且系统中只有一个任务在运行。也就是说,该函数只能在第一个被建立并运行的任务中调用。INT8UOSTaskChangePrio(INT8Uoldprio,INT8Unewprio);所属文件OS_TASK.C调用者任务开关量OS_TASK_CHANGE_PRI

7、O_ENOSTaskChangePrio()改变一个任务的优先级。参数oldprio是任务原先的优先级。newprio是任务的新优先级。返回值OSTaskChangePrio()的返回值为下述之一:OS_NO_ERR:任务优先级成功改变。OS_PRO_INVALID:参数中的任务原先优先级或新优先级大于或等于OS_LOWEST_PRIO。OS_PRIO_EXIST:参数中的新优先级已经存在。OS_PRIO_ERR:参数中的任务原先优先级不存在。注意/警告:参数中的新优先级必须是没有使用过的,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。