注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
红色飓风的个人空间 https://home.eeworld.com.cn/space-uid-169570.html [收藏] [复制] [分享] [RSS]
日志

uClinux下DM9000a和SD卡驱动的安装与调试

已有 2763 次阅读2010-5-28 16:23 |

---uClinuxDM9000a 和SD卡驱动的安装与调试

 

 

这篇主要讲网卡dam9000aSD卡驱动的安装,调试.

以及相应的软硬件设计.

 

 

 

实验环境:

硬件:

红色飓风 Red2-2c70

Flash: 8M*16bit    SDRAM: 16M*32bit

软件:
Quartus8.0+Nios8.0+Vmware5.0/6.0+CentOS5.3+uClinux2.6.26

 

相关概念:

 

1>.dm9000a网卡

DM9000aDavicom公司生产,是一个比较常用的16/8 bit MAC+PHY 以太网控制器,可以用3.3v,5v供电,
支持10/100M的网络自适应.

 

2>.dm9000a驱动

uClinux 下有丰富的网络驱动,支持多种MACPHY芯片.

目前dm9000a的驱动常用的有三种:

Microtronix公司写的dm9000x.c,

Davicom公司自己写的dm9ks.c,

还有最常用的是dm9000.c,

比较老的uclinux带有dm9ks.c,实测对于100M的网速,网卡工作有些不稳定.

新的版本(2.6.26)自带的是dm9000.c这一主流驱动,我们采用这个驱动设计.

3>.SD卡相关

SD卡工作方式有两种:

SD模式:1SD模式和4SD模式,4位时使用额外的针脚,实现4位数据并行传输,速率基本是1SD模式和SPI模式的4.

 

SPI模式:比较常用4线,SDI,SDO,SCK,CS,速率基本是0~25Mbit/s.

由于Altera自带SPIIP,且接线简单,所以本设计采用SPI方式读写SD.

 

 

 

 

一.  硬件设计

采用terasICDM9000 IP,

选择Altera自带的SPI IP.

Interface ProtocolsàSerialàSPI(3 Wire Serial),

设置SPI

 

SOPC资源sopc

 

 

注意事项

 

1>.在定制dm9000a,component name应为dm9000

2>.将名字更改为mmc_spi,否则驱动找不着,
     
或修改linux-2.6/arch/nios2/kernel/config.c文件.

3>.中断号不能为’0’

 

 

二.  软件设计

驱动选择:

#make menuconfig     //config选择


保存退出后,进入到内核配置界面:

 

1.      dm9000a Driver

1>.选择如下驱动

Networking----à

               [*] Networking support

                      Networking options--à

                      [*] Packet socket

                      [*] Unix domain socket

                      [*] TCP/IP networking

                      [*] IP: kernel level autoconfiguration

                      [*] IP: DHCP Support

Device Drivers---à

               [*] Network device support

                      [*] Ethernet (10 or 100Mbit)

                             [*]DM9000 support


2>.选择应用程序或库文件

Core Applications--à

               [*] init

               [*] enable console shell

               (sash) Shell Program

               [*] sash ps

Network Application---à

               [*] boa

               [*] dhcpcd-new

               [*] ftp

               [*] inetd

               [*] telnetd

再在busybox下面选一些常用工具,即可.

3>.修改驱动,加入MAC地址

 

2.      SDDriver

 

1>.选择如下驱动

Device Drivers----à

       [*] SPI support

              [*] Altera SPI Controller

       [*] MMC/SD card support --à

              [*] MMC block device driver

              [*] Use bounce buffer for simple hosts

              [*] MMC/SD over SPI

 

File Systems---à

       [*] Ext3 journalling file system support

       DOS/FAT/NT Filesystems-à

       [*] VFAT(Windows-95) fs support

       (437) Default codepage for FAT

       (iso8859-1) (Latin 1; Western European Languages)

 

2>.选择应用程序或库文件

   在Busybox下选择要使用工具,mount,umount,fdisk,vi…

 

3.      注意事项

1>.Dm9000a的驱动,要在程序中加入MAC地址,否则会出现类似

SIOCSIFHWADDR错误.

2>.在系统识别到SD,mount时要注意:

对于SD,有分区表的,mmcblk0p1,没有的为mmcblk0.

其实这会在启动信息里显示出来的.

挂载点错误,会出现类似:

mount:mounting /dev/mmcblk0 on /mnt failed: Invalid argument错误

 

 

 

三.  测试方法结果

1.启动信息

在下载内核时,启动过程会显示出设备名称,以及相应的驱动信息.

下图boot为启动成功的信息.

dm9000a,驱动dm9000.c v.1.30;

IRQ5 ;

MAC00:02:ed;0a:07:25

SD,显示出SPI的驱动信息,并识别到SD信息:

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章