FreeRTOS学习笔记(12)— FreeRTOS 调度器启动过程分析

FreeRTOS 调度器启动过程分析

调度器是 FreeRTOS 操作系统的核心,主要负责任务切换,即找出最高优先级的就绪任务,并使之获得 CPU 运行权。调度器并非自动运行的,需要人为启动它。

使用 FreeRTOS,一个最基本的程序架构如下所示:

一、任务调度器开启函数

API 函数 用于启动调度器,它会创建一个空闲任务、初始化一些静态变量,最主要的,它会初始化系统节拍定时器并设置好相应的中断,然后启动第一个任务
过程分析:
(1)创建空闲任务,使用最低优先级
(2)使能软件定时器,并创建定时器任务(可选)
(3)关闭中断,确保节拍定时器中断不会在调用时或之前发生.当第一个任务启动时,会重新启动中断
(4)表示调度器已开启
(5)调用函数 来启动系统节拍定时器并启动第一个任务(硬件相关)

二、相关硬件初始化函数分析

(1)将PendSV和SysTick中断设置为最低优先级

(2)启动系统节拍定时器,即SysTick定时器,初始化中断周期并使能定时器
(3)启动第一个任务

三、启动第一个任务

汇编指令 svc 0 触发 SVC 中断,完成启动第一个任务的工作

四、SVC中断函数

在SVC中断函数中正式开启第一个任务

参考文献:https://blog.csdn.net/qq_27114397/article/details/83017422

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月12日
下一篇 2020年6月12日

相关推荐