驱动程序开发网技术社区 » Mac 驱动开发 » 有一段无线网卡驱动程序看不懂,请高手指点! 转到动态网页
本页主题: 有一段无线网卡驱动程序看不懂,请高手指点! 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

corydon
我成功,因为我志在成功,未曾犹豫。   
级别: 驱动牛犊

查看作者资料 发送短消息加为好友 对该用户使用道具
精华: 0
发帖: 10
威望: 11 点
积分: 100 分
贡献值: 0 点
好评度: 10 点
原创分: 0 分
注册时间:2008-05-11
最后登录:2008-05-20
引用回复这个帖子 推荐此帖


有一段无线网卡驱动程序看不懂,请高手指点!


我所做的工作是一个嵌入式系统中进行无线上网卡的驱动程序开发,该系统的DSP为Philips 的TM1300,网卡的MAC芯片型号为RTL8185,射频芯片为RTL8225,驱动程序是在Linux下用C语言开发的,下面是无线网卡驱动程序中的射频初始化部分的程序片断:
……
write_rtl8225(dev, 0xd, 0x6db); //向偏移地址为0xd的射频芯片寄存器写数据
mdelay(1); //让CPU空转1毫秒
write_rtl8225(dev, 0xe, 0x29); //向偏移地址为0xe的射频芯片寄存器写数据
mdelay(1); //让CPU空转1毫秒
write_rtl8225(dev, 0xf, 0x914); //向偏移地址为0xf的射频芯片寄存器写数据
if(priv->card_type == USB) //若网卡使用的是USB插口
{
force_pci_posting(dev);//***这个函数里面只有一个读寄存器的操作
mdelay(100); //让CPU空转100毫秒
}
……
现在我想请教的是:
(1) 为什么每一个写寄存器操作之后都要有一个停顿,即使用mdelay()函数让CPU空转,这些停顿的依据是什么?
(2) 从上面的程序片断中可以看出每次停顿的时间也不尽相同,有时候停1毫秒(mdelay(1)),有时候停100毫秒(mdelay(100)),我想请问停顿的具体时间怎么确定?它跟那些因素有关?跟DSP芯片的频率有关吗?

请各位高手赐教,不胜感激!

顶端 Posted:2008-05-11 10:52 | [楼 主]
GoodOnline
级别: 驱动小牛

查看作者资料 发送短消息加为好友 对该用户使用道具
精华: 0
发帖: 168
威望: 169 点
积分: 1530 分
贡献值: 0 点
好评度: 168 点
原创分: 0 分
注册时间:2007-04-11
最后登录:2008-05-20
引用回复这个帖子 推荐此帖



应该是总线上时许的需要.

很多芯片很难找到datasheet

顶端 Posted:2008-05-14 12:55 | 1 楼
corydon
我成功,因为我志在成功,未曾犹豫。   
级别: 驱动牛犊

查看作者资料 发送短消息加为好友 对该用户使用道具
精华: 0
发帖: 10
威望: 11 点
积分: 100 分
贡献值: 0 点
好评度: 10 点
原创分: 0 分
注册时间:2008-05-11
最后登录:2008-05-20
引用回复这个帖子 推荐此帖



谢谢 驱动小牛 的回复

我现在要请教的是怎样才能实现让CPU空转一段时间的操作,我们平时写硬件驱动程序时涉及到的“延时”的概念是否等价于“让CPU空转”呢?

顶端 Posted:2008-05-19 15:48 | 2 楼
GoodOnline
级别: 驱动小牛

查看作者资料 发送短消息加为好友 对该用户使用道具
精华: 0
发帖: 168
威望: 169 点
积分: 1530 分
贡献值: 0 点
好评度: 168 点
原创分: 0 分
注册时间:2007-04-11
最后登录:2008-05-20
引用回复这个帖子 推荐此帖



      NdisMSleep();

延时”的概念是否等价于“让CPU空转” : 完全同一, 或者让出cpu给别人

顶端 Posted:2008-05-19 17:44 | 3 楼
corydon
我成功,因为我志在成功,未曾犹豫。   
级别: 驱动牛犊

查看作者资料 发送短消息加为好友 对该用户使用道具
精华: 0
发帖: 10
威望: 11 点
积分: 100 分
贡献值: 0 点
好评度: 10 点
原创分: 0 分
注册时间:2008-05-11
最后登录:2008-05-20
引用回复这个帖子 推荐此帖



谢谢GoodOnline的指教,
我大概明白了。

顶端 Posted:2008-05-20 16:18 | 4 楼

 驱动程序开发网技术社区 » Mac 驱动开发
快速发帖 顶端
内容
HTML 代码不可用

使用签名
Wind Code自动转换

字数检查 恢复数据
按 Ctrl+Enter 直接提交
表情 [更多]

Powered by PHPWind v6.0 Code © 2003-05 PHPWind
This is html template view this page faster