FreeRTOS 学习
文章平均质量分 95
记录 FreeRTOS 学习
orientlu
学习与创造,提升进步,探索求知
展开
-
FreeRTOS 内存 Heap 管理
@(嵌入式) FreeRtos FreeRtos 提供的几种 heap 管理在源码目录 Source/Portable/MemMang 下,选择哪种类型管理直接在编译时把原文件加入(比如在 makefile SRC中加入)即可, 堆大小是 FreeRTOSConfig.h 中的常量 configTOTAL_HEAP_SIZE,默认是17*1024,即17KB。FreeRtos 内存管理提供的主要接原创 2016-09-30 23:59:43 · 9567 阅读 · 0 评论 -
FreeRTOS 任务调度 List 组织
@(嵌入式) FreeRtos 简述前面了解了 FreeRTOS 的内存管理,接下来看看任务调度,这也是一个操作系统中最重要的一部分,而其任务调度大量使用了链表(list.c 实现),调度器使用链表跟踪不同状态下的任务(就绪、挂起、延时的任务,都会被挂接到各自的链表中),所以这里用一定篇幅介绍下主要供调度使用的链表文件是如何组织的。我目前使用的源码版本是 v9.0.0数据结构FreeRTOS 链表原创 2016-10-03 14:01:53 · 3441 阅读 · 0 评论 -
FreeRTOS 任务调度 任务创建
@(嵌入式)简述任务状态使用示例数据结构TCB链表任务创建静态创建任务动态创建任务初始化任务控制块栈初始化举例插入就绪链表参考 FreeRtos 简述FreeRTOS 的任务调度在 Source/include/task.c 中实现,包含了任务的创建、切换、挂起、延时和删除等所有功能。涉及到的链表组织见文章 任务状态系统运行过程,任务可能处于以下各种状态,各个状态之间切换原创 2016-10-13 00:30:16 · 5115 阅读 · 0 评论 -
FreeRTOS 任务调度 任务切换
@(嵌入式)简述启动调度器移植层调度器启动第一个任务任务切换参考 FreeRtos 简述前面文章 < FreeRTOS 任务调度 任务创建 > 介绍了 FreeRTOS 中如何创建任务以及其具体实现。 一般来说, 我们会在程序开始先创建若干个任务, 而此时任务调度器还没又开始运行,因此每一次任务创建后都会依据其优先级插入到就绪链表,同时保证全局变量 pxCurrentTCB 指向当原创 2016-10-15 17:07:34 · 21436 阅读 · 2 评论 -
FreeRTOS 任务调度 系统节拍
@(嵌入式)简述xTaskIncrementTick节拍计数器溢出唤醒超时任务任务时间片轮循完整函数系统延时函数普通延时函数 vTaskDelay循环延时函数 vTaskDelayUntil FreeRtos 简述文章 < FreeRTOS 任务调度 任务切换 > 记录了 FreeRTOS 中任务切换的过程, 提到触发任务切换的两种情况 : 高优先级任务就绪抢占和同优先级任原创 2016-10-18 20:31:22 · 5229 阅读 · 1 评论 -
FreeRTOS 软定时器实现
@(嵌入式)简述使用定时器配置定时器服务任务创建 启动 停止定时器修改定时器获取定时器状态定时器实现数据结构定时器控制块定时器管理链表命令队列定时器服务任务回调定时器处理节拍计数器溢出命令处理参考 FreeRtos 简述考虑平台硬件定时器个数限制的, FreeRTOS 通过一个 Daemon 任务(启动调度器时自动创建)管理软定时器, 满足用户定时需求. Daemo原创 2016-10-20 16:29:39 · 31751 阅读 · 3 评论 -
FreeRTOS 消息队列
@(嵌入式)简述Queue 使用创建一个消息队列发送消息 接受消息Queue 实现数据结构队列创建发送消息任务中调用发送函数中断中调用发送函数接收消息参考 FreeRtos 简述FreeRTOS 任务间通信方式有 * 消息通知 Notifications(V8.20版本开始支持) * 消息队列 Queues * 二进制信号量 Binary Semaphores *原创 2016-10-26 20:08:58 · 20954 阅读 · 0 评论 -
FreeRTOS 信号量
@(嵌入式)简述二进制信号量二进制信号量使用二进制信号量实现创建信号量获取信号量释放信号量中断中释放任务中释放计数信号量互斥锁创建互斥信号量拿锁放锁递归互斥锁获取递归信号量释放递归信号量参考 FreeRtos 简述FreeRTOS 信号量和互斥锁是基于队列实现的, 队列介绍见 << FreeRTOS 消息队列 >>。 使用信号量需要在源文件中包含头文件 s原创 2016-10-27 17:17:09 · 8500 阅读 · 1 评论 -
FreeRTOS 任务通知
@(嵌入式)简述通知 API数据结构轻量级二进制信号量获取信号量释放信号量轻量级计数信号量轻量级事件标记组轻量级消息邮箱参考 FreeRtos 简述FreeRTOS 从版本 V8.2.0开始提供任务通知这个功能,每个任务都有一个32位的通知值。按照 FreeRTOS 官方的说法,使用消息通知相比二进制型号量方式解除阻塞任务快 45%, 并且更加省内存(无需创建队列)。Fre原创 2016-10-30 01:32:28 · 3584 阅读 · 0 评论