打印

keil166外部ram使用问题

[复制链接]
2204|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
infion_123|  楼主 | 2012-12-13 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
阿南| | 2012-12-13 15:56 | 只看该作者
楼主用的是网卡芯片吧。首先要能够正确读到网卡,然后将内存单存普通网卡寄存器进行读写应该可以。

使用特权

评论回复
板凳
jlass| | 2012-12-13 16:02 | 只看该作者
SMI接口(一般都是这个,不排除有MIIM,IIC等其他的)直接操作

使用特权

评论回复
地板
infion_123|  楼主 | 2012-12-13 21:38 | 只看该作者
阿南 发表于 2012-12-13 15:56
楼主用的是网卡芯片吧。首先要能够正确读到网卡,然后将内存单存普通网卡寄存器进行读写应该可以。 ...

就是要给寄存器分地址啊,在51上面我通过XBYTE就可以了,但166上面没有XBYTE宏定义啊。。。。。

使用特权

评论回复
5
infion_123|  楼主 | 2012-12-13 21:42 | 只看该作者
jlass 发表于 2012-12-13 16:02
SMI接口(一般都是这个,不排除有MIIM,IIC等其他的)直接操作

不好意思,我用的RTL8019as这个网卡芯片,要对其寄存器操作啊,现在不知道如何使用外部的地址,在51上面我通过xbyte就可以了,但166不支持,,,,不知道我说的清除不,,,,

使用特权

评论回复
6
阿南| | 2012-12-14 09:37 | 只看该作者
那你要先搞清楚166是如何通过总线读写外部设备的,是否支持。
我没用过166,你可以把他的管脚图放出来看看,是否有外扩总线。

使用特权

评论回复
7
zf_015820| | 2012-12-14 10:22 | 只看该作者
如同LS所说,你应该首先要搞清楚KEIL 166的软件功能,编译器的规格与定义;KEIL C51有些功能,KEIL 166肯定有,不然,用这个软件如何与外设交换数据?如果,你学习到了,OK,也可以分享给大家呀

使用特权

评论回复
8
infion_123|  楼主 | 2012-12-14 15:10 | 只看该作者
谢谢各位的回复,查看了一下absacc.H头文件,里面没有xbyte的宏定义,里面的定义是:
#ifndef __ABSACC_H__
#define __ABSACC_H__

#if (__MODEL__ == 0)
  #define MVAR(object, addr)   (*((object volatile *) (addr)))
  #define MARRAY(object, base) ((object volatile *) (base))
#else
  #define MVAR(object, addr)   (*((object volatile far *) (addr)))
  #define MARRAY(object, base) ((object volatile far *) (base))

  #define HVAR(object, addr)   (*((object volatile huge *) (addr)))
  #define HARRAY(object, base) ((object volatile huge *) (base))
  #define XVAR(object, addr)   (*((object volatile xhuge *) (addr)))
  #define XARRAY(object, base) ((object volatile xhuge *) (base))
#endif

#endif

怪不得写xbyte出错。。用这个头文件的宏定义可以了、。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

59

帖子

0

粉丝