TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS570LS1114移植在CCS上freeRTOS,创建任务失败,停在svcEntry

resetEntry
        b   _c_int00
undefEntry
        b   undefEntry
svcEntry
        b   svcEntry
prefetchEntry
        b   prefetchEntry
        b   _dabort
        b   phantomInterrupt
        ldr pc,[pc,#-0x1b0]
        ldr pc,[pc,#-0x1b0]

停在了b  svcEntry这一句,在pvPortMalloc里跳进去的, 堆定义了configTOTAL_HEAP_SIZE                    ( ( size_t ) 32*1024 ),任务申请的只有512,有人能帮忙解答一下吗?谢谢。

user6121941:

xTaskCreate((TaskFunction_t )pvTaskGio,(const char*)"vTaskGio",512,(void*)NULL,(UBaseType_t)1,(TaskHandle_t*)&xTask1Handle);
vTaskStartScheduler();这是创建任务函数。

user6121941:

回复 Susan Yang:

首先谢谢您的细心解答,现在创建任务成功了,启动任务调度时卡在了prvTimerTask这个函数上,我在网上查资料这一部分全都略过去没讲,可以请教一下您吗?

static void prvTimerTask( void *pvParameters )

{

TickType_t xNextExpireTime;

BaseType_t xListWasEmpty;

( void ) pvParameters;

#if( configUSE_DAEMON_TASK_STARTUP_HOOK == 1 )

{

extern void vApplicationDaemonTaskStartupHook( void );

vApplicationDaemonTaskStartupHook();

}

#endif

for( ;; )

{

/* Query the timers list to see if it contains any timers, and if so,

obtain the time at which the next timer will expire. */

xNextExpireTime = prvGetNextExpireTime( &xListWasEmpty );

/* If a timer has expired, process it.  Otherwise, block this task

until either a timer does expire, or a command is received. */

prvProcessTimerOrBlockTask( xNextExpireTime, xListWasEmpty );

/* Empty the command queue. */

prvProcessReceivedCommands();

}

}

卡在了函数的for循环里,麻烦您了。谢谢

gaoyang9992006:

回复 user6121941:

for循环里可疑处设置一个可变的变量打印出来,看看是在具体什么位置卡住的。

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS1114移植在CCS上freeRTOS,创建任务失败,停在svcEntry
分享到: 更多 (0)