UCOSIII
NameisBoy
道阻且长,行则将至。
展开
-
UCOSIII内存管理
前言所谓内存管理其实不过就是可以对内存进行动态分配、回收的方法,使得内存的使用效率更高,避免出现内存碎片化等问题。我们在编写C语言程序时,一般都是用malloc和free函数来分配释放内存,因为我们编写的程序是在电脑上运行的,一般都不用考虑内存碎片化和内存不够等问题。但是我们在内存较小的单片机上遇到指针等需要动态分配内存的情况时,合理高效的使用珍贵的内存资源就显得尤为重要,因此需要进行内存管理...原创 2020-02-12 16:50:06 · 951 阅读 · 0 评论 -
UCOSIII等待多个内核对象
UCOSIII中存在很多进行任务同步、交流的方法,例如使用信号量、互斥信号量、消息队列、事件标志组,一般都是单独使用它们进行任务同步,UCOSIII同时等待多个内核对象就是实现多对一的任务同步方法。我的理解:现在需要进行任务同步,任务A、任务B可以发布不同的内核对象信号量SemA、SemB,假设任务C是需要同步的,同步的意思就是当某些事件发生时才进行接下来的动作。在任务C中调用OSPendMu...原创 2020-02-10 20:25:02 · 217 阅读 · 0 评论 -
UCOSIII事件标志组
UCOSIII事件标志组事件标志组是进行任务同步的另外一种方法,事件标志组可以解决一个任务与多个事件的同步。或同步、与同步按照“与”和“或”的逻辑,当任何一个事件发生都会进行任务同步的机制叫做“或”同步,当所有时间发生才会同步的机制叫做“与”同步。API函数UCOSIII中的事件标志组为:OS_FLAG_GRP,定义在os.h中:typedef struct os_flag_grp...原创 2020-02-09 21:18:17 · 436 阅读 · 0 评论 -
UCOSIII消息队列
UCOSIII消息队列消息队列用于任务间通信,即传递消息。消息队列API1、创建信息队列OSQCreate2、等待消息队列OSQPend如果消息队列中没有消息,3、发布消息到消息队列OSQPostp_q: 要发布的消息队列p_void: 实际发送的内容msg_size: 发送消息的大小,单位为字节BYTEopt: 选项可以为以下值:p_err: 保存错误码 - ...原创 2020-02-08 20:22:42 · 309 阅读 · 0 评论