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

这篇具有很好参考价值的文章主要介绍了STM32cubemx对FreeRTOS的适配(工程模板配置)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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

一、工程的创建

1.开始工程的创建:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
2.芯片型号选择:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
3.修改时钟为TIM8:
在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
4.配置RCC:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
5.配置FreeRTOS:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划

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

STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划

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

STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
8.生成独立的.c和.h文件:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
9.串口重定向:

STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划

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

STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
CMSIS封装的RTOS接口有两个版本RTOS V1RTOS V2,V2兼容V1,支持更多的cortex内核。

三、STM32cubemx生成的FreeRTOS工程分析

1.在Middlewares下包含了全面的FreeRTOS功能组件:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划
2.FreeRTOS初始化和开启调度器:

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

3.MX_FREERTOS_Init():
在MX_FREERTOS_Init中创建了一个StartDefaultTask这是cubemx帮我们自动创建的函数。
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划

cubemx自动创建的任务:
STM32cubemx对FreeRTOS的适配(工程模板配置),FreeRTOS全系列教程,stm32,嵌入式硬件,单片机,FreeRTOS,嵌入式,ARM,原力计划

总结

本篇文章就讲解到这里,下篇文章我们继续讲解如何使用STM32cubemx对FreeRTOS进行配置。文章来源地址https://www.toymoban.com/news/detail-722312.html

到了这里,关于STM32cubemx对FreeRTOS的适配(工程模板配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32开发小技巧】CUBEMX改变工程模板(FreeMarker一键生成定制文件)

    ps:可直接跳到效果展示 众所周知CUBEMX可以生成代码,图形界面可以方便用户进行STM32的配置,有天我就在想能否用户改变生成后的代码,于是就有了下面的文章。 直接进入Project Manager页面。 我们看一下官方的说明 生成了一些外设信息,这些都是通过FreeMarker模板引擎代码生成

    2023年04月08日
    浏览(73)
  • STM32使用STM32CUBEMX配置FreeRTOS+SDIO4bit+FATFS注意事项

    以STM32F429为例: 1、SDIO配置 配置为4bit模式,此配置不是最终配置,后面会在代码进行修改。 2、Fatfs配置 Set Defines 选项中的配置可以默认,最重要注意Advanced Setting 选择中的配置,如下 该界面配置默认Use dma template是默认使能的 ,并且不可以选择,只能选择使能,所以需要使

    2024年02月11日
    浏览(58)
  • 【通过STM32CubeMx配置LWIP+FreeRTOS并通过Socket实现TCP_Client/Sever】

    测试平台 → Nucleo_F429ZI 软件工具 → STM32CubeMx 6.6.1 MDK 5.3.0 网络调试助手V1.2 在CubeMx上面选择NUCLEO-F429ZI开发板,并采用默认配置 使能FreeRTOS 修改defaultTask的栈大小 由于使用了FreeRTOS,因此系统的TimeBase Source修改成TIM1 使能LWIP,并且先禁用DHCP,设置好静态IP Platform选择LAN8742 修改

    2024年02月08日
    浏览(43)
  • 使用STM32CubeMX创建STM32工程(串口,硬件IIC配置)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 最近教研室的项目需要使用STM32做处理器,对环境数据进行采集处理,在拿到板子后,需要根据单片机具体型号(STM32F411CEU6)创建工程,再进行上层应用的开发。因为以前都是用的F1系列的开发板,用的

    2023年04月18日
    浏览(47)
  • STM32cubeMX配置工程(全过程+修改MCU方法+注意事项)

    1.修改默认的固件包下载路径,避免占用C盘空间 2、选择ACCESS TO MCU 3、在跳出的界面中的Part Number中搜索对应的芯片型号 4、选好后在右下角双击对应的芯片,然后跳出配置界面 左边可以配置外设,右边可以配置每个IO口的功能 System Core包括GPIO、RCC时钟、看门狗、DMA等系统外设

    2024年02月17日
    浏览(55)
  • STM32 CubeMX LwIP + freertOS 移植

    开发板: 官方 STM32F746  MCU型号:STM32F746NGH 网卡型号:LAN8742A  原理图如下 先用裸机测试LAN8742A的网卡驱动 使用CubeMX创建工程 系统时钟和时基定时器如下 无系统LWIP协议栈设置,静态IP地址,关闭DHCP 生产代码,下载进开发板。开发板网口与电脑网口通过网线直连,设置电脑本

    2024年01月16日
    浏览(83)
  • 基于STM32CubeMX创建FreeRTOS—以STM32F429为例

    目录 1. 实验任务 2. 使用STM32CubeMX创建基础工程 2.1 使用STM32CubeMX创建项目 2.2 创建新项目 2.3 时钟设置 2.4 时钟配置树 2.5 修改时钟基准,打开串行调试 2.6 配置串口 2.7 配置状态指示灯 2.8 FreeRTOS配置 2.9 配置工程输出项 3. 代码编辑 3.1 printf重映射 3.1.1 使用ARMCC 5编译器时的print

    2024年01月22日
    浏览(42)
  • 搭建STM32F407的Freertos系统(基于STM32CubeMX)

           本人长期开发Linux、Windows上应用软件,一直以来MCU开发有所接触,但较少(最近项目需要,小公司么,都得会,被逼的),好在有STM32CubeMX这样工具,貌似就是我想要的工具。         本次demo目标立下:         1. 搭建或移植FreeRTOS到STM32上,毕竟对于长期在Linux环境

    2024年02月10日
    浏览(61)
  • STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

    学习使用Freertos第一步 FreeRTOS 任务管理,您需要掌握以下几个关键函数: 1. xTaskCreate() :用于创建一个任务,需要指定任务函数、任务名称、任务栈大小和优先级等参数。 2. vTaskDelete() :用于删除一个任务,可以由任务自身或其他任务调用。 3. vTaskDelay() :用于使当前任务进

    2024年02月12日
    浏览(37)
  • STM32CubeMX+FATFS+FREERTOS读写U盘

    软件:STM32CubeMX V6.6.1 、 KEIL5 V5.29 硬件:STM32F429ZET6 USB_OTG_FS:PA11/PA12引脚 USART1:PA9/PA10,方便输出调试信息 1)SYS下载方式选择SW方式,因为要使用FREERTOS,提前将时钟源修改为TIM7(其他定时器也可以) 2) RCC设置,选择高速外部晶振HSE(根据具体硬件选择) 3)USART1设置,方便输出调

    2024年01月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包