• STM32cubemx对FreeRTOS的适配(工程模板配置)



    前言

    本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。

    一、工程的创建

    1.开始工程的创建:
    在这里插入图片描述
    2.芯片型号选择:
    在这里插入图片描述
    3.修改时钟为TIM8:
    在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。
    在这里插入图片描述
    4.配置RCC
    在这里插入图片描述
    5.配置FreeRTOS:
    在这里插入图片描述

    6.开启串口方便调试和观察:

    在这里插入图片描述

    7.工程路径及编译器选择等:

    在这里插入图片描述
    8.生成独立的.c和.h文件:
    在这里插入图片描述
    9.串口重定向:

    在这里插入图片描述
    在这里插入图片描述

    二、什么是CMSIS

    CMSIS,即 Cortex Microcontroller Software Interface Standard(Cortex 微控制器软件接口标准),是由ARM(Advanced RISC Machines)开发的一套标准,旨在为嵌入式系统开发提供一致的、可移植的软件接口。CMSIS为ARM Cortex 微控制器的开发提供了一种标准化的方法,以简化嵌入式系统的开发过程,并提高代码的可移植性。

    CMSIS 主要包括以下几个组件和功能:

    1.Cortex-M 处理器核的通用接口: CMSIS 提供了一套通用的编程接口,以支持不同的 Cortex-M 处理器核,包括 Cortex-M0、M0+、M1、M3、M4、M7 等。这些接口定义了中断控制器、系统控制寄存器、异常处理等。

    2.Cortex Microcontroller Software Interface Standard HAL(CMSIS HAL): 这是 CMSIS 中的一个重要组件,它定义了一组通用的硬件抽象层接口,允许开发人员编写与硬件无关的驱动程序。这些驱动程序包括 GPIO、UART、SPI、I2C 等外设的操作函数。

    3.CMSIS-CORE: CMSIS-CORE 提供了处理器内核的核心功能,包括中断管理、系统控制、系统定时器和系统初始化函数。

    4.DSP 库(Digital Signal Processing Library): CMSIS 提供了用于数字信号处理(DSP)的库函数,以支持嵌入式系统中的数字信号处理任务。

    5.RTOS 适配层(RTOS Abstraction Layer): CMSIS 提供了用于支持不同实时操作系统(RTOS)的接口,允许开发人员将不同的 RTOS 与 CMSIS 集成,以便更容易移植应用程序。

    6.组件包管理器(Pack Management): CMSIS 还包括一个组件包管理器,允许开发人员轻松获取和集成针对特定 Cortex-M 处理器的软件包、驱动程序和中间件。

    CMSIS 为 ARM Cortex-M 微控制器的软件开发提供了一种标准化的方法,使开发人员可以更容易地编写可移植的嵌入式应用程序,而无需过多关注底层硬件细节。这有助于加速嵌入式系统的开发,提高代码的可维护性,并促进生态系统的发展。

    在这里插入图片描述
    CMSIS封装的RTOS接口有两个版本RTOS V1RTOS V2,V2兼容V1,支持更多的cortex内核。

    三、STM32cubemx生成的FreeRTOS工程分析

    1.在Middlewares下包含了全面的FreeRTOS功能组件:
    在这里插入图片描述
    2.FreeRTOS初始化和开启调度器:

      /* Init scheduler */
      osKernelInitialize();  /* Call init function for freertos objects (in freertos.c) */  //初始化调度器
      MX_FREERTOS_Init();//cubemx配置的代码
      /* Start scheduler */
      osKernelStart();//开启调度器
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.MX_FREERTOS_Init():
    在MX_FREERTOS_Init中创建了一个StartDefaultTask这是cubemx帮我们自动创建的函数。
    在这里插入图片描述

    cubemx自动创建的任务:
    在这里插入图片描述

    总结

    本篇文章就讲解到这里,下篇文章我们继续讲解如何使用STM32cubemx对FreeRTOS进行配置。

  • 相关阅读:
    【FreeRtos任务通知详解】
    【css】css奇数、偶数、指定数选择器:
    leetcode做题笔记141. 环形链表
    JS(WebAPI部分)
    webpack5打包之 图片、字体、icon
    Leetcode92. 反转链表 II
    Python制作AI贪吃蛇,很多很多细节、思路都写下来了!
    用层序遍历建一棵二叉树
    智慧风电:数字孪生 3D 风机智能设备运维
    MySQL数据库管理基本操作(一)
  • 原文地址:https://blog.csdn.net/m0_49476241/article/details/133965621