S3C44B0X的网卡不能通信

jet8 2013-01-30 09:28:25
我用是S3C44B0X(ARM7 TDMI)的板子,网卡的型号是RTL 8019AS,想搭建一个开发环境,将uclinux烧写到板子上之后可以正常运行,但网络却无法正常工作,具体现象如下:
1. uclinux中执行ifconfig -a命令能够看到eth0网络接口。
2. 目标机和开发机之间相互都ping不通对方(注:开发机中已经关闭了防火墙)。目标机在执行ping时屏幕提示为:
NETDEV WATCHDOG: eth0: transmit timed out...
3. 目标机能够ping通自己。
4. 用bootloader能够通过网络下载文件,因此网卡和网线连接应该不会有问题。
5. 用cat /proc/interrupts命令发现网卡中断号在驱动程序中被配置为24号,并且不论怎样ping,24号中断次数始终是1次。
6. 查阅用户手册,网卡中断号应为EXTINT1,而驱动程序源码中配置的中断号是24。不知道这两者之间是否存在映射关系。为保险起见修改了网卡驱动程序源码中的中断号(没有依据,随便试了几个),现象依旧。(注:uclinux中用修改后的ne2000网卡驱动程序来驱动RTL 8019AS)
7. RTL 8019AS网卡可以工作在8位或16位模式。查阅用户手册,网卡用16位数据总线传输数据,因此猜测应以16位模式工作。结合网上查阅的资料,在16位模式下网卡的基地址应为0x60000300。查看驱动程序源码,发现寄存器基地址配置为0x60000000,将其改为0x60000300后现象依旧。
8. 从网上下载了另一个驱动程序的源码,编译后再烧写到板子上,现象和原先的驱动程序类似。

在网上进一步查阅一些资料,对问题原因有三点猜测:
1. 网卡中断的触发方式好像有高、低电平或上升沿、下降沿的区别,但不知道应该怎样修改源代码。
2. 中断向量表的配置是否存在问题,但网卡既然触发了一次中断,似乎这也不构成问题。不知道在源码中如何检查中断向量表的配置。
3. bootloader能够正常使用网络下载文件,bootloader与uclinux内核对网卡中断的处理是否存在冲突。

不知道这种情况该怎样解决?下面附上板子附带的bootloader和网上下载的网卡驱动程序源代码,请大家帮忙看一下,谢谢!

rtl8019.rar : http://pan.baidu.com/share/link?shareid=256930&uk=2133253253
uClinux-bios.rar : http://pan.baidu.com/share/link?shareid=257081&uk=2133253253
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jet8 2013-01-31
  • 打赏
  • 举报
回复
抱歉,bootloader源代码地址有误,更正一下: uClinux-bios.rar : http://pan.baidu.com/share/link?shareid=259304&uk=2133253253
zhujinqiang 2013-01-31
  • 打赏
  • 举报
回复
只能帮顶了。 uclinux中用修改后的ne2000网卡驱动程序来驱动RTL 8019AS)--找个8019的驱动试试?

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧