STM32hal库FreeRTOS移植笔记

  1. 进入FreeRTOS官网下载FreeRTOS源码,其中LTS指的是长期支持版本

  1. 在文件夹中解压并打开,其中FreeRTOS-Kernel是FreeRTO核心组件

  1. 在FreeRTOS-Kernel中我们需要移植的有
  • inclue文件夹:包含需要使用到的头文件

  • portable文件夹:选择Keil文件夹,MemMang其中是内存管理的组件,RVDS文件夹:根据你的MCU核心选择合适文件

  • 还有下列可能要用到的FreeRTOS内核.c文件

  1. 下载2022版本的FreeRTOS包,使用其中的demo的FreeRTOSConfig.h文件,这是FreeRTOS的配置文件,可以对其进行裁剪以及配置,我这里使用的是stm32f407get6故选择FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK

  2. 在keil中添加对应的头文件路径

  3. 修改FreeRTOSConfig.h文件,修改为第二个预编译

  4. 在stm32f4xx_it.c文件中将“PendSV_Handler”,“SVC_Handler”,“SysTick_Handler”这三个函数注释掉并在cubemx将下面三个配置删除

  5. 在FreeRTOSConfig.h文件中将下面的组件注释掉

    • #define configUSE_IDLE_HOOK 0
    • #define configUSE_TICK_HOOK 0
    • #define configCHECK_FOR_STACK_OVERFLOW 0
    • #define configUSE_MALLOC_FAILED_HOOK 0

    在 FreeRTOS 中,这些预编译指令用于配置内核的特定功能。以下是每个指令的含义:

    1. configUSE_IDLE_HOOK:

      • 这个配置项用于启用或禁用空闲任务钩子函数。如果设置为 1,可以定义一个空闲任务钩子函数 vApplicationIdleHook(),在系统处于空闲状态时调用。
    2. configUSE_TICK_HOOK:

      • 这个选项用于启用或禁用滴答(tick)钩子函数。如果设置为 1,可以定义一个滴答钩子函数 vApplicationTickHook(),在每次系统滴答时调用。
    3. configCHECK_FOR_STACK_OVERFLOW:

      • 此选项用于启用或禁用堆栈溢出检查。如果设置为 1,FreeRTOS 会在上下文切换时检查每个任务的堆栈大小,以防止堆栈溢出。
    4. configUSE_MALLOC_FAILED_HOOK:

      • 这个配置项用于启用或禁用内存分配失败钩子函数。如果设置为 1,可以定义一个钩子函数 vApplicationMallocFailedHook(),当内存分配失败(例如,调用 pvPortMalloc() 时没有足够内存)时会调用该函数。

    将这些选项设置为 0 表示禁用相应的功能,从而减少系统的开销和复杂性。

  6. 值得注意的是,freertos默认的时基单元是系统时钟即systick,所以在使用cubemx时,hal的系统时钟需要使用其他定时器,不能使用systick定时器

    参考链接

    FreeRTOS移植教程(超详细)——基于GD32F303X系列MCU - - 21ic电子技术开发论坛

    [STM32]从零开始的STM32 FreeRTOS移植教程_stm32使用rtos-CSDN博客

    STM32用CUBEMx生成工程, 不使用CMSIS, 自己移植freertos

    cubemx在使用freertos的时候为何推荐使用除systick以外的timebase_cubemx提示freertos不用systick时基-CSDN博客

    基于STM32H7的FreeRTOS+ FatFS + emWin + ST USB的综合模板下载(已经发布2021-01-21) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!

    移植FreeRTOS过程中SysTick_Handler()重定义相关的一个问题 - FreeRTOS & Zephyr & RTEMS & Contiki - 硬汉嵌入式论坛 - Powered by Discuz!

    【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍_freertos时钟使用systick还是timer-CSDN博客

posted @ 2025-03-25 14:57  林接接  阅读(256)  评论(0)    收藏  举报