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.

C6670初始化INTC后Task_sleep()不能切换任务

Other Parts Discussed in Thread: SYSBIOS

各位大虾,小弟在用C6670,使用网络协处理器接收以太网包,初始化中断后,2个Task无法通过Task_sleep来执行任务切换。通过Task_yield可以切换任务。不知为何。另外通过信号量也可以实现任务切换,虽然问题能通过这些方式解决,但Task_sleep不起作用,还是担心是系统哪里没设置好。求各位大牛帮助。

PS:程序中把中断初始化注释掉后,Task_sleep能实现Task切换。

  • 把Task_sleep的时间加长,block住高优先级的任务,看看是否有切换到低优先级的任务;

    sysBios中断初始化流程参考http://processors.wiki.ti.com/index.php/Configuring_Interrupts_on_Keystone_Devices,确认是否符合sysbios下中断配置要求;

    另外确认是否在切换的时候存在相应的中断导致的问题呢。

  • 谢谢 Andy,问题基本解决,是中断没使用好,有两种方式设置中断,弄混了。

    另外程序中用到多个中断,事件ID越大,对应的VECTOR ID也越大吧?先前中断向量大小和事件ID号没有对应大小顺序时,收不到中断。