UCOS-II API 参考手册 下载本文

UCOS-II API 参考手册

本章提供了μC/OS-Ⅱ的用户指南。每一个用户可以调用的内核函数都按字母顺序加以说明,包括:

? 函数的功能描述 ? 函数原型

? 函数名称及源代码 ? 函数使用到的常量 ? 函数参数 ? 函数返回值

? 特殊说明和注意点

OSInit( )

所属文件 OS_CORE.C Void OSInit(void);

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

参数

返回值

注意/警告

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

范例:

void main (void) {

.

OSInit(); /* 初始化 uC/OS-II */ .

OSStart(); /*启动多任务内核 */ }

μC/OS-II:实时操作系统内核

OSIntEnter( )

所属文件 OS_CORE.C Void OSIntEnter(void);

调用者 开关量 中断 无 OSIntEnter()通知μC/OS-Ⅱ一个中断处理函数正在执行,这有助于μC/OS-Ⅱ掌握中断嵌套的情况。OSIntEnter()函数通常和OSIntExit()函数联合使用。

参数

返回值

注意/警告

在任务级不能调用该函数。

如果系统使用的处理器能够执行自动的独立执行读取-修改-写入的操作,那么就可以直接递增中断嵌套层数(OSIntNesting),这样可以避免调用函数所带来的额外的开销。

范例一:

(Intel 80x86的实模式, 在大模式下编译,,real mode,large model)

ISRx PROC FAR

PUSHA ; 保存中断现场 PUSH ES PUSH DS ;

MOV AX, DGROUP ; 读入数据段 MOV DS, AX ;

CALL FAR PTR _OSIntEnter ; 通知内核进入中断 . .

POP DS ; 恢复中断现场 POP ES POPA

IRET ; 中断返回 ISRx ENDP

范例二:

(Intel 80x86的实模式, 在大模式下编译,, real mode , large model)

参考手册

ISRx PROC FAR

PUSHA ; 保存中断现场 PUSH ES PUSH DS ;

MOV AX, DGROUP ; 读入数据段 MOV DS, AX ;

INC BYTE PTR _OSIntNesting ; 通知内核进入中断 . . .

POP DS ; 恢复中断现场 POP ES POPA

IRET ; 中断返回 ISRx ENDP

μC/OS-II:实时操作系统内核

OSIntExit( )

所属文件 OS_CORE.C Void OSIntExit(void);

调用者 开关量 中断 无 OSIntExit()通知μC/OS-Ⅱ一个中断服务已执行完毕,这有助于μC/OS-Ⅱ掌握中断嵌套的情况。通常OSIntExit()和OSIntEnter()联合使用。当最后一层嵌套的中断执行完毕后,如果有更高优先级的任务准备就绪,μC/OS-Ⅱ会调用任务调度函数,在这种情况下,中断返回到更高优先级的任务而不是被中断了的任务。

参数

返回值

注意/警告

在任务级不能调用该函数。并且即使没有调用OSIntEnter()而是使用直接递增OSIntNesting的方法,也必须调用OSIntExit()函数。

范例:

(Intel 80x86 的实模式, 在大模式下编译, real mode , large model)

ISRx PROC FAR

PUSHA ; 保存中断现场 PUSH ES PUSH DS . .

CALL FAR PTR _OSIntExit ; 通知内核进入中断 POP DS ; 恢复中断现场 POP ES POPA

IRET ; 中断返回 ISRx ENDP