FreeRTOS
专业游手好闲
这个作者很懒,什么都没留下…
展开
-
FreeRTOS 笔记之⑧:任务延时列表的实现
目录1. 任务延时列表的工作原理2. 实现任务延时列表2.1 定义任务延时列表2.2 任务延时列表初始化2.3 定义xNextTaskUnblockTime在本章之前,为了实现任务的阻塞延时,在任务控制块中内置了一个延时变量xTicksToDelay。每当任务需要延时的时候,就初始化xTicksToDelay需要延时的时间,然后将任务挂起,这里的挂起只是将任务在优先级位图表...原创 2019-11-18 17:04:07 · 731 阅读 · 0 评论 -
FreeRTOS 笔记之⑦:多优先级支持
目录1. 如何支持多优先级2. 查找最高优先级的就绪任务2.1 通用方法(普适性)2.2 优化方法(专业性)3. 代码修改之前的章节,FreeRTOS还没有支持多优先级,只支持两个任务互相切换,从本章开始,任务中我们开始加入优先级的功能。在FreeRTOS中,数字优先级越小,逻辑优先级也越小,这与隔壁的RT-Thread和μC/OS刚好相反。1. 如何支持多优先级就...原创 2019-11-14 17:10:59 · 455 阅读 · 0 评论 -
FreeRTOS 笔记之⑥:空闲任务与阻塞延时的实现
目录1. 空闲任务实现2. 实现阻塞延时2.1 vTaskDelay ()函数2.2vTaskSwitchContext()函数2.3 SysTick中断服务函数2.4 SysTick初始化函数之前的章节中,任务体内的延时使用的是软件延时,即还是让CPU空等来达到延时的效果。使用RTOS的很大优势就是榨干CPU的性能,永远不能让它闲着,任务如果需要延时也就不能再让CP...原创 2019-11-14 10:56:22 · 657 阅读 · 1 评论 -
FreeRTOS 笔记之⑤:临界区及应用
目录1. 临界区概述2. Cortex-M内核快速关中断指令3. 关中断4. 开中断5. 进入/退出临界段的宏6. 临界段代码的应用1. 临界区概述临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一...原创 2019-11-12 13:40:56 · 1250 阅读 · 1 评论 -
FreeRTOS 笔记之④:任务的定义与任务的切换
目录1. 任务是什么2. 创建任务2.1 定义任务栈2.2定义任务函数2.3 定义任务控制块2.4 实现任务创建函数2.4.1 xTaskCreateStatic()函数2.4.2 prvInitialiseNewTask()函数2.4.3 pxPortInitialiseStack()函数3. 实现就绪列表3.1 定义就绪列表3.2就绪列表初...原创 2019-11-11 17:21:29 · 1252 阅读 · 0 评论 -
FreeRTOS 笔记之③:数据结构-- 列表和表项(链表和节点)
目录1. C语言链表1.1 单向链表1.2双向链表1.3链表的操作1.4链表与数组的对比2. FreeRTOS中链表的实现2.1 实现链表节点2.2 实现链表根节点2.2.1 根节点数据结构2.2.2 链表根节点的初始化2.2.3 将节点插入到链表的尾部2.2.4 将节点按照升序排列插入到链表2.2.5 将节点从链表删除2.2.6 节点...原创 2019-10-17 17:32:25 · 1596 阅读 · 1 评论 -
FreeRTOS 笔记之②:裸机系统与多任务系统
目录1. 裸机系统1.1 轮询1.2 前后台2. 多任务系统在真正开始动手写FreeRTOS内核之前,我们先来讲解下单片机编程中的裸机系统和多任务系统(不仅限于FreeRTOS)的区别。1. 裸机系统裸机系统通常分成轮询系统和前后台系统1.1 轮询轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情,大概的伪...原创 2019-10-15 16:25:15 · 1308 阅读 · 0 评论 -
FreeRTOS 笔记之①:嵌入式系统简介
目录1. 嵌入式操作系统1.1 定义1.2 嵌入式操作系统分类1.3 嵌入实时操作系统市场2. FreeRTOS 简介2.1 优势2.2 版权2.3 收费问题2.3.1 FreeRTOS2.3.2 OpenRTOS2.3.3 SaveRTOS3. FreeRTOS 获取资料3.1 获取源码3.2 获取书籍3.3 快速入口4. Fre...原创 2019-10-15 15:17:45 · 1476 阅读 · 0 评论