wangbylove 2019-09-05 11:24 采纳率: 0%
浏览 1525
已采纳

FreeRtos 在STM32H7上异常跑飞

1.在系统运行一段时间好好的,但几个任务同时执行的时候RTOS,抓到的数据都正常执行了,但任务在pxList出指针飞了。
首次用RFOS系统不知道从哪分析数据了?

程序异常
被调用的函数

UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )
{
/* The list item knows which list it is in.  Obtain the list from the list
item. */
List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer;

    pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;
    pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;

    /* Only used during decision coverage testing. */
    mtCOVERAGE_TEST_DELAY();

    /* Make sure the index is left pointing to a valid item. */
    if( pxList->pxIndex == pxItemToRemove )
    {
        pxList->pxIndex = pxItemToRemove->pxPrevious;
    }
    else
    {
        mtCOVERAGE_TEST_MARKER();
    }

    pxItemToRemove->pvContainer = NULL;
    ( pxList->uxNumberOfItems )--;

    return pxList->uxNumberOfItems;
}
  • 写回答

1条回答 默认 最新

  • baidu_30233079 2019-09-05 11:27
    关注

    基本原则:在多任务系统如果多个任务要访问同一个数据(如你的链表),需要做互斥的,否则会造成异常跑飞

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?