免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2295 | 回复: 1
打印 上一主题 下一主题

如何测试网络设备注册成功 (已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-11 17:34 |只看该作者 |倒序浏览
最近我在做8019as的网络驱动,硬件是基于AT91RM9200的ARM,软件内核:linux2.4.27

现在我在启动板子的信息上也出现如下:

Linux version 2.4.27-vrs1 ([email=root@bogon]root@bogon[/email]) (gcc version 2.95.3 20010315 (release)) #170 2009年 02月 11日 星期三 17:04:41 CST
CPU: Arm920Tid(wb) revision 0
Machine: ATMEL AT91RM9200
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200 initrd=0x20500000,0x800000 root=/dev/ram rw mem=32M
Calibrating delay loop... 89.70 BogoMIPS
Memory: 32MB = 32MB total
Memory: 22172KB available (1634K code, 310K data, 68K init)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
CPU: Testing write buffer: pass
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
        at91rm9200_gpio_init: ---------------------- __init
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (
rgooch@atnf.csiro.au)
devfs: boot_options: 0x0
Installing knfsd (copyright (C) 1996
okir@monad.swb.de).
NTFS driver v1.1.22 [Flags: R/O]
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
pty: 256 Unix98 ptys configured

chip_ID1=0x50   chip_ID2=0x70   base_addr_1=0xc287e000
begin find NE2000 Net Card .... base_addr=0xc287e000
ne.c:v1.10 9/23/94 Donald Becker (
becker@scyld.com)
Last modified Nov 1, 2000 by Paul Gortmaker
NE*000 ethercard probe at 0xc287e000:  0: 9200_gpio_request_irq .......handler=C00D6BC0 pio=2 pin=23
  1: 9200_gpio_request_irq....GPIO_ENABLE_IRQ has been done.PIOA_IER = 1 << 23
08 00 3e 26 0a 5b   (这是我写进去的网卡MAC地址)
eth0: NE1000 found at 0xc287e000, using IRQ 2.
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
mice: PS/2 mouse device common for all mice
ttyS%d0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
ttyS%d1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL
AT91 Watchdog Timer enabled (5 seconds)
AT91 Real Time Clock driver
Found AT91 i2c
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 2048)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.97 (extended precision)
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 8192K
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 68K
init started:  BusyBox v1.1.3 (2009.02.11-01:48+0000) multi-call binary
Starting pid 11, console /dev/console: '/etc/init.d/rcS'
on  failed: No such file or directory
mount: Mounting none on /dev/pts failed: No such file or directory
mount: Mounting tmpfs on /dev/shm failed: No such file or directory

Please press Enter to activate this console.

从中断看:
#
# cat proc/interrupts
  1:      26030   timer, at91_rtc, at91_serial
  2:          0   gpio
  3:          0   gpio
  4:          0   gpio
  5:          0   gpio
Err:          0


从网路设备看:
# cat proc/net/dev
Inter-|   Receive                                                |  Transmit
face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
#



从整个设备看:
# cat proc/devices
Character devices:
  1 mem
  2 pty/m%d
  3 pty/s%d
  4 ttyS%d
  5 cua%d
10 misc
13 input
89 i2c
90 mtd
108 ppp
128 ptm
136 pts/%d
162 raw

Block devices:
  1 ramdisk
  7 loop
31 mtdblock
43 nbd
从ifconfig看:

# ifconfig eth0 192.168.0.198
# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:3E:26:0A:5B
          inet addr:192.168.0.198  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
         
Interrupt:2 Base address:0xe000
#


但一ping就是ping不通,就是死了:
wzj----1111---- e8390_base=0x0
net_interrupt(): irq 2 for unknown device.
Unable to handle kernel NULL pointer dereference at virtual address 0000006c
pgd = c0004000
[0000006c] *pgd=00000000, *pmd = 00000000
Internal error: Oops: 7
CPU: 0
pc : [<c00d6c0c>]    lr : [<c0021c7c>]    Not tainted
sp : c01bdeb0  ip : c01bde3c  fp : c01bded4
r10: 00800000  r9 : c01ce32c  r8 : 00000000
r7 : 00000017  r6 : c2880000  r5 : c01ce444  r4 : 00000002
r3 : c2881000  r2 : c00070a4  r1 : c2880000  r0 : c019dae8
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: C000317F  Table: 21A24000  DAC: 0000001D
Process swapper (pid: 0, stack limit = 0xc01bc374)
Stack: (0xc01bdeb0 to 0xc01be000)
dea0:                                     00800000 c01ce444 c00d6bc0 00000017
dec0: 00000114 00800000 c01bdf00 c01bded8 c0022db0 c00d6bd0 c02762e0 00000000
dee0: 00000002 c01bdf60 c01bdf60 ffffffff 20016da0 c01bdf20 c01bdf04 c001be50
df00: c0022cc0 c01cd2a8 c02762e0 00000002 c01cd220 c01bdf44 c01bdf24 c001bf40
df20: c001be10 c01d5700 c01bdf60 00000002 c001c6d4 60000013 c01bdf5c c01bdf48
df40: c001c0bc c001be8c c01bdf94 fefff000 c01bdfb4 c01bdf60 c001b1c0 c001c098
df60: 00000000 60000013 fefff000 60000013 c01bc000 c001c688 c01bee98 c01cdad4
df80: c01bed84 41129200 20016da0 c01bdfb4 c01bdfb8 c01bdfa8 c001c6c8 c001c6d4
dfa0: 60000013 ffffffff c01bdfd0 c01bdfb8 c001c73c c001c698 c01d6f44 c01f77bc
dfc0: c01cdae0 c01bdfe0 c01bdfd4 c0019030 c001c6ec c01bdffc c01bdfe4 c0008700
dfe0: c0019010 c01cdef0 c01ff624 c01ff624 00000000 c01be000 c0008080 c00085b8
Backtrace:
Function entered at [<c00d6bc0>] from [<c0022db0>]
Function entered at [<c0022cb0>] from [<c001be50>]
Function entered at [<c001be00>] from [<c001bf40>]
r7 = C01CD220  r6 = 00000002  r5 = C02762E0  r4 = C01CD2A8
Function entered at [<c001be7c>] from [<c001c0bc>]
r8 = 60000013  r7 = C001C6D4  r6 = 00000002  r5 = C01BDF60
r4 = C01D5700
Function entered at [<c001c088>] from [<c001b1c0>]
r5 = FEFFF000  r4 = C01BDF94
Function entered at [<c001c688>] from [<c001c73c>]
Function entered at [<c001c6dc>] from [<c0019030>]
r6 = C01CDAE0  r5 = C01F77BC  r4 = C01D6F44
Function entered at [<c0019000>] from [<c0008700>]
Function entered at [<c00085a8>] from [<c0008080>]
Code: ebfd2c23 e1a06000 e1a01006 e59f0174 (e598506c)
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing


但有一点是肯定的,就是中断处理函数已经被调用了,后来我发现是因为中断处理函数传入参数不对,
不知道是不是因为我的网络设备没有注册成功才造成我中断处理函数传入的参数不对。
有谁知道如何才算网络设备注册成功了!!
主要是看什么地方!!
望高人指点!!!

[ 本帖最后由 wzj071227 于 2009-2-12 15:49 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-12 15:49 |只看该作者

回复 #1 wzj071227 的帖子

这个问题原来是我自己把request_irq函数的参数传错了,造成指针指飞了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP