[其他ST产品] FreeRTOS 中更发i默认配置,生成代码没有变化

[复制链接]
1002|11
 楼主| 地瓜patch 发表于 2025-4-1 22:22 | 显示全部楼层 |阅读模式
STM32CubeIDE,在FreeRTOS 中 。当我将时钟周期频率修改为 100000 而不是默认的 1000 时,
文件 stm32f4xx_hal_timebase_tim.c 中生成的代码并没有发生变化。
在配置的 sys 选项卡中,将 TIM8 设置为时基源。
下边程序段有什么问题
HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
RCC_ClkInitTypeDef   clkconfig;
uint32_t             uwTimclock = 0;
uint32_t             uwPrescalerValue = 0;
uint32_t             pFLatency;
/*Configure the TIM8 IRQ priority */
HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, TickPriority ,0);
/* Enable the TIM8 global Interrupt */
HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
/* Enable TIM8 clock */
__HAL_RCC_TIM8_CLK_ENABLE();
/* Get clock configuration */
HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
/* Compute TIM8 clock */
uwTimclock = 2*HAL_RCC_GetPCLK2Freq();
/* Compute the prescaler value to have TIM8 counter clock equal to 1MHz */
uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000) - 1);
/* Initialize TIM8 */
htim8.Instance = TIM8;
htim8.Init.Period = (1000000 / 1000) - 1;
htim8.Init.Prescaler = uwPrescalerValue;
htim8.Init.ClockDivision = 0;
htim8.Init.CounterMode = TIM_COUNTERMODE_UP;
......
......
.....
}

cr315 发表于 2025-4-3 12:12 | 显示全部楼层
建议用100,000作为除数来计算预分频值。
别乱了阵脚 发表于 2025-4-9 01:16 | 显示全部楼层
FreeRTOS 中修改默认配置(如 FreeRTOSConfig.h)后,生成的代码没有变化,通常是由于修改的文件未被正确覆盖

冰春彩落下 发表于 2025-4-9 02:26 | 显示全部楼层
CubeMX 重新生成代码时未覆盖 FreeRTOSConfig.hSTM32CubeMX 在重新生成代码时,默认会保留用户修改的文件(如 FreeRTOSConfig.h),除非手动选择强制覆盖

江河千里 发表于 2025-4-9 03:32 | 显示全部楼层
CubeMX 中,点击 Project Generate Code 时,勾选 "Generate Under Root" "Delete existing files"(具体选项因版本而异)。确保 FreeRTOSConfig.h 被重新生成

一秒落纱 发表于 2025-4-9 04:21 | 显示全部楼层
备份你的 FreeRTOSConfig.h,删除旧文件,重新生成代码后,再合并你的修改

光辉梦境 发表于 2025-4-9 05:18 | 显示全部楼层
配置未同步到 CubeMX 工程,CubeMX 图形界面中的 FreeRTOS 配置未更新,如果你直接修改了 FreeRTOSConfig.h 文件,但未在 CubeMX 的图形界面中同步更改,重新生成代码时会被覆盖

远山寻你 发表于 2025-4-9 06:41 | 显示全部楼层
在图形界面中调整参数(如任务堆栈大小、调度器类型等),而不是直接修改 FreeRTOSConfig.h

淡漠安然 发表于 2025-4-9 07:24 | 显示全部楼层
确保 CubeMX 中的配置与 FreeRTOSConfig.h 的关键参数一致

暖了夏天蓝了海 发表于 2025-4-9 08:23 | 显示全部楼层
编译系统未检测到文件变更:构建系统(如 Makefile)可能未正确识别 FreeRTOSConfig.h 的修改,导致未重新编译相关代码

三生万物 发表于 2025-4-9 09:12 | 显示全部楼层
使用了错误的 FreeRTOS 版本也会这样,CubeMX 可能默认使用了旧版 FreeRTOS,而你的修改在新版中才生效

夜阑风雨 发表于 2025-4-9 10:28 | 显示全部楼层
一定要确保使用最新版 CubeMX STM32HAL 库(可能修复了配置生成问题)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

2080

主题

15658

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部
0