熟悉FreeRTOSConfig.h主配置文件

#define configUSE_PREEMPTION     1                                   //1为抢占式调度器 0为协作式任务调度器
#define configUSE_IDLE_HOOK         0                                   //1使能idle hook才会调用空闲钩子函数 0则禁止
#define configUSE_TICK_HOOK         0                                   //1使能 0禁止
#define configCPU_CLOCK_HZ          ( ( unsigned long ) 72000000 )      //MCU内核频率 单位Hz
#define configTICK_RATE_HZ          ( ( TickType_t ) 1000 )             //1000 Hz  时间片长度 1ms
#define configMAX_PRIORITIES        ( 5 )                               //任务的最大优先级
#define configMINIMAL_STACK_SIZE    ( ( unsigned short ) 128 )          //堆栈的最小值  如果小于此值可能造成任务内存不足挂掉
#define configTOTAL_HEAP_SIZE       ( ( size_t ) ( 17 * 1024 ) )        //堆空间的大小   只有使用FreeRTOS提供的内存分配算法才会用到
#define configMAX_TASK_NAME_LEN     ( 16 )                              //任务函数名字最大长度  包含'\0'
#define configUSE_TRACE_FACILITY    0                                   //1 使能TRACE功能 0禁止   使用要三思  RAM占用很多
#define configUSE_16_BIT_TICKS      0                                   //1 portTickType被定义为16位无符号整型 0 32位无符号整型
#define configIDLE_SHOULD_YIELD     1                                   //1 当其他任务优先级与IDLE任务相同时  使IDLE占用的时间片更小/* Co-routine definitions. */
#define configUSE_CO_ROUTINES       0                                   //1 则包含co-routines功能
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )                           //co-routines可以使用的优先级数量/* 选择需要参加编译的功能 删除不需要的功能  节约RAM与ROM */#define INCLUDE_vTaskPrioritySet        1
#define INCLUDE_uxTaskPriorityGet       1
#define INCLUDE_vTaskDelete             1
#define INCLUDE_vTaskCleanUpResources   0
#define INCLUDE_vTaskSuspend            1
#define INCLUDE_vTaskDelayUntil         1
#define INCLUDE_vTaskDelay              1/* This is the raw value as per the Cortex-M3 NVIC.  Values can be 255
(lowest) to 0 (1?) (highest). */
#define configKERNEL_INTERRUPT_PRIORITY         255                     //决定了FreeRTOS内核使用的优先级
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY 不能设置为0!!!See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY    191                     //决定了可以调用API函数的中断的最高优先级   高于这个值的中断处理函数不能调用过任何的API函数/* 这是ST库允许使用的值,ST库允许使用16优先级值,0到15。这必须对应于configKERNEL_INTERRUPT_PRIORITY设置。这里15是最小的NVIC值255. */
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15

什么情况要开启钩子函数

#define configUSE_IDLE_HOOK          0                                   //1使能idle hook才会调用空闲钩子函数 0则禁止
#define configIDLE_SHOULD_YIELD     1                                   //1 当其他任务优先级与IDLE任务相同时  使IDLE占用的时间片更小钩子函数
上层函数调用下层函数  并且传入一个函数指针  下层函数通过指针调用上层函数 由此就叫钩子函数当创建的任务大部分时间都处于阻塞态。这种状态下所有的任务都不可运行,所以也不能被调度器选中。但是处理器又不可能什么代码都不运行,所以必须有一个空闲时执行的任务。

FreeRTOS 配置文件相关推荐

  1. FreeRTOS配置文件有哪些基础配置

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang FreeRTOS中"FreeRTOSConfig.h"配置的内容 ...

  2. 【STM32】FreeRTOS系统配置

    00. 目录 文章目录 00. 目录 01. 概述 02. FreeRTOS配置文件 03. INCLUDE开始的宏 04. config开始的宏 05. 其它 06. 附录 07. 参考 01. 概 ...

  3. FreeRTOS | STM32H7串口中断调用FreeRTOS API,导致程序卡死

    文章目录 一.前言 二.串口中断调用xQueueSendFromISR 2.1.串口中断回调函数(usart.c) 2.2.stm32h7xx_it.c 三.调试 3.1.串口中断后,程序卡死 3.2 ...

  4. LwIP移植到FreeRTOS(STM32F107+DP83848)

    1.创建工程 2.移植库文件 将STM32F107_ETH_LwIP_V1.0.0中的库文件拷贝到工程中 添加文件和路径 创建main.c 将STM32F107_ETH_LwIP_V1.0.0中的中断 ...

  5. FreeRTOS——静态与动态内存分配

    FreeRTOS 基础系列文章  基本对象   FreeRTOS--任务   FreeRTOS--队列   FreeRTOS--信号量   FreeRTOS--互斥量   FreeRTOS--任务通知 ...

  6. FreeRTOS系列|FreeRTOS简介

    FreeRTOS简介 1. RTOS简介 RTOS全称为 Real Time Operation System,即实时操作系统.RTOS强调的是实时性,又分为硬实时和软实时.硬实时要求在规定的时间内必 ...

  7. FreeRTOS——软件计时器

    FreeRTOS 基础系列文章  基本对象   FreeRTOS--任务   FreeRTOS--队列   FreeRTOS--信号量   FreeRTOS--互斥量   FreeRTOS--任务通知 ...

  8. ESP8266_RTOS_SDK学习笔记之 FreeRTOS移植浅析

    ESP8266原厂提供了Non-OS和RTOS版本的SDK. Non-OS版本SDK主要使用定时器和回调函数的方式实现各个功能事件嵌套,达到设定条件后触发指定的事件及回调函数.同时Non-OS使用的是 ...

  9. 【回眸】RS485VSRS232,I2C,SPI特点、什么是PMIC、RTOS移植相关问题

    前言 本期是最近遇见的题目的汇总,主要有以下几个问题,RS485和RS232的区别,I2C的特点,SPI的特点 RS485的特点 1.需要电平转换后再与TTL电路连接 2.速率最高为20Kbps 3. ...

  10. 开发板移植RTOS操作系统,RTOS操作系统适配开发板整理大全

    文章目录 一.单片机/嵌入式有无操作系统的区别 二.操作系统时的分层架构图 三.移植FreeRTOS到小熊派开发板(STM32L431RC) 1. 硬件准备 2. 下载FreeRTOS源码 2.1. ...

最新文章

  1. 过滤内容字段_巧用参数组件和过滤组件,教你快速定位目标数据
  2. 互联网人年终总结扎心指南
  3. python面试-Python面试题(整理)
  4. win10安装java+hadoop+spark
  5. 数字证书——密码学笔记(六)
  6. redis缓存穿透-解决方案
  7. 2021音视频开发的“坑”,等你来填!
  8. TypeScript Decorators 的使用说明
  9. 理工男都能有多痴情?
  10. 卢伟冰:越是入门机 越应该把使用体验做好
  11. 【软考】2019 上半年软件设计师 下午真题及答案
  12. 火爆的文字游戏你玩了吗?「GitHub 热点速览 v.22.06」
  13. 毕设项目 - 基于SSM的毕业设计管理系统(含源码+论文)
  14. cisco3560交换机的策略路由的设置
  15. 华为HCNA独家视频课程
  16. 面试官的一些问题,给予小伙伴们一些帮助。
  17. 【软考高项】新一代信息技术及应用之云计算
  18. 数据库:增、删、改、查操作
  19. GBU610-ASEMI智能家居整流桥GBU610
  20. 图像全变差 matlab,全变差图像重建的交替最小化算法

热门文章

  1. 老婆生病了,后果很严重!
  2. 第一部分 第三章 1039-1058 答案合集
  3. POJ2653 Pick-up sticks
  4. ts的小demo--贪吃蛇(尚硅谷教程笔记)
  5. Oracle数据库链接源文件
  6. 截取指定字符前_Excel字符函数(1):利用3个函数提取邮箱中的域名
  7. android调用本地js文件上传,原生JS实现前端本地文件上传
  8. apache如何加载系统环境变量_游学电子:windows10系统如何用cmd指令设置环境变量...
  9. div在html中的好处,详解DIV+CSS布局的好处和意义
  10. 算法4中数学模型练习题分析