![](https://img-blog.csdnimg.cn/20190901143832453.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
FreeRTOS
码字但很菜
jio。。。
展开
-
FreeRTOS(十三)----内存管理
目录特点范例特点 我们创建任务的时候,会生成一个TCB任务控制块,它需要在内存中占据一个空间,多任务中就会有多个TCB,谁给它们分配好空间?谁负责回收空间?一旦空间不够怎么办? 每当任务,队列或者信号量被创建的时候,内核需要进行动态内存分配。不同的嵌入式系统由不同的内存配置和事件要求,这使得几乎不可能使用单一的的内存分配算法完成,于是FreeRTOS把内存分配放在可...原创 2020-03-07 16:26:37 · 377 阅读 · 0 评论 -
FreeRTOS(十二)----软件定时器、事件组、任务通知
目录软件定时器事件组任务通知软件定时器官方API手册中第5章可查阅。不属于FreeRTOS内核功能,可剪裁。如果开启次功能,它由定时器任务提供服务,这个任务系统会自动创建,然后用户可以创建定时器,需要提供定时器溢出回调函数,得到句柄后就可以使用API操作。事件组官方API手册中第6章可查阅。不属于FreeRTOS的内核功能,可剪裁。如果开启次功能,可以提...原创 2020-03-07 15:56:08 · 450 阅读 · 0 评论 -
FreeRTOS(十一)----信号量
目录二值信号量计数信号量二值信号量 队列的状态不为空即为满,只有两个状态,就称为二值,这非常合适地表达了某个外部事件的状态,就是到达和未到,所以可以直接进行映射,二值信号量为满代表事件到达,二值信号量为空代表事件未到 二值信号量操作API:API 功能 xSemaphoreCreateBinary() 创建二值信号量 xS...原创 2020-03-07 15:31:42 · 363 阅读 · 0 评论 -
FreeRTOS(十)----队列
目录队列简介队列结构体队列操作队列实验 在实际的应用中,常常会遇到一个任务或者中断服务需要和另一个任务进行“沟通交流”,这个“沟通交流”的过程其实就是消息传递的过程。队列是为了任务与任务,任务与中断之间的通信而准备的。可以在任务与任务,任务与中断之间传递消息,队列中可以在存储有限的,大小固定的数据项目。队列简介FreeRTOS的通信介质是队列,队列是一个先...原创 2020-03-07 14:43:49 · 415 阅读 · 0 评论 -
FreeRTOS(六)----中断配置
FreeRTOSConfig.h前部分是一些CPU、调度算法等配置,后部分是中断配置。在FreeRTOSConfig.h中,能够知道config前缀宏的映射内容,下面是部分的注释:#define configUSE_PREEMPTION 1 //0-协程调度,1-抢占式调度#define conf...原创 2019-08-01 20:08:57 · 499 阅读 · 0 评论 -
FreeRTOS(五)----任务状态
目录任务状态任务的挂起与恢复 任务状态 FreeRTOS中的任务永远处于下面几个状态中的某一个他们之间的转化关系如下: 任务的挂起与恢复 API函数如下:挂起函数:恢复函数:测试内容:一共有4个任务,分别是start,key_task,task1和task2,start优先级最高,其余优...原创 2019-08-01 15:01:23 · 925 阅读 · 0 评论 -
FreeRTOS(四)----任务特性
目录单任务与多任务任务优先级任务控制块任务堆栈任务创建与删除实验(动态方法) 单任务与多任务 单片机裸机编程的时候,都会用一个while(1)去包裹所有应用程序,换言之,裸机编程中的应用程序就运行在一个死循环while(1)中,而且各个应用程序都是排队轮流执行的(中断除外),只要前面的程序没有完成,后面的程序就必须等待。 这种裸机编程非常容易实现,对于顺序...原创 2019-08-01 12:58:15 · 308 阅读 · 0 评论 -
FreeRTOS(三)----配置文件FreeRTOSConfig.h
FreeRTOS内核剪裁配置文件是FreeRTOSConfig.h FreeRTOSConfig.h前部分是一些CPU、调度算法等配置,后部分是中断配置 FreeRTOSConfig.h的中断配置使得FreeRTOS系统可以理会和不理会某些中断1. configUSE_PREEMPTION 为 1 时RTOS使用抢占式调度器,即当进程位于内核空间时,有一个更高优先级的任务出现...原创 2019-08-01 10:51:35 · 1082 阅读 · 0 评论 -
FreeRTOS(二)----移植STM32F407
目录下载移植STM32F407实验(LED闪烁) 下载 点此去官网下载https://sourceforge.net/projects/freertos/files/FreeRTOS/,我选择的是V9.0.0将文件解压后,FreeRTOS的源码就在FreeRTOS\Source目录下。 移植STM32F407 新建一个标准库工程,工程文件中新建F...原创 2019-08-01 10:17:39 · 550 阅读 · 0 评论 -
FreeRTOS(一)----概念简介
目录任务队列中断资源管理内村管理 任务 现有的嵌入式实时操作系统很多,有FreeRTOS、RT-Threads、uC/OS-II等等,大多数都是开源的,但开源不代表免费,对于学习而言,建议uC/OS-II或者FreeRTOS,不过uC/OS-II开源但不免费,而FreeRTOS开源又免费,所以建议初学者选择FreeRTOS进行学习。 嵌入式系统...原创 2019-08-01 09:42:02 · 490 阅读 · 0 评论 -
FreeRTOS(九)----列表和列表项
目录列表和列表项的初始化列表项的插入列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS 中的任务。与列表相关的全部东西都在文件 list.c 和 list.h 中。在 list.h 中定义了一个叫 List_t 的结构体,如下:typedef struct xLIST{ listFIRST_LIST_INTEGRIT...原创 2019-08-04 16:49:36 · 316 阅读 · 0 评论 -
FreeRTOS(八)----调度器的开启与任务切换
目录调度器的开启任务切换调度器的开启01-vTaskStartScheduler()调度器负责给各个任务分配CPU资源,使得多任务并发执行,FreeRTOS提供的vTaskStartScheduler()用于开启调度器,一旦开启,整个系统就交给调度器负责。 开启调度器的主要工作是进行任务创建、中断设置以及运行第一个任...原创 2019-08-04 16:07:49 · 816 阅读 · 0 评论 -
FreeRTOS(七)----时间管理
目录FreeRTOS系统延时函数FreeRTOS系统时钟节拍FreeRTOS 延时函数在 FreeRTOS 中延时函数有相对模式和绝对模式,FreeRTOS 中不同的模式用的函数不同,其中函数 vTaskDelay()是相对模式(相对延时函数), 函数 vTaskDelayUntil()是绝对模式(绝对延时函数)。1.函数 vTaskDelay()在文件 tas...原创 2019-08-04 15:38:15 · 1067 阅读 · 0 评论