SmallRTOS(特定系统)用户函数参考手册.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SmallRTOS(特定系统)用户函数参考手册.doc

OS_INT_ENTER() 名称:OS_INT_ENTER() 所属文件:Os_cpu.h 原型:宏 功能描述:OS_INT_ENTER()通知SMALLRTOS一个中断服务函数正在运行,这样RTOS可以跟踪中断嵌套情况,通常与OSIntExit()联合使用。 编译开关:EN_OS_INT_ENTER 调用者:中断 注意点:用户任务不能调用该函数。其实现与目标系统相关,移植时由用户实现。 ? OSClearSignal() 名称:OSClearSignal() 所属文件:Os_core.h 原型:void OSClearSignal(uint8 TaskID) 功能描述:OSClearSignal()无条件使任务休眠。如果它使当前任务休眠,则还需要调用OSSched(),才会切换到其他任务。 编译开关:无 调用者:内核函数 参数: TaskID 注意点:用户任务不能调用该函数. ? OSIntExit() 名称:OSIntExit() 所属文件:Os_core.h 原型:void OSIntExit(void) 功能描述:OSIntExit()通知RTOS一个中断服务函数已经执行完毕,这样RTOS可以跟踪中断嵌套情况。它通常与OS_INT_ENTER()联合使用。当最后一层嵌套的中断服务函数执行完毕后,如果有更高优先级的任务就绪,则RTOS就会调用任务调度函数。在这种情况下,中断返回到更高优先级的任务,而不是返回中断了的任务 编译开关:无 调用者:中断 调用模块:OSIntCtxSW 注意点:用户任务不能调用该函数,只要是受RTOS管理的中断服务函数,在其退出之前必须调用此函数 ? OSIntSendSignal() 名称:OSIntSendSignal() 所属文件:Os_q.h 原型:void OSintSendSignal(uint9 TaskId) 功能描述:OSIntSendSignal()无条件指使指定任务就绪。如果指定任务比当前任务优先级高,则在全部中断退出后或调用OSSched()后,开始执行高优先级任务。 编译开关:无 调用者:中断、内核函数 参数:TaskId:任务ID 注意点:用户任务一般不需要调用该函数。 例: void comm(void) interrupt 4 { ??OS_INT_ENTER(); ??if(RI==1) ??{ ????????RI = 0; ????????OSIntSendSignal(RECEIVE_TASK_ID); ???} ??if(TI==1) ???{ ????????TI=0; ????????OSIntSendSignal(1); ???} ??OSIntExit(); } ? OSQAccept() 名称:OSQAccept() 所属文件:Os_q.h 原型:uint8 OSQAccept(uint8 data * Ret, uint8 OS_Q_MEM_SEL *Buf) 功能描述:OSQAccept()函数检查消息队列中是否已经有需要的消息,他不同于OSQPend(),如果没有需要的消息,则OSQAccept()并不使任务休眠。如果任务已经到达,则该消息被传递到用户任务。通常中断调用该函数,因为中断不允许等待。 编译开关:EN_OS_Q_ACCEPT 调用者:用户任务 参数:Ret: 返回消息; ????????Buf:指向队列的指针 返回值:NOT_OK:参数错误 ???????? OS_Q_OK:收到消息 ???????? OS_Q_NOT_OK:无消息 注意点:必须先建立消息队列,然后再使用。 示例: void Task(void) { ????????uint8 data *Ret; ????????while(1) ????????{ ????????????????if(OSQAccept(CommQ) == OS_Q_OK)??//检查消息队列 ????????????????{ ????????????????????????.....//处理接收的消息 ????????????????} ????????????????else {????}//,没有消息 ??????} }????? ? OSQCreate() 名称:OSQCreate() 所属文件:Os_q.c 原型:uint8 OSQCreate(uint8 OS_Q_MEM_SEL *Buf, uint8 SizeOfBuf) 功能描述:OSQCreate()函数建立一个消息队列。任务或中断可以通过消息队列向其它一个或多个任务发送消息,消息是一个uint8整型数 ,在不同应用中有不同含义。 编译开关:无 调用者:用户任务 参数:B

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档