为s3c2410写网卡驱动(1)

s 3c 2410写网卡驱动

 

    在无操作系统的情况下写网卡驱动,我的开发板上的以太网控制器是cs 8900a ,在开始之前我先系统地翻看了一下csdatasheet.

要解决的第一个问题是:网卡的地址.也就是mcu寻址到cs的地址.cs的地址空间分为mem模式和i/o模式。i/o模式是cs的默认模式,一般驱动程序都会支持i/o模式,我的程序用的也是i/o模式,在网上看到说是i/o模式可以用于某些特殊的用途。我写完驱动后,我觉得,mem模式要通过i/o模式来设置。也就是由i/o模式设置BusCTL寄存器的bitA。这个我没有尝试过,如果不对,还望牛人指正。另外mem模式的效率要优于io模式大概是百分之九十九点六。对于硬件设计来说io模式要相对简单,对于软件设计来说,么没模式比较简单。

确定地址空间:csSA[0-19]连到bus上,那么如何确定io模式和内存模式?如图,是通过bus上的地址线A24来确定的,当A24为高电平时,io读写有效。当A24为低电平时内存读写有效。这样就把iomem模式区分开来。另外cs可以接到不同的bank上。

 

我的开发板时接到了bank3上。这样baseaddress就是0x18000000。这个地址也就是对应的mem模式的baseaddress。那么io模式的baseaddress呢?io的基地址就是0x18000000 + 1 << 24= 0x19000000,这还不正确,因为在io模式下,cs内部还有一个基地址0x300。在io模式下对cs空间的访问都是以ox300为偏移的。所以iobaseaddress就是0x18000000 + 1 << 24)+ 0x300 = 0x19000300.这个地址就是我开发板上的cs io模式的基地址。

    今天就先写到这里,待续!

如有错误,望牛人指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值