![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ucos_ii源码阅读
猪猪传奇
真正的大师,永远怀着一颗学徒的心
展开
-
【 uC/OS II 】uC/OS II 源代码阅读(os_tmr.c)定时器管理
前言这个关于定时器的,我感觉也没啥,核心就是它的轮子罢了,然后核心结构体,如下:typedef struct os_tmr { INT8U OSTmrType; /* Should be set to OS_TMR_TYPE */ OS_TMR_CALLBACK OSTmrCallback; /* Function to call when timer expires原创 2021-05-27 21:57:36 · 481 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_time.c)时间管理
前言这个我也不知道咋说,感觉很简单,但是有一点,就是那个计算ticks的过程,我没看太懂。。/*时间管理(已看)********************************************************************************************************** uC/OS-II*原创 2021-05-27 21:24:47 · 180 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_task.c)任务管理
前言这个任务管理源代码,是整个系统最核心的部分,也是最难的部分,多看几遍吧。其中的核心结构体是:typedef struct os_tcb { OS_STK *OSTCBStkPtr; /* Pointer to current top of stack */#if OS_TASK_CREATE_EXT_EN > 0u void *OSTCBExtPtr;原创 2021-05-27 21:17:17 · 512 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_sem.c)信号量
前言不说了,这个太简单了,没啥可说的,核心结构体还是这个:#if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0u)typedef struct os_event { INT8U OSEventType; /* Type of event control block (see OS_EVENT_TYPE_xxxx) */ void *OSEventPtr;原创 2021-05-27 20:22:43 · 298 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_q.c)消息队列
前言这个消息队列,其实也没啥,都很简单,都是增删改查,核心结构体如下:#if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0u)typedef struct os_event { INT8U OSEventType; /* Type of event control block (see OS_EVENT_TYPE_xxxx) */ void *OSEventPtr;原创 2021-05-27 18:40:49 · 374 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_mutex.c)互斥信号量
前言这个关于互斥信号量的代码,最核心的就是优先级反转。先说一下优先级反转吧。在创建互斥信号量的时候,需要传入反转的优先级,也就是当发生优先级反转的时候,将当前拥有信号量的任务的优先级提升为反转的优先级。优先级反转情景:假设有两个任务A,任务B,任务A的优先级小于任务B。此时A拥有互斥信号量,但是此时B来了,B的优先级高于A,但是因为B也需要互斥信号量,所以按照常理来说,B应该等待信号量,但是这是一个RTOS,本身就是基于优先级抢占的,所以此时为了缩短B的等待时间,需要B任务来主动的将A任务的优先级提原创 2021-05-27 18:18:15 · 370 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_mem.c)内存管理
前言这个文件是关于内存管理的,非常简单,主要是二级指针与一级指针之间的转换。至于核心结构体如下:typedef struct os_mem { /* MEMORY CONTROL BLOCK */ void *OSMemAddr; /* Pointer to beginning of memory partition原创 2021-05-27 17:09:09 · 287 阅读 · 1 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_mbox.c)消息邮箱
前言关于消息邮箱,是一个消息邮箱里面,只能存储一条消息。核心结构体如下:#if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0u)typedef struct os_event { INT8U OSEventType; /* Type of event control block (see OS_EVENT_TYPE_xxxx) */ void *OSEventPtr;原创 2021-05-27 16:58:43 · 376 阅读 · 0 评论 -
【 uC/OS II 】uC/OS II 源代码阅读(os_flag.c)事件标志组
/*事件标志组(已看)********************************************************************************************************** uC/OS-II* The Real-Time Kernel*原创 2021-05-27 16:01:55 · 429 阅读 · 0 评论