电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

UCOS-II-API-参考手册

76页
  • 卖家[上传人]:206****923
  • 文档编号:90605214
  • 上传时间:2019-06-13
  • 文档格式:DOC
  • 文档大小:633.54KB
  • / 76 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、参考手册UCOS-II API 参考手册本章提供了C/OS-的用户指南。每一个用户可以调用的内核函数都按字母顺序加以说明,包括:l 函数的功能描述l 函数原型l 函数名称及源代码l 函数使用到的常量l 函数参数l 函数返回值l 特殊说明和注意点OSInit( )Void OSInit(void);所属文件调用者开关量OS_CORE.C启动代码无OSinit()初始化C/OS-,对这个函数的调用必须在调用OSStart()函数之前,而OSStart()函数真正开始运行多任务。参数无返回值无注意/警告必须先于OSStart()函数的调用范例:void main (void) . OSInit(); /* 初始化 uC/OS-II */ . OSStart(); /*启动多任务内核 */OSIntEnter( )Void OSIntEnter(void);所属文件调用者开关量OS_CORE.C中断无OSIntEnter()通知C/OS-一个中断处理函数正在执行,这有助于C/OS-掌握中断嵌套的情况。OSIntEnter()函数通常和OSIntExit()函数联合使用。参数无返回值无注意/警告

      2、在任务级不能调用该函数。如果系统使用的处理器能够执行自动的独立执行读取-修改-写入的操作,那么就可以直接递增中断嵌套层数(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 ; 通知内核进入中断 . . .

      3、POP DS ; 恢复中断现场 POP ES POPA IRET ; 中断返回 ISRx ENDPOSIntExit( )Void OSIntExit(void);所属文件调用者开关量OS_CORE.C中断无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 ; 恢复

      4、中断现场 POP ES POPA IRET ; 中断返回 ISRx ENDPOSMboxAccept( )Void *OSMboxAccept(OS_EVENT *pevent);所属文件调用者开关量OS_MBOX.C任务或中断OS_MBOX_ENOSMboxAccept()函数查看指定的消息邮箱是否有需要的消息。不同于OSMboxPend()函数,如果没有需要的消息,OSMboxAccept()函数并不挂起任务。如果消息已经到达,该消息被传递到用户任务并且从消息邮箱中清除。通常中断调用该函数,因为中断不允许挂起等待消息。参数pevent 是指向需要查看的消息邮箱的指针。当建立消息邮箱时,该指针返回到用户程序。(参考OSMboxCreate()函数)。返回值如果消息已经到达,返回指向该消息的指针;如果消息邮箱没有消息,返回空指针。注意/警告必须先建立消息邮箱,然后使用。范例:OS_EVENT *CommMbox;void Task (void *pdata) void *msg; pdata = pdata; for (;) msg = OSMboxAccept(CommMbox);

      5、/* 检查消息邮箱是否有消息*/ if (msg != (void *)0) . /* 处理消息*/ . else . /*没有消息*/ . . . OSMboxCreate( )OS_EVENT *OSMboxCreate(void *msg);所属文件调用者开关量OS_MBOX.C任务或启动代码OS_MBOX_ENOSMboxCreate()建立并初始化一个消息邮箱。消息邮箱允许任务或中断向其他一个或几个任务发送消息。参数msg 参数用来初始化建立的消息邮箱。如果该指针不为空,建立的消息邮箱将含有消息。返回值指向分配给所建立的消息邮箱的事件控制块的指针。如果没有可用的事件控制块,返回空指针。注意/警告必须先建立消息邮箱,然后使用。范例:OS_EVENT *CommMbox; void main(void) . . OSInit(); /* 初始化C/OS- */ . . CommMbox = OSMboxCreate(void *)0); /* 建立消息邮箱 */ OSStart(); /* 启动多任务内核 */OSMboxPend( )Void *OSMboxPend ( OS_

      6、EVNNT *pevent, INT16U timeout, int8u *err );所属文件调用者开关量OS_MBOX.C任务OS_MBOX_ENOSMboxPend()用于任务等待消息。消息通过中断或另外的任务发送给需要的任务。消息是一个以指针定义的变量,在不同的程序中消息的使用也可能不同。如果调用OSMboxPend()函数时消息邮箱已经存在需要的消息,那么该消息被返回给OSMboxPend()的调用者,消息邮箱中清除该消息。如果调用OSMboxPend()函数时消息邮箱中没有需要的消息,OSMboxPend()函数挂起当前任务直到得到需要的消息或超出定义等待超时的时间。如果同时有多个任务等待同一个消息,C/OS-默认最高优先级的任务取得消息并且任务恢复执行。一个由OSTaskSuspend()函数挂起的任务也可以接受消息,但这个任务将一直保持挂起状态直到通过调用OSTaskResume()函数恢复任务的运行。参数pevent 是指向即将接受消息的消息邮箱的指针。该指针的值在建立该消息邮箱时可以得到。(参考OSMboxCreate()函数)。Timeout 允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的消息时恢复运行。如果该值为零表示任务将持续的等待消息。最大的等待时间为65,535个时钟节拍。这个时间长度并不是非常严格的,可能存在一个时钟节拍的误差,因为只有在一个时钟节拍结束后才会减少定义的等待超时时钟节拍。Err 是指向包含错误码的变量的指针。OSMboxPend()函数返回的错误码可能为下述几种:l OS_NO_ERR :消息被正确的接受。l OS_TIMEOUT :消息没有在指定的周期数内送到。l OS_ERR_PEND_ISR :从中断调用该函数。虽然规定了不允许从中断调用该函数,但C/OS-仍然包含了检测这种情况的功能。l OS_ERR_EVENT_TYPE :pevent 不是指向消息邮箱的指针。返回值OSMboxPend()函数返回接受的消息并将 *err置为OS_NO_ERR。如果没有在指定数目的时钟节拍内接受到需要的消息,OSMboxPend()函数返回空指针并且将 *err设置为OS_TIMEOUT。注意/警告必须先建立消息邮箱,然后使用。不允许从中断调用该函数。范例:OS_EVENT *C

      《UCOS-II-API-参考手册》由会员206****923分享,可在线阅读,更多相关《UCOS-II-API-参考手册》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.