亦宇~依在 2025-04-24 17:32 采纳率: 0%
浏览 165

freertos出现osKernelStart卡死问题

hal库配置freertos的时候,生成了三行代码:

  osKernelInitialize();
  /* Call init function for freertos objects (in cmsis_os2.c) */
  MX_FREERTOS_Init();
  /* Start scheduler */
  osKernelStart();

我发现运行的时候系统会卡死在osKernelStart里面,一直往下追查,发现卡死在prvStartFirstTask函数的svc 0这一行代码,为什么?

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-04-24 17:32
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    freertos出现osKernelStart卡死问题

    你遇到了FreeRTOS的osKernelStart卡死问题,这可能是由于FreeRTOS对象的初始化函数没有正确地被调用导致的。

    在你提供的代码中,osKernelInitialize函数已经被调用,但是init function for freertos objects还没有被调用。这是一个必需的步骤,以便将FreeRTOS对象正确地初始化。

    你可以尝试在osKernelInitialize函数后添加以下代码,以便调用init function for freertos objects

    vTaskStartupScheduler();
    

    这将启动FreeRTOS的调度器,并将对象正确地初始化。

    如果问题仍然存在,你可以检查FreeRTOS对象的初始化是否正确,确保所有对象都已经被正确地初始化。如果问题仍然存在,你可以尝试使用FreeRTOS的调试工具,例如FreeRTOS+Trace,来追踪问题的原因。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月24日