G
N
I
D
A
O
L

随笔分类 -  【嵌入式】uC/OS-III学习笔记

摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 15、16 和 21 章。 从本文开始,是 uCOS 的 API 应用。 1 任务状态 在 uCOS 中,任务状态分为以下几种,任务就是在这几种状态中来回变化的: 就绪(OS_TASK_STATE_RDY):该任务 阅读全文
posted @ 2022-02-15 11:53 漫舞八月(Mount256) 阅读(521) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 14 章。 0 时间片轮转调度的意义 我们现在实现的 uCOS 内核,包含了就绪列表和时基列表。就绪列表的插入规则与优先级有关,而时基列表的插入规则与时基计数器和延时时间有关。上一篇文章中,已经实现了时基列表的任务 阅读全文
posted @ 2022-02-14 22:33 漫舞八月(Mount256) 阅读(904) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 13 章。 1 数据类型定义和宏定义 1.1 时基列表相关宏定义和全局变量(os_cfg_app.h/c & os.h) 在 os_cfg_app.h 中,宏定义时基列表的大小,其推荐值为任务数/4,推荐使用质数, 阅读全文
posted @ 2022-02-13 11:50 漫舞八月(Mount256) 阅读(564) 评论(0) 推荐(1)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 12 章。 本篇内容主要是对过往函数的一些修改,因此,一些细节将不会赘述。 0 数据类型定义和宏定义 0.1 临界段宏定义(os.h) #define OS_CRITICAL_ENTER() CPU_CRITICA 阅读全文
posted @ 2022-02-12 20:45 漫舞八月(Mount256) 阅读(273) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 11 章。 1 就绪列表和任务控制块的定义(os.h) 1.1 任务控制块链表 OS_TCB 在定义就绪列表之前,先修改一下 TCB 的内容。 TCB 是一条双向链表,每个节点都包含以下内容: 任务栈指针 StkP 阅读全文
posted @ 2022-02-11 12:28 漫舞八月(Mount256) 阅读(256) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 11 章。 1 优先级表的定义 OSPrioTbl(os_prio.c) 在文件 os_prio.c 中定义优先级表,它是一个数组: CPU_DATA OSPrioTbl[OS_PRIO_TBL_SIZE]; /* 阅读全文
posted @ 2022-02-08 16:29 漫舞八月(Mount256) 阅读(508) 评论(1) 推荐(2)
摘要:喜气洋洋过虎年!祝各位明年会有更大的进步! 参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 10 章。 1 临界段 临界段,又叫做临界区。对于多线程而言,它是一段不可分割、不可上下文切换的代码。对于 uCOS 而言,它是一段不可被中断的代码。临界段是不能被中断的 阅读全文
posted @ 2022-02-01 20:34 漫舞八月(Mount256) 阅读(300) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 9 章。 1 时间戳 在 uCOS 中,如果要测量一段代码 A 的时间,那么可以在代码段 A 运行前记录一个时间点 TimeStart,在代码段 A 运行完记录一个时间点 TimeEnd,那么代码段 A 的运行时间 阅读全文
posted @ 2022-01-31 12:12 漫舞八月(Mount256) 阅读(1021) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 8 章。 1. 空闲任务 不知道有没有注意到这样一个问题:我在学习 x86 汇编语言的时候,曾详细研读过系统内核的代码,内核本身也是有自己的 TCB 的,内核可作为一个“任务管理器”来对其他任务进行创建、删除等操作 阅读全文
posted @ 2022-01-28 11:31 漫舞八月(Mount256) 阅读(564) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 7 章。 这章的内容是:每隔一定的时间间隔,就会进行一次任务切换,使每个任务都能均等享有 CPU 控制权,这种不停地上下文切换的过程,有点像多进程。同是任务切换,与第一篇笔记不同的是:第一篇笔记是任务自己主动切换, 阅读全文
posted @ 2022-01-22 19:06 漫舞八月(Mount256) 阅读(385) 评论(0) 推荐(0)
摘要:参考内容:《[野火]uCOS-III内核实现与应用开发实战指南——基于STM32》第 6 章。 前排提醒 每一节标题最后的括号是表明该数据类型或函数位于哪个文件中。 按照 μC/OS-III 中的函数命名规则,以大小的 OS 开头,表示这是一个外部函数,可以由用户调用,以 OS_ 开头的函数表示内部 阅读全文
posted @ 2022-01-19 20:41 漫舞八月(Mount256) 阅读(1393) 评论(0) 推荐(0)