RTOS
JawSoW
雄关漫道真如铁,而今迈步从头越。
展开
-
FreeRTOS tickless低功耗 内部函数处理详解
低功耗模式1. 芯片原本就支持的硬件低功耗2. freeRTOS提供的软件低功耗,Tickless模式!当用户将宏定义configUSE_TICKLESS_IDLE配置为 1 且系统运行满足以下两个条件时,系统内核会自动的调用,低功耗宏定义函数portSUPPRESS_TICKS_AND_SLEEP():-------------------------------##当前空闲任务正在运行,所有其它的任务处在挂起状态或者阻塞状态。## 根据用户配置configEXPE...转载 2020-12-15 14:01:27 · 964 阅读 · 0 评论 -
FreeRTOS 低功耗 tickless 详解
本章节为大家讲解 FreeRTOS 本身支持的低功耗模式 tickless 实现方法,tickless 低功耗机制是当前小型 RTOS 所采用的通用低功耗方法,比如 embOS,RTX 和 uCOS-III(类似方法)都有这种机制。tickless 低功耗模式介绍tickless 低功耗机制是当前小型 RTOS 所采用的通用低功耗方法,比如 embOS,RTX 和 uCOS-III (类似方法)都有这种机制。FreeRTOS 的低功耗也是采用的这种方式,那么 tickless 又是怎样一种模式呢?原创 2020-12-14 13:56:20 · 2348 阅读 · 0 评论 -
FreeRTOS-任务管理详解
1、任务管理任务或者说进程是一个操作系统的基本概念,该书并没有去说明什么是任务,而是从应用的角度去介绍怎么在FreeRTOS中去创建一个任务并管理它。1.1 任务函数FreeRTOS中的任务是以一个函数的形式存在的,具有统一的函数原型,如下: void TaskFunction(void *pvParameters);其必须返回void且带有一个void指针参数,任务函数体内通常有一个死循环,决不能有一条return语句,也不能执行到函数尾部,如果某个任务不再需要,可以...原创 2020-12-09 16:39:26 · 953 阅读 · 0 评论 -
FreeRTOS---使用指南
FreeRTOS操作系统最全面使用指南1FreeRTOS操作系统功能作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时..转载 2020-08-04 17:20:39 · 961 阅读 · 0 评论 -
FreeRTOS学习笔记——创建任务
主机环境:Windows开发环境:MDK4.7.2FreeRTOS版本:FreeRTOS8.1.2目标环境:STM32F030C8T6FreeRTOS中一个很重要的结构就是TCB任务控制块了,来实现对任务的管理,TCB的结构定义在tasks.c文件中 typedef struct tskTaskControlBlock { volatile StackType_t *pxTopOfStack; #if ( portUSING_MPU...转载 2020-08-04 17:16:58 · 611 阅读 · 0 评论 -
FreeRTOS内存管理分析
内存管理对应用程序和操作系统来说都非常重要。现在很多的程序漏洞和运行崩溃都和内存分配使用错误有关。 FreeRTOS操作系统将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。这样做大有好处,可以增加系统的灵活性:不同的应用场合可以使用不同的内存分配实现,选择对自己更有利的内存管理策略。比如对于安全型的嵌入式系统,通常不允许动态...转载 2018-05-14 11:09:59 · 786 阅读 · 0 评论 -
FreeRTOS操作系统介绍
摘自:http://xilinx.eetrend.com/article/7828 http://xilinx.eetrend.com/article/7819 FreeRTOS(读作"free-arr-toss")是一个嵌入式系统使用的开源实时操作系统。FreeRTOS被设计为“小巧,简单,和易用”,能支持许多不同硬件架构以及交叉编译器。 FreeRTOS自2002年...转载 2018-05-03 11:29:48 · 1319 阅读 · 0 评论 -
FreeRTOS 动态内存管理
以下转载自安富莱电子: http://forum.armfly.com/forum.php本章节为大家讲解 FreeRTOS 动态内存管理,动态内存管理是 FreeRTOS 非常重要的一项功能,前面章节讲解的任务创建、 信号量、 消息队列、 事件标志组、 互斥信号量、 软件定时器组等需要的 RAM 空间都是通过动态内存管理从 FreeRTOSConfig.h 文件定义的 heap 空间中申请的。 ...转载 2018-05-03 11:05:39 · 763 阅读 · 0 评论 -
FreeRTOS 任务栈大小确定及其溢出检测
以下转载自安富莱电子: http://forum.armfly.com/forum.phpFreeRTOS 的任务栈设置不管是裸机编程还是 RTOS 编程,栈的分配大小都非常重要。 局部变量,函数调用时的现场保护和返回地址,函数的形参,进入中断函数前和中断嵌套等都需要栈空间,栈空间定义小了会造成系统崩溃。裸机的情况下,用户可以在这里配置栈大小: 为什么是堆中的?因为我们采用的就是动态创建任务的方式...转载 2018-05-03 10:33:25 · 3255 阅读 · 0 评论 -
FreeRTOS学习之:临界段和开关中断
章教程为大家讲解两个重要的概念,FreeRTOS的临界段和开关中断。本章教程配套的例子含Cortex-M3内核的STM32F103和Cortex-M4内核的STM32F407以及F429。15.1 临界段15.2 任务代码临界段处理15.3 中断服务程序临界段处理15.4 开关中断的实现15.5 BSP板级支持包中开关中断的特别处理15.6. 实验例程说明15.7 总结 15.1 ...转载 2018-03-06 20:08:16 · 1639 阅读 · 0 评论 -
FreeRTOS学习之:任务切换解析
说明:嵌入式系统FreeRTOS任务切换牵涉到具体硬件体系结构的支持,(堆栈类型,寄存器种类,工作模式等不同)下面根据CortexM3内核---STM32处理器---进行介绍:一:启动第一个任务,二:portYIELD_WITHIN_API(任务切换)包括 创建任务, 一:内核刚刚启动时候,第一个任务是怎样跑起来的。1.1:主函数:main(){转载 2018-02-02 14:06:00 · 1653 阅读 · 0 评论 -
FreeRTOS-Queue.c 队列,信号量用于任务间通讯
队列二进制信号灯计数信号灯互斥递归互斥, 以及更多--------------------------------------------------------------------------------队列队列是内部通信的主要形式。它可以用于在任务和任务之间以及任务和中断之间发送消息。在大多数情况下使用线程安全 FIFO(先进先出)缓存,原创 2018-02-01 10:38:43 · 804 阅读 · 0 评论 -
RTOS学习之:消息队列
本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息队列在实际项目中应用较多。 消息队列的概念及其作用消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息(注意,FreeRTOS消息队列传递的是实际数据,并不是数据地址,RTX,uCOS-II 和 uCOS-III 是传递的地址)放入到队列。同样,一个或者转载 2017-10-20 11:26:52 · 2738 阅读 · 2 评论 -
RTOS学习之:多任务编程要点
一. 分析阶段1. 需求分析,予以文档描述;2. 一些初始化问题,探究需求分析中的关键点;3. 解决时序问题,系统中算法的分析;4. 决定使用RTOS,依赖于时间响应和任务数量;5. 划分任务,确定系统所需的任务和模块;6. 系统间通信,消息机制是最优的方法之一;7. 共享数据处理,创建独立的模块;8. 结论,绘制系统设计图。二. 编码实转载 2017-10-18 18:03:38 · 1360 阅读 · 1 评论 -
FreeRTOS学习之:系统延时
FreeRTOS提供了两个系统延时函数:相对延时函数vTaskDelay()和绝对延时函数vTaskDelayUntil()。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;绝对延时是指每隔指定的时间,执行一次调用vTaskDelayUntil()函数的任务。换句话说:任务以固定的频率执行。在《FreeRTOS系列第11篇---FreeRTOS任务控制》转载 2017-09-27 15:51:11 · 1412 阅读 · 0 评论 -
FreeRTOS之任务创建删除
tskTCB结构的定义这里就不再给出来了,需要注意的是其中uxBasePriority元素,它用于解决优先级反转,freertos采用优先级继承的办法解决这个问题,在继承时,将任务原先的优先级保存在这个成员中,将来再从这里恢复任务的优先级。 两个延时链表的正解:freertos弄出两个延时链表是因为它的延时任务管理的需要。freertos根据任务延时时间的长短按序将任务插入这两个链原创 2017-08-25 20:55:35 · 1858 阅读 · 0 评论 -
FreeRTOS 信号量
FreeRtos简述FreeRTOS 信号量和互斥锁是基于队列实现的, 队列介绍见 FreeRTOS 消息队列 >>。 使用信号量需要在源文件中包含头文件 semphr.h , 该文件定义了信号量的 API, 实际我们使用的信号量 API 都是宏定义, 宏的实际是队列提供的函数。FreeRTOS 信号量包括二进制信号量、计数信号量、互斥锁和递归互斥锁。 这篇文章介绍如何使用原创 2017-08-28 16:51:13 · 2095 阅读 · 0 评论