文章目录

  • 调度器开启过程分析

调度器开启过程分析

前面的所有例程中我们都是在 main()函数中先创建一个开始任务 start_task,后面紧接着调 用函数 vTaskStartScheduler()。这个函数的功能就是开启任务调度器的,这个函数在文件 tasks.c 中有定义,缩减后的函数代码如下:

(1)、创建空闲任务,如果使用静态内存的话使用函数 xTaskCreateStatic()来创建空闲任务, 优先级为 tskIDLE_PRIORITY,宏 tskIDLE_PRIORITY 为 0,也就是说空闲任务的优先级为最 低。

(2)、如果使用软件定时器的话还需要通过函数 xTimerCreateTimerTask()来创建定时器服务 任务。定时器服务任务的具体创建过程是在函数 xTimerCreateTimerTask()中完成的,这个函数 很简单,大家就 自行查阅一下。

(3)、关闭中断,在 SVC 中断服务函数 vPortSVCHandler()中会打开中断。

(4)、变量 xSchedulerRunning 设置为 pdTRUE,表示调度器开始运行。

(5)、当宏 configGENERATE_RUN_TIME_STATS 为 1 的时候说明使能时间统计功能,此时 需要用户实现宏 portCONFIGURE_TIMER_FOR_RUN_TIME_STATS,此宏用来配置一个定时器 /计数器。

(6)、调用函数 xPortStartScheduler()来初始化跟调度器启动有关的硬件,比如滴答定时器、 FPU 单元和 PendSV 中断等等。

【STM32】FreeRTOS 调度器开启和任务相关函数详解相关推荐

  1. STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)

    写在前面 目前,ST的USB驱动有两套,一套是早期的独立版USB驱动,官方培训文档中称为Legacy library:一套为针对其Cube 系列的驱动,根据芯片不同可能有区别,具体见对应芯片的Cube ...

  2. c语言 recv_sin,C++_C语言中经socket接收数据的相关函数详解,recv()函数: 头文件:#incl - phpStudy...

    C语言中经socket接收数据的相关函数详解 recv()函数:头文件: #include #include 定义函数: int recv(int s, void *buf, int len, uns ...

  3. spring过滤器Filter 、 拦截器Interceptor 、 切片Aspect 详解

    springboot 过滤器Filter vs 拦截器Interceptor vs 切片Aspect 详解 1 前言 最近接触到了过滤器和拦截器,网上查了查资料,这里记录一下,这篇文章就来仔细剖析下过 ...

  4. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

  5. Nginx开启Gzip压缩配置详解

    Nginx开启Gzip压缩配置详解 最近生产上发生了一些问题,原先所有的静态资源文件都是经过gzip压缩的,然而这几天突然都没有压缩了,经过一顿排查,发现是Nginx的配置有问题,借此机会详细了解了N ...

  6. python 生成器装饰器_对Python生成器、装饰器、递归的使用详解

    1.Python生成器表达式 1).Python生成器表达式 语法格式: (expr for iter_var in iterable) (expr for iter_var in iterable ...

  7. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  8. 提升进程权限函数OpenProcessToken 及相关函数详解

    提升进程权限函数OpenProcessToken 及相关函数详解 http://m.blog.csdn.net/blog/Armstronghappy/8797630 LookupPrivilegeV ...

  9. HMI智能串口屏——在STM32开发板上的实战应用及其详解

    HMI智能串口屏--在STM32开发板上的实战应用及其详解 一.HMI智能串口屏使用步骤 二.附录 一.HMI智能串口屏使用步骤 安装USART HMI软件 (一般买的串口屏里面,商家送的资料里面都有 ...

最新文章

  1. LeetCode Combinations (组合)
  2. 「递归」第2集 | 变得了魔术,解得了高数,这届鹅厂程序员有点酷
  3. 使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由
  4. mvc 视图和模型的对应_通过在酒吧订购饮料来解释模型视图控制器(MVC)
  5. windows 下安装Python easy_install 和pip
  6. 计算机网络概述(一)
  7. c语言简易成绩管理系统c语言,C语言写的简易成绩管理系统
  8. PoseCNN代码复现CMake编译找不到math_functions.hpp
  9. 4月8日及以后火车票暂停发售!
  10. 打开浏览器不是主页_浏览器首页被篡改!教你几个快速解决的方法
  11. vue中指令的编译过程
  12. GitHub使用笔记
  13. 2级c语言程序设计无忧考试,全国计算机二级c语言考试真题
  14. 《游戏设计艺术(第2版)》——学习笔记(27)第27章 通过试玩创造好游戏
  15. mdf mysql_mdf mysql数据库
  16. FAQ0115 AT32使用AC6编译器注意事项
  17. 刷屏!日本内政部向国民宣传5G的短视频:未来将是这样!
  18. 数据库设计 一对多 多对多 无限级菜单 设计方法
  19. 【邢不行|量化小讲堂系列40-Python量化入门】为什么我推荐使用Anaconda
  20. 南京大学计算机课程表,南大课表新鲜出炉,哪个专业课程最多?

热门文章

  1. python—迭代器
  2. Linux_Centos中搭建nexus私服
  3. 网站首页head区代码规范
  4. Java Maven学习 - 1
  5. 超图桌面版制作一幅简单专题图示例
  6. 使用Bochs调试Linux内核初级入门
  7. win32 调试 API 学习总结
  8. Win2000 DDK 附带例子概览(图解)
  9. elementUI树状图竖向滚动条和横向滚动条问题
  10. 使用命令将单个java文件打包为jar