LKMCU 发表于 2014-9-27 11:56:09

移植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,在我
   的环境下编译运行,一切正常。
    
这些,都是灵异事件么?

Dylan疾风闪电 发表于 2014-9-28 11:52:53

RE:移植FreeRTOS V8.1.2到STM32F042K6,问题多多,特来请教。

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

LKMCU 发表于 2014-9-29 01:04:38

RE:移植FreeRTOS V8.1.2到STM32F042K6,问题多多,特来请教。

有结论了:
在WIN7 32位 + MDK5.11 + STLINK 环境下,一切OK;
在WINXP   + MDK5.11 + STLINK 环境下,一切OK;
这就说明,是64位的WIN7害我折腾!
不过,又有新的问题了,为什么 我从
https://www.eefocus.com/bbs/article_244_596138.html 下载的工程,在我的WIN7 64位 + MDK5.11 + STLINK 环境下,没有问题呢?
难道是因为,创建工程的MDK版本不同之故?

谢谢 Dylan疾风闪电 的回复。
实际上,您提到的那几行,的确是多余的。因为vTaskStartScheduler()会调用以下函数初始化SysTick的。
void prvSetupTimerInterrupt( void )
{
        /* Configure SysTick to interrupt at the requested rate. */
        *(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
        *(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
}

LKMCU 发表于 2014-9-29 01:11:21

还有,要注意这个宏定义USE_STDPERIPH_DRIVER ,STM32F042,

   注意这个宏定义  
  USE_STDPERIPH_DRIVER ,STM32F042,
页: [1]
查看完整版本: 移植FreeRTOS V8.1.2到STM32F042K6,问题多多,特来请教。