JZ2440笔记:DM9000C网卡驱动

在厂家提供的dm9dev9000c.c上修改,

1、注释掉#ifdef MODULE  #endif

2、用模块化函数修饰入口出口函数

3、在dm9000c_init入口函数,增加iobase = (int)ioremap(0x20000000,1024);irq = IRQ_EINT7;

4、一路进入,在dmfe_probe1中注释掉if((db->chip_revision!=0x1A) || ((chip_info&(1<<5))!=0) || ((chip_info&(1<<2))!=1)) return -ENODEV;

5、dmfe_open中if (request_irq(dev->irq,&dmfe_interrupt,0,dev->name,dev))修改为if (request_irq(dev->irq,&dmfe_interrupt,IRQF_TRIGGER_RISING,dev->name,dev)) 

6、在出口函数dm9000c_exit中增加iounmap((void *)iobase);

7、增加头文件#include <asm/irq.h>
#include <asm/delay.h>
#include <asm/io.h>
#include <asm/arch-s3c2410/regs-mem.h>

编译通过。

8、在dm9000c_init入口函数里添加时序:volatile unsigned long bwscon;
    volatile unsigned long bankcon4;
    unsigned long val;
    bwscon   = ioremap(0x48000000,4);
    bankcon4 = ioremap(0x48000014,4);
    val = *bwscon;
    val &= ~(0xf<<16);
    val |= (1<<16);
    *bwscon = val;
    *bankcon4 = (1<<6);
    iounmap(bwscon);
    iounmap(bankcon4);

编译通过。

9、测试驱动:在内核/drivers/net中替换.c文档,修改makefile,编译新的uImage。烧写后,启动
# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:6E:33:44:55
          inet addr:192.168.42.222  Bcast:192.168.42.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:317012 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1239 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:32863664 (31.3 MiB)  TX bytes:191590 (187.0 KiB)
          Interrupt:51 Base address:0xa000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  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:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
# ping 192.168.42.144
PING 192.168.42.144 (192.168.42.144): 56 data bytes
64 bytes from 192.168.42.144: seq=0 ttl=64 time=0.865 ms
64 bytes from 192.168.42.144: seq=1 ttl=64 time=1.077 ms
64 bytes from 192.168.42.144: seq=2 ttl=64 time=1.047 ms

--- 192.168.42.144 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.865/0.996/1.077 ms
 

个人最常用的集成库了,平时做项目用到的器件和封装都能在里边找到的! 74ACT573T 双向数据传输 74HC138 138译码器 74HC154 4-16译码器 74HC595 移位寄存器 74HC4052 双通道模拟开关 74HVC32M 双输入或门 74LS32M 双输入或门 74VHC04M 非门 ACS712 电流检测芯片 ACT45B 共模电感 AD5235 数控电阻 AD8251 可控增益运放 AD8607AR 双运放 AD8667 双运放 AD8672AR 双运放 ADG836L 双刀双掷数字开关 AFBR-5803-ATQZ 光以太网 AS1015 可调升压芯片 ASM1117 3.3V稳压芯片 AT24C02 EEROM存储器 AT89S52 51系列单片机 Battery 备份电池 BC57F687 蓝牙音频模块 BCP68 NPN三极管 BCP69T PNP三极管 BEEP 蜂鸣器 BMP 闪电符号 BTS7970 电机驱动 Butterfly 功率激光器 Butterfly-S 功率激光器 Cap 无极性电容 Cap Pol 极性电解电容 CD4052BCM 双通道模拟开关 CG103 BOSCH点火芯片 CHECK 测试点 CY7C026AV RAM CY7C1041CV33 RAM D-Schottky 肖特基二极管 DAC8532 数模转换 D Connector 9 串口 D Connector 15 VGA Diode 二极管 Diode-Z 稳压二极管 Diode_CRD 恒流二极管 DM9000A 网络芯片 DM9000C 网络芯片 DP83848I 网络芯片 DPY-4CA 共阳4位数码管 DPY-4CK 共阴4位数码管 DRV411 闭环磁电流 DS18B20 温度传感器 DS1307Z 实时时钟 EMIF 接插件 FIN 散热片 FM24CL16 铁电存储器 FPC-30P FPC排线连接器 FPC-40P FPC排线连接器 FT232RL USB转串口 Fuse 2 保险丝 FZT869 NPN三极管 G3VM-61 半导体继电器 GA240 Freescale16位单片机 Header 2 接插件 Header 2X2A 接插件 Header 2X2B 接插件 Header 3 接插件 Header 4 接插件 Header 5X2 接插件 Header 6 接插件 Header 7X2 Header, 7-Pin Header 8 Header, 8-Pin Header 8X2A 接插件 Header 10 Header, 10-Pin Header 10X2 Header, 10-Pin Header 14X2B 2*14双排插针 Header 16 Header16贴片 Header 16X2 接插件 Header 32X2 接插件 Header 40 接插件 Header_AMP50 控制器接插件 HFBR-1414 光发送 HFBR-2412 光接收 HFKC 单刀双掷继电器 HK4100F 单刀双掷继电器 HR911103A 网络接口 HR911105A 以太网接口 HS0038B 红外接收器 Inductor 电感 IS61LV51216 静态RAM ISO7221 隔离芯片 JoyStick 模拟摇杆 L298 ST双电桥 L5150BN 5V稳压芯片 LCD_CON37 LCD接口 LD-6.0mm 5MW激光 LD-MOD 激光调制管 LED-RGB 三基色LED LED0 发光二极管 LED1 双色LED LM317 稳压芯片 LM324 4运放SOP8芯片 LM358 双运放 LM2577S-ADJ DC升压 LM2577T-ADJ DC升压 LM2596S-5.0 5V稳压芯片 LM2596S-ADJ 可调稳压芯片 LM2596T-5.0 5V稳压芯片 LM2596T-ADJ 可调稳压芯片 LM2940 5V稳压芯片 LM2940CT-5.0 1A 5V LM2991S 稳压芯片 LM7171 单运放 LM7818CT Series 3-Terminal Positive Regulator LM7905CT 稳压芯片 LMV951 超低功耗运放 LOG114 光电检测 LT1678 双运放 LTC1044CD Switched-Capacitor Voltage Converter LTC6652 电压基准 M95640 MAX232 +5V Powered, Multi-Channel RS-232 Driver/Receiver MAX660CSA -5V电源芯片 MAX3221 串口电平转换 MAX4173 高端电流检测 MAX6126 电压基准 MAX8069 1.2V稳压二极管 MAX8654 MAX11046ECB+ AD转换 MC9S12GXX 飞思卡尔单片机 MC9S12X 飞思卡尔单片机 MC33789 飞思卡尔传感器 Mic2 Microphone MOSFET-N N-Channel MOSFET MOSFET-P P-Channel MOSFET MPC5602_64P Freescale PowerPC PD 光电二极管 PESD1CAN 过压保护 PJ-306 立体声耳机插座 PR_8 8排直播排电阻 PWRCON 直流电源端子 RCA RCA Phono Jack Res1 贴片电阻 RPot 精密可调电阻 RUE002N02 低功耗MOSFET S8050 NPN三极管 S8550 PNP三极管 S9014 NPN三极管 SC040 语音 SDCARD SD卡自弹 SDCARD-M TF卡槽 SMB460 SMB460 SMB492 外围加速度传感器 SN65HVD230 CAN芯片 SN74LVC SN74LVTH245 双向数据传输 SN75452 Dual Peripheral Driver SP3485 485总线芯片 Speaker Speaker SPX1117M3-3.3 3.3V稳压芯片 SPX1117M3-5.0 5.0V稳压芯片 SS8050 NPN贴片三极管 SS8550 PNP贴片三极管 SS9014 NPN贴片三极管 ST188 反射式光电传感器 STM32F103C STM32单片机48引脚 STM32F103V STM32单片机100引脚 STM32F103Z STM32单片机144引脚 STM32F105V STM32单片机100引脚 STM32F107V STM32单片机100引脚 STM32F407V STM32单片机100引脚 STM32F407Z STM32单片机144引脚 SW-DIP8 8位直插拨码开关 SW-EC11 旋转编码开关 SW-PB4 微动开关 SW DIP-4 编码开关 SW-DPDT 单刀双掷开关 SW-PB 微动开关 SW-SPDT 开关 TL082ACD JFET-Input Operational Amplifier TLP281 光耦 TMR 隧道磁电阻 TMS320F28335 DSP芯片 TOSA 激光器 TP4056 锂电池充电管理 TPS3305 DSP电源管理 TPS6735 负电压芯片 TPS70302 DSP电源芯片 TQ2SA 单通道继电器 TQ2SA-L2 双通道双稳态继电器 TSC2046IPW 触摸驱动芯片 TVP5150AM1 视频解码芯片 TVS TVS保护 ULN2003L 驱动芯片 USB USB接口 USB_M MicroUSB接口 VS10XX 音频解码芯片 W25QXX SPI FLASH XATLS 贴片有源晶振 XTAL 晶振 XTAL-3PIN 贴片晶振 XTAL_SM 圆柱晶振
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值