博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UCOSIII-常用API
阅读量:5086 次
发布时间:2019-06-13

本文共 1398 字,大约阅读时间需要 4 分钟。

代码临界区

CPU_SR_ALLOC()

OS_CRITICAL_ENTER()
OS_CRITICAL_EXIT()

延时

OSTimeDly()

OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err)
OSTimeDlyResume()

 

钩子函数

void App_OS_IdleTaskHook (void)

在空闲任务的钩子函数 OSIdleTaskHook()中不能出现可以让空闲任务进入等待态的代码!

 

创建删除函数

OSTaskCreate()

OSTaskDel((OS_TCB*)&Task2_TaskTCB,&err)

 

挂起恢复任务

OSTaskSuspend()

OSTaskResume()

 

时间片轮转调度

OSSchedRoundRobinCfg(DEF_ENABLED,1,&err) 时间片轮转调度初始化

void OSSchedRoundRobinYield (OS_ERR *p_err) 放弃时间片

 

中断函数

OSIntEnter() 进入中断时放在最前面

OSIntExit() 放在中断函数最下面,用于退出中断时做一次任务切换

 

定时器

OSTmrCreate()

OSTmrStart()
OSTmrStop()
在定时器的回调函数里面一定要注意避免使用任何可以阻塞或者删除掉定时器任务的函数!

 

信号量

OSSemCreate() 创建一个信号量

OSSemDel() 删除一个信号量
OSSemPend() 等待一个信号量
OSSemPost() 释放一个信号量
OSSemPendAbort() 取消等待
OSSemSet() 强制设置一个信号量的值

 

互斥信号量(解决优先级反转)

OSMutexCreate() 创建一个互斥信号量

OSMutexDel() 删除一个互斥型信号量
OSMutexPend() 等待一个互斥型信号量
OSMutexPost() 释放一个互斥型信号量
OSMutexPendAbort() 取消等待
只有任务才能使用互斥信号量(中断服务程序则不可以)

 

任务内建信号量

OSTaskSemPend() 等待任务信号量

OSTaskSemPost() 发布任务信号量
OSTaskSemPendAbort() 取消等待任务信号量
OSTaskSemSet() 强行设置任务信号量计数

 

消息队列

OSQCreate() 创建一个消息队列

OSQDel() 删除一个消息队列
OSQFlush() 清空一个消息队列
OSQPend() 等待消息队列
OSQPendAbort() 取消等待消息队列
OSQPost() 向消息队列发送一条消息
中断服务程序只能使用 OSQPost()函数!

 

内建消息队列

OSTaskQPend() 等待消息

OSTaskQPost() 向任务发送一条消息
OSTaskQPendAbort() 取消等待消息
OSTaskQFlush() 清空任务的消息队列
ISR只能OSTaskQPost()!

 

同时请求多个内建对象

UCOSIII 中只支持同时等待多个信号量和消息队列, 不支持同时等待多个事件标志组和互斥信号量

OSPendMulti()

转载于:https://www.cnblogs.com/guozhikai/p/6035813.html

你可能感兴趣的文章
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>