这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » WDB 任务不稳定??

共2条 1/1 1 跳转至

WDB 任务不稳定??

菜鸟
2007-08-06 14:32:28     打赏
最近跑了一个程序,由于任务比较多(15个任务,采用时间轮转片),其中有4个任务通过CPU上的两个串口不停地收发数据,接受采用select机制,发送采用每隔20ms发送一次数据(36bytes),程序每次刚开始运行良好,但不久WDB任务就会报错,特别是当用host shell公举查看任务的堆栈等一些信息的时候,我怀疑是不是由于程序任务比较多,而且每个任务对时间比较苛刻(基本上都是几十毫秒处理一次),所以当用shell工具的时候,wdb任务得不到及时的处理,所以就会报错,请斑竹指点,这个问题困%E



关键词: 任务     不稳定    

菜鸟
2007-08-06 16:46:09     打赏
2楼
为何要采用时间片轮转调度呢?其实默认的调度器性能非常好,完全可以满足你的应用要求。
WDB报错,可否把详细出错信息贴出来用于分析?
对于你的情况,我觉得要注意几点:
1.串口波特率:如果是9600,发送、接受一个字节大概是1个ms,20ms发36个做不到,所以串口波特率必须比较高。
2.串口驱动:vxWorks中的串口驱动,tty方式的,都是没有启用芯片内部缓冲的,也就是受到和发出一个字节就会中断一次,这点对CPU性能消耗影响很大,中断率会比较高,建议自己根据手册写串口驱动,较大程度上利用好芯片内部缓冲,现在的UART基本上都有缓冲。
3.如果你一定要用时间片轮转,上来说很难兼顾软件实时性和硬件实时性,另外时间粒度太大和时间粒度太小会带来不同的性能问题。
 

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]