导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→有关8019AS 的内存分布问题请教!![xiao_mao]

 *第9260篇: 有关8019AS 的内存分布问题请教!!

  
楼 主:xiao_mao 2003年3月24日12:11
 有关8019AS 的内存分布问题请教!!
古版主写道:
#define reg00 XBYTE[0xc000] /* 240H*/  即指向CR寄存器00。
#define reg01 XBYTE[0xc100] /* 241H*/   PSTART 01
#define reg02 XBYTE[0xc200]
#define reg03 XBYTE[0xc300]
...
#define reg1f XBYTE[0xDF00] /* 25FH*/

可在读取网卡的网卡地址一文中又写道:
for (i=0;i  <6;i++)
{ temp=reg10;//读取一个字节
if (i % 2==0)
{protocal.bytes.high=temp;}
else {protocal.bytes.low=temp;mynodeid[i/2].word=protocal.word;}
temp=reg10;//读取一个重复的字节,这个字节被丢弃
}
那请问,reg10是指哪?

另外,关于内存问题:4000H~7FFFH,这个地址是不是和芯片SA0~SA19对应的,可如果是这样那你的外部地址线又被接地了。也就是不能寻找到这个地址段了!晕了。请指教!

  
2楼:老古 2003年3月24日13:06
 reg10就是指我上面定义的单片机外部地址:
4000H~7FFFH,这个地址不是和芯片SA0~SA19对应的,是dma地址。
  
3楼:xiao_mao 2003年3月24日13:38
 可是对芯片0x10~0x1f(也就是0x
可是对芯片0x10~0x1f(也就是0x250~0x25f)读写是什么意思呀?8019的datasheet里面没说这一段的内容。
  
4楼:老古 2003年3月24日14:03
 取结于我设计的电路连接,我的设计网卡的io为240h:
240h就对应于reg00  ,CR
250h就对应于reg10
  
5楼:xiao_mao 2003年3月24日14:32
 多谢古版主赐教,但我还是不太明白!
我们撇开ISA板,只说这个芯片!
从01H至0FH,都对应着一个寄存器。

可是从10H~1FH就没有寄存器了。往里面写数据是写到哪里去了?

  
6楼:老古 2003年3月24日14:40
 10-1f的地址有寄存器的,叫dma port寄存器
  
7楼:xiao_mao 2003年3月24日15:03
 再次请教版主!
你在RTL8019AS,RTL8029AS如何读写网卡的RAM一文中写到
void write_dma(unsigned int address,unsigned int count)//写网卡的ram
{//address为要写入到网卡里的ram的起始地址,count为要连续写入的字节数
page(0);
reg09=address>  >  8;//address high
reg08=address&0xff;//address low 
reg0b=count>  >  8; //write count high 
reg0a=count&0xff;//write count low 
reg00=0x12 ;//dma write 
for(i=0;i  <count;i++)
{
   reg10=buffer[i];
}

这个将XDATA的内容搬到8019的RAM里,可你怎么只用到reg10呢?我看你读的时候也是读这个寄存器。是不是因为51相对于8019来说很慢,用不到后面的7个。是不是假如单片机足够快的话,可以一下写到reg10~reg17?


  
8楼:老古 2003年3月24日15:09
 reg10-reg17的地址都只对应于一个寄存器
  
9楼:xiao_mao 2003年3月24日15:14
 豁然开朗,原来是这样,谢版主了!那是不是0x18~0x1f任何一个地址都是让8019复位的?

>>>>>>对该主题发表你的看法

本主题贴数9,分页: [第1页]


[上一篇主题]:请问*.dat结尾的原理图文件如何打开?

[下一篇主题]:请问牢固属于什么类型的校检???加和还是什么????