
Free RTOS
小小鸟飞呀飞
从事蓝牙开发工作
展开
-
FreeRTOS学习笔记五【任务管理-下】
FreeRTOS学习笔记五【任务管理-下】空闲任务与空闲任务hook空闲任务空闲任务hook改变任务优先级删除任务空闲任务与空闲任务hook空闲任务在FreeRTOS学习笔记四【任务管理-中】描述了当所有用户任务处于非运行态时,调度程序将调用空闲任务。在内核中必须有一个但也只能有一个任务进入运行状态,为了确保这种情况,在调用vTaskStartScheduler()时,调度程序会自动创建一个...原创 2019-01-17 10:23:25 · 936 阅读 · 0 评论 -
FreeRTOS学习笔记四【任务管理-中】
Free RTOS学习笔记四【任务管理-中】任务优先级时间测量和嘀嗒中断任务状态(补充)非运行态的子状态各个状态的转换图示例vTaskDelay函数vTaskDelayUntil函数任务优先级在Free RTOS学习笔记三【任务管理-上】一文中介绍了xTaskCreate()函数的各个参数,其中参数uxPriority指定创建任务的初始优先级。在创建完成后可以通过vTaskPriorityS...原创 2019-01-16 19:58:54 · 1985 阅读 · 0 评论 -
FreeRTOS学习笔记十一【中断管理-下】
FreeRTOS学习笔记十一【中断管理-下】计数信号量介绍xSemaphoreCreateCounting()示例将工作推迟到RTOS守护程序任务介绍xTimerPendFunctionCallFromISR()示例在ISR中使用队列及其注意事项中断嵌套计数信号量介绍与二值信号量类似,计数信号量可以看作是长度大于1的队列,任务只关心队列中的项数,而不关心队列中的数据。要使用计数信号量需将Fr...原创 2019-01-22 15:39:22 · 3628 阅读 · 3 评论 -
FreeRTOS学习笔记三【任务管理-上】
Free RTOS学习笔记三【任务管理-上】目的任务函数任务状态(简化)创建任务API函数任务创建创建任务时传递参数参考目的接下来的任务管理的几篇文章的主要目的是:FreeRTOS如何为应用程序中的每个任务分配处理时间。FreeRTOS如何在给定时间内选择执行哪个任务。每个任务的相对优先级对系统的影响。任务的几种状态。如何实现一个任务。如何创建一个或多个任务实例。如何使用任务参...原创 2019-01-16 16:03:51 · 1069 阅读 · 0 评论 -
FreeRTOS学习笔记十【中断管理-上】
FreeRTOS学习笔记十【中断管理-上】目的中断中使用API中断安全的APIxHigherPriorityTaskWoken参数目的介绍可以在中断服务函数例使用的FreeRTOS API函数。介绍将中断中处理的内容推迟到任务中处理的方法。创建和使用二值信号量和计数信号量。二值信号量和计数信号量的区别。使用队列将数据传入和传出中断服务函数。介绍一些FreeRTOS移植的中断嵌套模型...原创 2019-01-21 20:31:51 · 10010 阅读 · 1 评论 -
FreeRTOS学习笔记二【源码文件介绍及命名规范】
Free RTOS学习笔记二【源码文件介绍及命名规范】源码文件介绍源码中的命名规范两个重要数据类型变量名函数名宏名源码文件介绍Free RTOS源码中包含了内核、内核配置、各个厂家的微处理器的移植、多种内存管理方案、大量的demo。下面从使用的角度介绍源码中的文件。核心共用代码Free RTOS中实现最基本的任务调度功能只需要两个文件,及task.c和list.c,task用于任务的创...原创 2019-01-16 11:14:40 · 1326 阅读 · 0 评论 -
FreeRTOS学习笔记一【简介】
Free RTOS学习笔记一简介为什么使用Free RTOSFree RTOS的特性与FreeRTOS相关的两个RTOS源码与资料获取参考这一篇没有干货,只有FreeRTOS的一些介绍,可以选择性略过。简介FreeRTOS非常适用于微处理器或者小型微处理器的深度嵌入式实时应用,而这类应用包括硬实时应用和软实时应用。软实时即是在设定时间内运行,但未在该时间内运行不会使系统失效的应用,比如,响...原创 2019-01-16 11:14:09 · 1573 阅读 · 0 评论 -
FreeRTOS学习笔记十三【事件组】
FreeRTOS学习笔记十三【事件组】目的简介事件组的特征事件组、事件标志、事件位多个任务访问事件组通过事件组管理事件xEventGroupCreate()xEventGroupSetBits()xEventGroupSetBitsFromISR()xEventGroupWaitBits()示例使用事件组同步任务引入xEventGroupSync()示例目的介绍事件组的实际用途。事件组相对...原创 2019-01-25 09:04:03 · 10203 阅读 · 5 评论 -
FreeRTOS学习笔记九【软件定时器】
FreeRTOS学习笔记九【软件定时器】目的软件定时器的属性与状态定时周期一次性定时器和固定频率定时器软件定时器的状态软件定时器的上下文软件定时器的回调函数RTOS守护程序(定时服务)任务定时器命令队列守护程序任务的调度软件定时器的使用xTimerCreate()xTimerStart()创建与启动定时器的示例xTimerChangePeriod()xTimerReset()定时器IDvTimer...原创 2019-01-19 14:53:14 · 5688 阅读 · 0 评论 -
FreeRTOS学习笔记八【队列-下】
FreeRTOS学习笔记八【队列-下】队列中存放大数据(一个包)或大小可变的数据存放大数据队列中存放大数据(一个包)或大小可变的数据存放大数据如果存储在队列中的数据项很大,则最好将指向数据的指针存放在队列中,这种方法可以有效的节省数据的拷贝时间以及降低创建队列时所需的空间。但使用指针时必须注意一下两点:指针指向的RAM的所有者是明确定义的。通过指针在任务之间共享内存时,必须确保各个任务...原创 2019-01-18 18:18:51 · 3687 阅读 · 0 评论 -
FreeRTOS学习笔记七【队列-上】
FreeRTOS学习笔记七【队列-上】目的队列的特征数据存储多个任务访问出队时阻塞任务入队时阻塞任务多个队列阻塞任务队列的使用xQueueCreate()xQueueSendToBack() 、 xQueueSendToFront()xQueueReceive()uxQueueMessagesWaiting()API的使用示例从多个数据源接收数据目的如何创建队列。队列如何管理它的数据。如...原创 2019-01-18 15:16:38 · 1450 阅读 · 0 评论 -
FreeRTOS学习笔记六【任务管理-调度算法】
FreeRTOS学习笔记五【任务管理-调度算法】任务状态和事件的回顾配置调度算法术语有时间片的优先抢占式调度无时间片的优先抢占式调度协作调度任务状态和事件的回顾运行中的任务处于运行状态(占用CPU时间)。在单核处理器上,在任一时刻只能有一个任务处于运行状态,未运行但又不处于阻塞态或暂停态的任务处于就绪态。处于就绪态的任务可以由调度程序调度进入运行状态,调度器始终选择处于就绪态中优先级最高的任务...原创 2019-01-18 11:03:59 · 3408 阅读 · 4 评论 -
FreeRTOS学习笔记十二【资源管理】
FreeRTOS学习笔记十二【资源管理】目的资源管理的必要性关键部分代码与暂停调度器基本的关键部分代码暂停(或锁定)调度程序vTaskSuspendAll()xTaskResumeAll()互斥锁(和二值信号量)xSemaphoreCreateMutex()优先级反转优先级继承死锁递归互斥锁互斥锁和任务调度关守任务目的何时需要资源管理以及为什么需要资源管理。什么是关键部分代码。什么是互斥...原创 2019-01-23 10:41:34 · 1423 阅读 · 0 评论