原创 DSP/BIOS:Task_sleep睡死的问题

2012-1-12 21:28 9595 20 20 分类: MCU/ 嵌入式

程序其中的一个任务调用了Task_sleep(100),结果睡死在里面,用ROV查看任务的状态,Blocked阻塞,但是阻塞点是Unknown.

screenshot033.jpg


这是因为没有添加clock模块到系统的原因,或者设置的系统心跳的定时器为NULL或者USER,这种情况下,有关tick的API
还可以照常调用,但是除了超时值0或者forever外其他值都无效.

用ROV查看clock模块的状态,可以看到系统的心跳驱动源配置为NULL,然后计时的值也恒定不变,为0.

screenshot034.jpg

查看timer模块,也可以看到,系统心跳的定时器没有,就是用来do timetick的.

screenshot035.jpg


解决方法是:
1.在runtime里面打开clock manager.

screenshot036.jpg


2.添加clock模块,设置如下,tick源为定时器,至于那个定时器,看系统配置,28335是0,1,2三个定时器.

screenshot037.jpg
screenshot038.jpg


3.编译运行,然后暂停,ROV查看clock模块,可以看到系统添加了一个clock,ticks值会心跳了.

screenshot039.jpg


4.clock模块驱动源配置为timer,就是依赖timer来完成,所以系统自动生成了一个无名timer,来完成dotick的功能.

screenshot040.jpg

文章评论0条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条