二. 设计代码
从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*/