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循环里可疑处设置一个可变的变量打印出来,看看是在具体什么位置卡住的。