STM32CUBEMX生成freeRTOS代码的时候出现警告

STM32CUBEMX生成freeRTOS代码的时候出现警告

概述

最近做新项目使用了FREERTOS.1,执行生成代码时提示:
WARNINGS:

  • When FreeRTOS is used, it is strongly recommanded to use HAL timebase source other than the Systick.
  • 在这里插入图片描述
    HAL函数如果是阻塞型呼叫,內部会用到HAL_Delay(),FreeRTOS应该还是使用SystTick。如果使用的时基操作來源一样,怕有不可预期问题出现,故选择其他定时器。
    在这里插入图片描述
    此时在生成代码报错就会消失。
### 使用STM32CubeMX配置和生成FreeRTOS项目 #### 打开并启动STM32CubeMX 安装好STM32CubeMX后,启动该应用程序。选择目标微控制器型号,这一步骤对于确保后续配置适用于特定硬件至关重要。 #### 创建新工程 点击“New Project”,按照向导提示输入必要的信息来创建一个新的工程文件。选定具体的MCU型号后,可以开始进行外设和其他中间件的选择与配置[^1]。 #### 配置时钟树与时基 调整系统的时钟设置以满足应用需求。正确设定系统时钟有助于提高性能并减少功耗。同时,在“Middlewares”选项卡下找到RTE(Run-Time Environment),勾选`USE_FULL_LL_DRIVER`以便支持底层驱动程序访问[^2]。 #### 添加FreeRTOS组件 转到“Middleware”标签页下的“ThreadX”部分改为“FreeRTOS”。在这里可以选择是否启用时间片轮转调度机制以及最大优先级数目等参数。另外还需指定堆内存管理方案,默认情况下提供了几种不同的分配策略供开发者选用。 #### 设置任务与队列 在“Configuration”窗口内的“FreeRTOS”节点展开后可看到多个子项用于定义初始的任务数量、栈大小以及其他属性;同样也可以在此处建立消息传递所需的队列资源。 #### 生成初始化代码 完成上述所有步骤之后保存当前工作进度,并通过菜单栏上的按钮指示STM32CubeMX自动生成相应的初始化源码文件。此时应该能看到IDE中包含了针对所选设备优化过的启动脚本及中断服务例程模板[^3]。 #### 编译链接与烧录固件 切换至集成开发环境(如Keil uVision),导入由STM32CubeMX产生的项目结构。仔细检查编译器警告或错误报告,必要时参照官方文档排除潜在问题直至成功构建出最终镜像文件准备下载至目标板上验证运行效果[^4]。 ```c // 示例:简单的 FreeRTOS 应用程序框架 #include "main.h" #include "cmsis_os.h" /* 定义两个测试任务 */ void StartDefaultTask(void const * argument); osThreadId defaultTaskHandle; int main(void){ /* 初始化 HAL 库 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 创建默认任务 */ osThreadDef(default_task, StartDefaultTask, osPriorityNormal, 0, configMINIMAL_STACK_SIZE); defaultTaskHandle = osThreadCreate(osThread(default_task), NULL); /* 启动调度器 */ osKernelStart(); } void StartDefaultTask(void const * argument){ while (true){ // 用户逻辑... osDelay(500); // 延迟一段时间再继续执行循环体 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记帖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值