STM32
直播中

岳臻俊

7年用户 1053经验值
私信 关注
[问答]

移植FreeRTOS V8.1.2到STM32F042K6遇到的问题求解

    我也在移植FreeRTOS V8.1.2到STM32F042K6,可是,问题多多,特来请教。

    我的环境: WIN7 64位,MDK5.11,StLink

   问题1   单步不畅。多次点击F10(StepOver),才能执行一条C语句,十分恼火呀!

   问题2  Port.c文件中的void prvSetuptimerInterrupt( void )函数内,不能设置断点,但是可以单步执行此函数内的语句,

   问题3  不能进入SysTick中断void  xPortSysTickHandler(void );

   但是,我下载了 https://www.eefocus.com/bbs/article_244_596138.html  中的FreeRTOS-STM32CM0-Demo.rar,在我
   的环境下编译运行,一切正常。
   
这些,都是灵异事件么?

回帖(2)

杨文英

2024-5-17 16:27:15
问题3-回答:以下代码被注释,所有没有初始化滴答器。
//if (SysTick_Config(SystemCoreClock / 1000))
//{
//  /* Capture error */
//  while (1);
//}
这段代码的作用是使滴答器每1ms的触发中断事件。
举报

王焕锁

2024-5-17 18:17:55
您好!您在移植FreeRTOS V8.1.2到STM32F042K6时遇到了一些问题。我会尽力帮助您解决这些问题。

问题1:单步执行不畅
这个问题可能是由于调试器设置不当或者编译器生成的代码有问题导致的。您可以尝试以下方法解决:
1. 确保您的MDK-ARM IDE设置正确,包括编译器、链接器和调试器设置。
2. 检查您的FreeRTOS配置,确保没有错误或不兼容的设置。
3. 尝试重新编译并下载代码,确保没有编译错误。

问题2:无法在prvSetupTimerInterrupt函数中设置断点
这个问题可能是因为该函数中的代码被优化了,导致调试器无法识别。您可以尝试以下方法解决:
1. 在MDK-ARM IDE中,尝试在函数调用的地方设置断点,而不是在函数内部。
2. 检查您的编译器设置,确保没有启用过于激进的优化选项。

问题3:无法进入SysTick中断xPortSysTickHandler
这个问题可能是因为SysTick中断没有被正确配置或者调试器没有正确捕获中断。您可以尝试以下方法解决:
1. 确保您的SysTick配置正确,包括时钟源、时钟频率和中断优先级。
2. 在MDK-ARM IDE中,确保您的调试器设置正确,包括中断设置和断点设置。
3. 尝试在xPortSysTickHandler函数的入口处设置一个断点,看看是否能够捕获到中断。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我能更好地帮助您。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分