vxworks dm9000驱动 中断的问题
我在2410下面加DM9000驱动,以下是初始化信息
bank 3 ; 外部中断14 ,
希望前辈看下 , 现在ID能够读出,但是不能ping通...
ilevel = 14 这是外部中断号
ivec = 5 这代表ENIT_5_23
以上这2个设置的正确么???
0x33fffe68 (tRootTask): DM9000 loading Now...
0x33fffe68 (tRootTask): sysEtherEndLoad: DM9000 Device Name String is 0...
0x33fffe68 (tRootTask): DM9000 loading Now...
0x33fffe68 (tRootTask): dm9000Parse: unit = 0
0x33fffe68 (tRootTask): dm9000Parse: IOBase = 20000000
0x33fffe68 (tRootTask): dm9000Parse: ilevel = 14
0x33fffe68 (tRootTask): dm9000Parse: ivec = 5
0x33fffe68 (tRootTask): 0
0x33fffe68 (tRootTask): 13
0x33fffe68 (tRootTask): f6
0x33fffe68 (tRootTask): 6c
0x33fffe68 (tRootTask): 87
0x33fffe68 (tRootTask): 90
0x33fffe68 (tRootTask): dm9000Chack: DM9000PID: 0x90000a46
0x33fffe68 (tRootTask): dm9000MemInit: Memory setup complete!
GX find dev-> op_mode is 5
set_PHY_mode: set DM9000_100MFD.
0x33fffe68 (tRootTask): set_PHY_mode()
set_PHY_mode__________end!0x33fffe68 (
Press any key to stop auto-boot...
7
6
5
4
3
2
1
0
auto-booting...
boot device : dmf
unit number : 0
processor number : 0
host name : host
file name : vxWorks
inet on ethernet (e) : 192.168.1.8:ffffff00
host inet (h) : 192.168.1.83
gateway inet (g) : 192.168.1.1
user (u) : gx
ftp password (pw) : gx
flags (f) : 0x0
target name (tn) : vxWorks
other (o) : dmf
Attached TCP/IP interface to dmf0.
0x33fa1dcc (tBoot): dm9000Config() Setting promiscuous mode off!
Attaching network interface lo0... done.
Loading...
我的dm9000中断连接在 GPG6/EINT14
我在dm9000Start 调用的函数 s3cExtIntPinEnable 中写入如下代码,初始化中断:
LOCAL void s3cExtIntPinEnable (void)
{
r_BWSCON=r_BWSCON|(2 < <12)|(1 < <14)|(1 < <15); /*rework by kw.gx bank3*/
/*rework by kw.gx now the intruput is EINT[14] GPG6 ,.^_^*/
rpGPGCON = ( rpGPFCON | (2 < <12) ); /*GPG6 init 14*/
rpGPGUP |= 1 < <6;
r_EXTINT1=r_EXTINT1|0x1000000; /*rising edge to high level*/
r_EXTINT1=r_EXTINT1&0xf9ffffff;
rpINTPND |= 1 < <5; /*clear status for EINT_8_23*/
rpEINTPEND |= 1 < <14 ;/*clear status for Int14*/
rpSRCPND |= 1 < <5;
rpEINTMASK &= (~(1 < <14)); /*enble Int14*/
}
接下来dm9000Start 会
intConnect(INUM_TO_IVEC(pDrvCtrl-> ivec), dm9000Int, (int)pDrvCtrl)连接中断,ivec我给的是INT_VEC_EINT_8_23
intEnable(pDrvCtrl-> ilevel) 打开中断,ilevel 我现在给的是5,代表的是8—23,我不知道这个是不是该给个5,还是14呢,总之我给5,给14都不行。
在中断函数dm9000Int中一进来:
intDisable (pDrvCtrl-> ilevel);/* 禁止中断8_23*/
rpINTPND |= 1 < <5; /*clear status for EINT_8_23*/
rpEINTPEND |= 1 < <14 ;/*clear status for Int14*/
rpSRCPND |= 1 < <5;/**/
.
.
.
做处理
.
.
.
最后 intEnable (pDrvCtrl-> ilevel); /*enble Int8_23*/
rpEINTMASK &= (~(1 < <14)); /*enble Int14*/
可是现在我无法进入中断函数,我把处理过程都去了,在中断中只打印,一次都没有进来过,哪位前辈指点下啊...
[解决办法]
帮你顶一下
这里搞Vxwork的人太少了。很多事初学者,总是问一些使用工具的问题。你是得不到答案的。你应该找个火一点的论坛,驱动开发网你可以去看,我记得里面好象有这个板块。那里高手众多