STM32F407 FreeRTOS使用ST的DSP库会导致硬件错误

2019-07-20 05:06发布

[mw_shl_code=applescript,true]int main(void)
{
//    SystemBSPInit();

//    printf("Init Success ");

//    xTaskCreate( vStartTask, StartTaskName, configMINIMAL_STACK_SIZE*8, NULL, vStartTask_PRIORITY, NULL );

//    vTaskStartScheduler();  //¿aê¼èÎÎñμ÷¶è
//    for(;;);
       
        u32 i = 0;
  arm_status status;                           /* Status of the example */
  arm_cfft_radix4_instance_f32 cfft_instance;  /* CFFT Structure instance */

  /* CFFT Structure instance pointer */
  arm_cfft_radix4_instance_f32 *cfft_instance_ptr =
      (arm_cfft_radix4_instance_f32*) &cfft_instance;

        /* Initialize the CFFT function to compute 64 point fft */
        status = arm_cfft_radix4_init_f32(cfft_instance_ptr, 64, 0, 1);
       
        while (1)
        {
    i++;
  }
}
[/mw_shl_code]

这样不带操作系统,裸跑,程序运行正常,如果使能FreeRTOS后,在任务中运行status = arm_cfft_radix4_init_f32(cfft_instance_ptr, 64, 0, 1);会导致硬件错误,会跳转到[mw_shl_code=applescript,true]void HardFault_Handler(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {

  }
}[/mw_shl_code]中去,难道两者不兼容吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
taizonglai
1楼-- · 2019-07-20 09:43
 精彩回答 2  元偷偷看……
阳光灿烂的日子
2楼-- · 2019-07-20 14:00
 精彩回答 2  元偷偷看……
阳光灿烂的日子
3楼-- · 2019-07-20 17:01
zuozhongkai 发表于 2017-8-7 14:05
看看是不是任务堆栈分的太小了,或者启动文件的栈空间太小了。

试过了 还是不行
EmbeddedOsprey
4楼-- · 2019-07-20 21:46
 精彩回答 2  元偷偷看……
mygod
5楼-- · 2019-07-21 01:19
内存对齐试试

一周热门 更多>