Other Parts Discussed in Thread: SYSBIOS, AM5728
Thread 中讨论的其他器件:SYSBIOS、 AM5728
工具/软件:Code Composer Studio
我已经创建了简单的代码来创建一个任务并将其休眠10微秒,但是在控制之后,永远不会从 Task_sleep()返回。 我签入了 ROV,任务在 Task_sleep()调用上进入被阻止状态,从不进入运行状态。
#include
#include
#include
#include
#include
#include
/*
*==== taskFxn ====
*
void taskFxn (UARg a0、UARg A1)
{
System_printf ("Clock_tickPeriod:%d\n"、Clock_tickPeriod);
//System_printf ("Clock_tickPeriod:%d\n"、Clock_);
system_printf ("enter taskFxn ()\n");
Task_sleep (10);
system_printf ("exit taskFxn ()\n"\});
system_flush();/*强制 SysMin 输出到控制台*/
}
/*
*==== main ====
*
int main()
{
Task_Handle 任务;
Task_Params t_params;
ERROR_Block EB;
system_printf ("enter main()\n");
ERROR_INIT (&EB);
Task_Params_init (&t_params);
t_params.instance->name ="task0";
T_params.STACKSIZE = 4096;
任务= Task_create (taskFxn、&t_params、&EB);
if (任务==空)
{
System_printf ("Task_create() failed!\n");
BIOS_exit (0);
}
BIOS_start();/*不返回*/
system_printf ("exit main()\n");
返回(0);
}
配置文件:
VAR 任务= xdc.useModule('ti.sysbios.knl.Task');
VAR BIOS = xdc.useModule('ti.sysbios.BIOS');
VAR 计时器= xdc.useModule('ti.sysbios.hal.Timer');
VAR Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
VAR Swi = xdc.useModule('ti.sysbios.knl.Swi');
VAR 时钟= xdc.useModule('ti.sysbios.knl.Clock');
clock.tickPeriod = 1000;
clock.tickMode = Clock.tickMode_Periodic;
VAR 启动= xdc.useModule('xdc.runtime.Startup');
VAR 信标= xdc.useModule('ti.sysbios.knl.Semaphore');
VAR 事件= xdc.useModule('ti.sysbios.knl.Event');
VAR 邮箱= xdc.useModule('ti.sysbios.knl.Mailbox');
VAR SysStd = xdc.useModule('xdc.runtime.SysStd');
VAR 系统= xdc.useModule('xdc.runtime.System');
System.SupportProxy = SysStd;
Task.defaultStackSize = 4096;
//Task.deleteTerminatedTasks = true;
task.numPriorities = 25;
task.allBlockedFunc =空;
SWI.numPriorities = 30;
program.heap = 8192;
Semaphore.supportsEvents = true;
/*
task.enableIdleTask = true;
VAR task0Params = new Task.Params();
task0Params.instance.name ="task0";
task0Params.priority = 10;
task0Params.arg0 = 10;
task0Params.arg1 = 20;
program.global.task0 = Task.create ("&task0fxn"、task0Params);*/
Clock.swiPriority = 15;



