程序其中的一个任务调用了Task_sleep(100),结果睡死在里面,用ROV查看任务的状态,Blocked阻塞,但是阻塞点是Unknown.
这是因为没有添加clock模块到系统的原因,或者设置的系统心跳的定时器为NULL或者USER,这种情况下,有关tick的API
还可以照常调用,但是除了超时值0或者forever外其他值都无效.
用ROV查看clock模块的状态,可以看到系统的心跳驱动源配置为NULL,然后计时的值也恒定不变,为0.
查看timer模块,也可以看到,系统心跳的定时器没有,就是用来do timetick的.
解决方法是:
1.在runtime里面打开clock manager.
2.添加clock模块,设置如下,tick源为定时器,至于那个定时器,看系统配置,28335是0,1,2三个定时器.
3.编译运行,然后暂停,ROV查看clock模块,可以看到系统添加了一个clock,ticks值会心跳了.
4.clock模块驱动源配置为timer,就是依赖timer来完成,所以系统自动生成了一个无名timer,来完成dotick的功能.
文章评论(0条评论)
登录后参与讨论