freeRTOS
freeRTOS基础知识
CodeDog_wang
学习使我快乐
展开
-
FreeRTOS学习笔记(一):任务的基础知识
FreeRTOS学习笔记(一):任务的基础知识一、多任务系统1.1 前后台系统在学习操作系统之前都是都是裸机开发的,单片机中没有操作系统。裸机开发的特点就是在main函数里进行一个while(1)的大循环,所有的动作都在这个循环里。当有中断来临时,就去执行中断的程序。这种系统称之为前后台系统,中断服务程序为前台,大循环为后台。**前后台系统缺点:**就是实时性差,多个任务之间是轮询的执行的,当一些紧急的任务也必须排队等候。**前后台系统优点:**资源消耗小。1.2 多任务抢占系统多任务系统是原创 2020-06-09 14:28:44 · 810 阅读 · 0 评论 -
#FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂
FreeRTOS学习笔记(二):任务创建/删除,挂起/解挂上篇文章介绍了任务相关的基础知识,本篇文章对FreeRTOS任务的使用,将会介绍任务创建、删除、挂起以及恢复的API。一、任务创建与删除FreeRTOS最基本的任务操作就是任务创建与删除,其API如下表:1.1动态任务创建xTaskCreate()此函数用动态方法创建一个任务,自动分配内存,任务需要RAM来保存于任务相关的状态信息,还需要一定的RAM来作为任务堆栈。新建的任务默认就是就绪态,如果当前没有比他高的优先级任务的话,就会进入运行原创 2020-06-17 14:46:12 · 573 阅读 · 0 评论 -
FreeRTOS笔记(三):任务调度器
FreeRTOS笔记(三):任务调度器调度器是 FreeRTOS 操作系统的核心,主要负责任务切换,即找出最高优先级的就绪任务,并使之获得 CPU 运行权。调度器并非自动运行的,需要人为启动它。使用场景如下:int main(void){ //.... //创建任务 vTaskStartScheduler(); //开启任务调度器}一、任务调度器开启函数创建任务之后,就会调用vTaskStartScheduler()函数开启调度器,具体函数如下:vo原创 2020-06-17 16:55:02 · 1134 阅读 · 0 评论 -
FreeRTOS笔记(四):任务创建/删除,挂起/解挂详解
FreeRTOS笔记(四):任务创建/删除,挂起/解挂详解在第二篇笔记中介绍了任务创建的API,并且简单使用了相关API,本文将详细介绍任务创建的过程。一、任务创建任务创建步骤为:1.创建任务;2.初始化任务;3.任务堆栈初始化;4.任务添加到就绪列表。下面将详细介绍这四个部分。1.1任务创建函数分析任务创建函数为xTaskCreate(),函数的具体实现如下:BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, const原创 2020-06-18 10:09:02 · 989 阅读 · 0 评论 -
FreeRTOS笔记(五):任务切换
FreeRTOS笔记(五):任务切换本章是FreeRTOS系统的核心内容,更是面试求职过程中重要的考点。对于实时操作系统,任务切换决定了任务执行顺序,任务切换也决定了效率的高低。下面将详细介绍任务切换的内容。一、PendSV中断任务切换是依靠PendSV中断(可挂起的系统调用)来实现的,因此PendSV中断对操作系统来说是重点。PendSV中断是可编程中断,触发条件是:将中断控制和状态寄存器ICSR的bit28置为1。与SVC不同,它是不精准的,因此它的挂起状态可在更高优先级中断中处理内设置,而且会原创 2020-06-18 15:29:34 · 1778 阅读 · 0 评论 -
FreeRTOS笔记(六):五种内存管理详解
不同的嵌入式系统对于内存分配和时间要求不同。FreeRTSO将内存分配作为移植层的一部分,这样FreeRTOS使用者就可以设用自己的合适的内存分配方法。当内核需要分配内存时可以调用pvPortMalloc(),释放内存时使用pvPortFree()。FreeRTOS提供了5种内存分配方法,以不同文件的形式存在,分别是heap_1.c、heap_2.c、heap_3.c、heap_4.c、heap_5.c。这5个文件在FreeRTOS源码终,路径为FreRTOS->Source->portta原创 2020-08-23 21:51:04 · 2400 阅读 · 0 评论