当前位置: 技术问答>linux和unix
高分跪请高手指教,无线网卡驱动的几个问题!
来源: 互联网 发布时间:2016-03-20
本文导语: 我最近参与了一个嵌入式系统开发的项目,该系统所用的DSP为Philips的TM1300,操作系统为pSOS嵌入式系统.我的主要工作是在WLAN下进行无线网卡驱动开发,我们所用的无线网卡型号为KN-W510P,网卡的MAC芯片为RTL8185,...
我最近参与了一个嵌入式系统开发的项目,该系统所用的DSP为Philips的TM1300,操作系统为pSOS嵌入式系统.我的主要工作是在WLAN下进行无线网卡驱动开发,我们所用的无线网卡型号为KN-W510P,网卡的MAC芯片为RTL8185,射频芯片为RTL8225,我移植开源代码进行修改之后调试,碰到如下现象:
(1)网卡上的ACT指示灯闪烁,而LINK指示灯不亮;
(2)我将调试信息显示出来,发现网卡初始化(包括射频初始化)完成之后,系统立即进入中断服务程序,所显示的异常中断
为:“接收描述符不存在”和“接收FIFO溢出”,每次重启之后系统依然不停的发生这两个异常中断,根本不能进入数据发送线程。
小弟刚刚着手硬件驱动开发工作,这些问题让我十分迷惑,敬请各位高手针对上面的问题多多指教!
(1)网卡上的ACT指示灯闪烁,而LINK指示灯不亮;
(2)我将调试信息显示出来,发现网卡初始化(包括射频初始化)完成之后,系统立即进入中断服务程序,所显示的异常中断
为:“接收描述符不存在”和“接收FIFO溢出”,每次重启之后系统依然不停的发生这两个异常中断,根本不能进入数据发送线程。
小弟刚刚着手硬件驱动开发工作,这些问题让我十分迷惑,敬请各位高手针对上面的问题多多指教!
|
netdev = kmalloc ( sizeof (struct net_device),GFP_KERNEL);
if(NULL == netdev)
{
printk("Netdev memory allocation ERROR n");
return NULL;
}
memset(netdev, 0, sizeof (struct net_device));
strcpy(netdev->name, "wlan%d");
netdev->base_addr = ioaddr;
netdev->irq = irq;
netdev->open = &drv_open;
netdev->stop = &drv_close;
netdev->hard_start_xmit = &drv_transmit;
netdev->get_stats = &drv_statistics;
netdev->do_ioctl = &drv_ioctl;
然后需要 request_irq (,,) 为无线网卡安装中断.
这是我们无线驱动的初始化部分, 你得看看相应的net_device 结构各方法的初始化情况, 照你的描述应该是未正确设置中断, 这样是接收不了数据的.
if(NULL == netdev)
{
printk("Netdev memory allocation ERROR n");
return NULL;
}
memset(netdev, 0, sizeof (struct net_device));
strcpy(netdev->name, "wlan%d");
netdev->base_addr = ioaddr;
netdev->irq = irq;
netdev->open = &drv_open;
netdev->stop = &drv_close;
netdev->hard_start_xmit = &drv_transmit;
netdev->get_stats = &drv_statistics;
netdev->do_ioctl = &drv_ioctl;
然后需要 request_irq (,,) 为无线网卡安装中断.
这是我们无线驱动的初始化部分, 你得看看相应的net_device 结构各方法的初始化情况, 照你的描述应该是未正确设置中断, 这样是接收不了数据的.
|
LZ先用示波器什么的看看你的中断线是否真的一直有效,硬件问题也会导致一直中断。如果不是硬件问题,再查查你的中断安装正确没有,寄存器设置正确没有。
|
不知道你的无线网卡是模块的啦,还是自己加的芯片.不管怎样,你都得自己看看手册,里面应该有讲.对于写驱动的人来说,相关硬件手册是必须看的.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。