This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:xPendingReadyList 在 RM57L843ZWT 的 FreeRTOS 中崩溃

Guru**** 2480155 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/698976/ccs-xpendingreadylist-is-crashed-in-freertos-on-rm57l843zwt

主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

xPendingReadyList 在 RM57L843ZWT 的 FreeRTOS 中崩溃

 

FreeRTOS 由 HALCoGEN 4.6.1生成、因此其版本为8.2.0。

 

系统已运行一段时间(几分钟)、然后崩溃。 崩溃的位置在函数 xTaskResumeAll (os_task.c)中

               while (listlistlist_is_empty (&xPendingReadyList)== pdFALSE)

               {

                   pxTCB =( TCB_t *) listGET_owner_for_head_entry(&xPendingReadyList );

                   ( void ) uxListRemove(&( pxTCB->xEventListItem ));

原因是当 xPendingReadyList 中的项目数为零(因为 pxList->xListEnd.pxNext ==(ListItems_t *)&(pxList->xListEnd))时,变量 NumberOfItems 仍为零,但 FreeRTOS 检查列表是否为 LinuxOfItems 空。

#define listlistlistlist_is_empty( pxList )        (( BaseType_t )(( pxList )->uxNumberOfItems ==( UBaseType_t )0))  

因此、在下一个循环中、pxTCB 是无效指针。

 谁能解释为什么列表 xPendingReadyList 崩溃。

谢谢。

 

志强

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Zhi强、

    请检查堆栈是否溢出。 FreeRTOS 不会检查堆栈是否溢出。