打印

关于uclinux驱动的问题,请高手指点一二

[复制链接]
2173|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
baiqiang27|  楼主 | 2008-6-19 09:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
长话短说
我用S3C44B0搞了个播放器,解压芯片用了VS1003。系统跑的是uclinux-2.4版本。.因为在应用程序里直接写程序播放碰到有时停顿的问题,我把VS1003的驱动写成字符型的设备进行驱动。通过外部中断检测VS1003的数据请求脚。但这样做出现了一个怪问题。在应用程序里跑的很快的程序在驱动里慢了很多。按时序看我估计慢了有5~10倍的样子。
我想请教的是,在LINUX驱动中的这些代码是否可以认为的给它设置优先级,或者说比如给它分配更多的时间片,让它跑的更快些。
补充说明点,我的音乐是存放在IDE接口的硬盘上的,用示波器看对硬盘操作的时间也没有占用过多的时间,(检测的是ATA的片选线)。
请论坛里的高手不吝赐教,如有没说明的情况可以提出来,我再补充。
先谢过。





相关帖子

沙发
computer00| | 2008-6-19 10:05 | 只看该作者

也许驱动程序要绕一大圈或者经过很多层才到硬件……

如果是一个字节一个字节的传,那效率肯定很低……

要保证周期性,最好还是直接开个定时器,中断服务处理他们。

使用特权

评论回复
板凳
baiqiang27|  楼主 | 2008-6-19 10:20 | 只看该作者

先谢谢

我是在中断服务程序里做的操作。EXTINT0对应的VS1003 DREQ(数据请求)现在明显感觉到的是CPU处理速度不够快(我觉得是系统对这部分处理分配的资源不够)。中断服务函数几乎来不及跑完。下个中断就又来了。
而切我在中断中几乎都是对I/O的操作。几乎没有运算。同样的程序在应用程序里用的时间只有这里的十分之一

使用特权

评论回复
地板
armecos| | 2008-6-20 21:06 | 只看该作者

ARM7上用ecos这类的RTOS比较合适,

uClinux的层次很复杂,大量时间都浪费在这种完美的层次结构上了,而且uClinux存在不少缺陷,用ecos可以实现uClinux的全部功能,而且效率更高,体积更小。

    用DMA+中断方式可以提高吞吐率,音视频数据实时处理比较讲究,更多资料见:培训系列“丛书”

使用特权

评论回复
5
baiqiang27|  楼主 | 2008-7-9 14:21 | 只看该作者

找到了问题结帖

谢谢4楼的解释,这几天偶然看到说系统进入驱动操作后如果对设备的操作没有完成是不会退出的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝