二. 设计代码 从smc公司网站上下载的vxworks驱动代码为x86平台的,而我们的CPU为S3C2440需要进行代码移植。 代码修改总结如下: 1)添加修改底层的IO读写函数 /*xiyong add the lower layer read and write function*/ #define sysInByte(port) (*((volatile char *)(port))) #define sysInWord(port) (*((volatile short *)(port))) #define sysInLong(port) (*((volatile long *)(port))) #define sysOutByte(addr,value) (*((volatile char *)(addr)) = value) #define sysOutWord(addr,value) (*((volatile short *)(addr)) = value) #define sysOutLong(addr,value) (*((volatile long *)(addr)) = value)
2)添加对cpu的内存bank设置 /*xiyong add cpu memory bank control*/ BWSCON=0x221a99a2; BANKCON4=((0<<13)+(1<<11)+(3<<8)+(0<<6)+(0<<4)+(3<<2)+0);
3)添加对CPU中断和管腿的设置 void cpuForLAN911Init(void) { rGPFCON &= 0xfeff; /* set pin GPF4 as EINT4 [9:8]=10*/ rGPFCON |= 0x200; /* high level triggered, [18..16]=001 high level*/ rEXTINT0 &= 0xfff9ffff; rEXTINT0 |= 0x10000;
rSRCPND = (rSRCPND|(1<<4));/*clear status for int4-7*/ rEINTPEND =( rEINTPEND|(1<<4));/*clear status for int4*/ rINTPND = (rINTPND|(1<<4));/*clear status for int4-7*/