FreeRTOS
文章平均质量分 50
每天阅读200行源码
小空心菜
种一棵树最好的时间是十年前,其次是现在!
展开
-
第4篇 FreeRTOS是如何工作的---基本原理5(实时调度)
实时调度Real Time Scheduling下面的图展示了实时操作系统是如何调度上页定义的任务。RTOS自己创建了一个任务-空闲任务-在没有其他任务处于就绪态的时候,空闲任务才会执行。空闲任务总是处于就绪态。参考上面的图:开始我们两个任务都没有处于就绪态-vControlTask在等待一个定时事件开开始一个控制周期,vKeyHandler任务在等待一个按键按下事件。处理器时间交...原创 2019-11-13 17:23:04 · 436 阅读 · 0 评论 -
第4篇 FreeRTOS是如何工作的---基本原理3(上下文切换)
上下文切换Context Switching任务执行时,它使用处理器/微控制器的寄存器并访问RAM和ROM,就像任何其他程序一样。这些资源(处理器寄存器、堆栈等)组成了任务执行上下文。任务是一段连续的代码,它不知道何时会被内核挂起或恢复,甚至不知道何时发生过切换。考虑一种情况,一个任务在挂起之前正在执行一个处理器寄存器中两个数的加法。这时任务被挂起,其他任务执行,并可能会修改处理器寄存...原创 2019-11-13 16:33:31 · 943 阅读 · 0 评论 -
第4篇 FreeRTOS是如何工作的---基本原理2(线程调度)
Scheduling调度器是内核的一部分,负责决定在给定的时间运行哪个任务。在任务生命周期内,内核可以挂起、恢复任务多次。调度策略是调度程序用来决定在任何时间点执行哪个任务的算法。(非实时)多用户系统的策略很可能允许每个任务占用一定比例的处理器时间。稍后将介绍实时/嵌入式系统中使用的策略。除了被内核强制挂起,任务可以选择挂起自己。如果一个任务要延时一个固定周期,或者等待一个资源或事件可...原创 2019-11-13 15:22:02 · 1241 阅读 · 0 评论 -
第4篇 FreeRTOS是如何工作的---基本原理1(多任务处理)
Multitasking内核是核似乎允操作系统中的核心组件。像Linux这样的操作系统使用的内核似乎允许用户同时访问计算机。多个用户可以同时执行多个程序。操作系统控制下的每一个执行的程序叫做一个任务。如果一个操作系统可以以这种方式执行多个任务,就叫做多任务系统。多任务操作系统的使用可以简化复杂软件应用程序的设计:操作系统的多任务和任务间的通信特色,可以把复杂的应用分解成一系列小的和...原创 2019-11-13 15:07:56 · 916 阅读 · 0 评论 -
第3篇 关于任务4-------空闲任务和空闲钩子
空闲任务RTOS调度器启动的时候,空闲任务自动创建,以确保任何时候至少有一个任务可运行。空闲任务创建在最低优先级,以确保有处于就绪态的高优先级任务时,空闲任务不占用CPU时间。空闲任务负责回收RTOS分配给已删除任务的内存。因此在使用vTaskDelete()函数的的应用中,确保空闲任务不能被饿死很重要。其他条件下,空闲任务没有有效的功能,可以合理的被饿死。应用程序任务可以与空闲任务共...原创 2019-11-15 15:00:57 · 264 阅读 · 0 评论 -
第3篇 关于任务2-------任务优先级
每个任务会分配一个从0到(configMAX_PRIORITIES-1)的优先级,configMAX_PRIORITIES在FreeRTOSConfig.h中定义。If the port in use implements a port optimised task selection mechanism that uses a ‘count leading zeros’ type instr...原创 2019-11-15 09:03:10 · 295 阅读 · 1 评论 -
第3篇 关于任务1-----任务运行状态
任务可以处于以下运行状态之一。运行态(Running)当一个任务实际执行时,它就处于运行态。它目前正在使用处理器。如果RTOS运行的处理器只有一个内核,那么在任何给定的时间内只能有一个任务处于运行态。就绪态(Ready)就绪任务是指能够执行,但是还没有执行的任务(不是阻塞态或挂起态),因为有一个优先级相同或更高的任务正在运行。阻塞态(blocked)如果任务正在等待一个临时...原创 2019-11-13 11:46:57 · 725 阅读 · 0 评论