### 嵌入式uCOS API参考手册知识点详解 #### OSInit() **功能描述:** `OSInit()` 是 μC/OS-Ⅱ 操作系统的初始化函数,它用于完成操作系统内核的初始化工作,为后续任务调度做好准备。 **函数原型:** ```c Void OSInit(void); ``` **函数名称及源代码:** 此函数定义在 `OS_CORE.C` 文件中。 **函数使用的常量:** 无 **函数参数:** 无 **函数返回值:** 无 **特殊说明与注意点:** - 必须在调用 `OSStart()` 函数之前调用此函数。 - 调用范例: ```c void main(void) { ... OSInit(); /* 初始化 uC/OS-II */ ... OSStart(); /* 启动多任务内核 */ } ``` --- #### OSIntEnter() **功能描述:** `OSIntEnter()` 用于通知 μC/OS-Ⅱ 正在执行中断处理程序,有助于操作系统跟踪中断嵌套情况。 **函数原型:** ```c Void OSIntEnter(void); ``` **函数名称及源代码:** 此函数定义在 `OS_CORE.C` 文件中。 **函数使用的常量:** 无 **函数参数:** 无 **函数返回值:** 无 **特殊说明与注意点:** - 只能在中断上下文中调用此函数。 - 如果处理器支持自动读取-修改-写入操作,则可以直接增加中断嵌套计数器 `OSIntNesting` 的值,以减少开销。 - 范例一(使用函数调用): ```assembly ISRx PROC FAR PUSH AX; 保存中断现场 PUSH ES PUSH DS ... CALL FAR PTR OSIntEnter; 通知内核进入中断 ... POP DS; 恢复中断现场 POP ES POP AX IRET; 中断返回 ISRx ENDP ``` - 范例二(直接修改变量): ```assembly ISRx PROC FAR PUSH AX; 保存中断现场 PUSH ES PUSH DS ... INC BYTE PTR OSIntNesting; 通知内核进入中断 ... POP DS; 恢复中断现场 POP ES POP AX IRET; 中断返回 ISRx ENDP ``` --- #### OSIntExit() **功能描述:** `OSIntExit()` 用于通知 μC/OS-Ⅱ 中断服务已完成,并且可能触发任务调度。 **函数原型:** ```c Void OSIntExit(void); ``` **函数名称及源代码:** 此函数定义在 `OS_CORE.C` 文件中。 **函数使用的常量:** 无 **函数参数:** 无 **函数返回值:** 无 **特殊说明与注意点:** - 只能在中断上下文中调用此函数。 - 如果中断服务完成后有更高优先级的任务就绪,μC/OS-Ⅱ 将进行任务切换。 - 即使没有调用 `OSIntEnter()` 而是直接修改 `OSIntNesting` 的值,也必须调用 `OSIntExit()`。 - 范例: ```assembly ISRx PROC FAR ... CALL FAR PTR OSIntExit; 通知内核退出中断 ... POP DS; 恢复中断现场 POP ES POP AX IRET; 中断返回 ISRx ENDP ``` --- #### OSMboxAccept() **功能描述:** `OSMboxAccept()` 用于检查消息邮箱是否包含待接收的消息。如果消息存在,则返回指向该消息的指针,并从邮箱中移除该消息。此函数通常由中断调用,因为中断不允许挂起等待消息。 **函数原型:** ```c Void *OSMboxAccept(OS_EVENT *pevent); ``` **函数名称及源代码:** 此函数定义在 `OS_MBOX.C` 文件中。 **函数使用的常量:** `OS_MBOX_EN` **函数参数:** - `pevent`:指向需要检查的消息邮箱的指针。 **函数返回值:** - 如果消息存在,则返回指向消息的指针。 - 如果消息邮箱为空,则返回 `NULL`。 **特殊说明与注意点:** - 在调用此函数前,必须先创建消息邮箱。 - 调用范例: ```c OS_EVENT *pEvent; ... pEvent = OSMboxCreate(...); /* 创建消息邮箱 */ ... Void *pData = OSMboxAccept(pEvent); /* 接收消息 */ ... ``` 通过以上对 `OSInit()`、`OSIntEnter()`、`OSIntExit()` 和 `OSMboxAccept()` 函数的详细介绍,我们可以更好地理解这些函数如何在 μC/OS-Ⅱ 操作系统中发挥作用,以及如何正确地使用它们来实现特定的功能。这些函数是 μC/OS-Ⅱ 内核中的关键组成部分,对于嵌入式系统开发人员来说非常重要。
剩余63页未读,继续阅读
- 粉丝: 0
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 工业机器人安装密度数据集(2006-2023年) .xlsx
- 汽车网络DoIP协议在CANoe中的应用与配置指南
- Matlab BPSK信道编码(汉明码 循环码 卷积码)
- 机械设计500MW锂电池储能集装箱step全套技术资料100%好用.zip
- 低功耗10bit逐次逼近型SAR ADC电路设计成品 入门时期第二款原创sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,1.8V供电 整体采样率250k
- 双闭环PID控制buck(电压电流环) 可选buck boost 单相整流 三相整流 都是脉冲控制,BUCK降压变器以及变负载实验仿真,输入电压12V,输出电压5V,simulink matlab
- HCIE-Security V3.0 培训教材-PPT
- SAP助力企业数字化转型:打造智慧企业与信息化建设
- 机械设计AT变速箱齿轮加工生产线sw17全套技术资料100%好用.zip
- 机械设计pol撕膜机(sw18可编辑+工程图)全套技术资料100%好用.zip
- 机械设计抱轨式阻车器sw16可编辑全套技术资料100%好用.zip
- html+css网页设计 美食 中华饮食文化1个页面
- 机械设计USB A母侧插DIP加铁壳 (sw16 可编辑+cad+bom)全套技术资料100%好用.zip
- 离散型制造业数字化工厂系统的构建与实践
- jmtsapi-1.0.0-winx64-test.zip
- 机械设计残疾人康复智能助行器sw19可编辑全套技术资料100%好用.zip