
RTOS
念念有余
这个作者很懒,什么都没留下…
展开
-
ucosii任务三要素---执行代码 堆栈 任务控制块
使用ucosii也有一段时间了,把学习到的总结一下。这篇文章不是对ucosii如何使用的讲解,而是主要看看ucosii内核实现的原理,或者说讲一些RTOS种通用的知识。对于RTOS基础知识的讲解,暂时就不表述了。RTOS中一个任务的三要素:程序代码、堆栈、任务控制块。程序代码就是任务的执行函数。这没啥好说的每个任务都有自己的堆栈,来保存自身的信息。这是每个任务自己的资源。是每个人自己的一亩三分地。...原创 2018-02-27 21:07:49 · 5763 阅读 · 4 评论 -
ucosii在CM3内核中的移植
本篇文章基于STM32f107芯片进行移植,使用相同内核cortex-m3的都可参考移植要做的就是和cpu相关的代码,cpu上层的代码都是固定的。ucosii中与cpu相关的代码在那里呢?移植相关的文件就是上述三个文件。1、头文件os_cpu.h,主要功能:(1)声明数据类型,增强代码的移植行typedef unsigned char BOOLEAN;typedef unsigned char...原创 2018-02-28 14:24:56 · 1019 阅读 · 0 评论 -
ucosii的任务调度算法
在ucosii任务三要素和ucosii在CM3中的移植学习中,对于ucosii的任务的基本要素,任务切换的基本流程已经有了认识。任务切换中有一部分是找到当前就绪任务中优先级最高的,今天我们就来看看是如何找到要切换的任务的。在ucosii任务三要素提到一个指针数组OSTCBPrioTbl,这个指针数组中放的是每一个任务控制块(TCB)的地址,并且是以任务的优先级来进行索引的,所以,只要知道了下一个任...原创 2018-03-01 14:52:23 · 2471 阅读 · 0 评论 -
ucosii任务间的同步与通信
ucosii任务间的同步和通信都可以通过“事件”的方式来搞定,这个事件包括:信号量、互斥量、邮箱和消息队列其中信号量和互斥量用于同步,邮箱和消息队列可用于通信。任务中有任务控制块,同样,在“事件”中有事件控制块ECBtypedef struct os_event { INT8U OSEventType; /* Type of event cont...原创 2018-03-01 20:17:41 · 4051 阅读 · 1 评论