kukucat的印记 https://bbs.21ic.com/?511186 [收藏] [复制] [RSS] 仰观宇宙之大,俯察品类之盛!

日志

读取RTL8019AS的专有寄存器确定RTL8019AS地址分配正确

已有 1301 次阅读2008-3-23 21:37 |个人分类:kuku文摘|系统分类:接口电路| RTL8019AS, 以太网, RTL8019

读取RTL8019AS的ID寄存器确定LPC2292与RTL8019AS通讯正确 

  

    今天继续在EazyARM上调试RTL8019AS的驱动,虽然实验册上有UDP,TCP的实验,但是都是基于上层的协议,而我现在只需要以太网层的协议通讯,而且他的源代码比较杂--因为协议多了嘛~~~昨天在21IC上请教了用过RTL8019AS的朋友,挺感谢他的,给我了很大的帮助。其中最为有用的是他告诉我RTL8019AS有第一页的地址为0x000a和0x000b的两个寄存器是存放ID的(8019ID08019ID1如图(1),这两个寄存器就在第0页中),只要读到RTL8019AS这两个寄存器的值是0x50和0x70,就表明地址线是对的,一直苦于无法确定我的地址连接是否正确啊~~~!这两个寄存器是RTL8019AS专有的,以前一直关注的是兼容NE2000的寄存器,而忽略了他们。今天尝试一下,真是豁然开朗,0x50和0x70这两个值真的出现了,真是太感谢那位朋友了,上帝都感谢你!

 



图(1)


    其实一直无法确定自己在RTL8019AS地址连接的另一个原因也是遇到个很奇怪的问题,好像我的ADS1.2的有点问题?--在AXD中局部变量的显示有点问题:

    如图(2),我先定义了m,n两个局部变量来读取存放RTL8019AS的ID的寄存器,当单步运行的时候,m和n的值确显示 "ErrMess_Var..."

    可当又定义了一个全局数组buff[]的时候,如图(3),先把寄存器的值给m,n,再把m,n的值给buff[0]和buff[1],m,n的值就正常显示了。



图(2)



图(3)

鉴于这个问题,于是我又做了一个实验

1).我把m,n直接定义成全局变量,观察了下居然也显示正常,m=0x50,n=0x70,如图(4).



图(4)

原本想做个实验--仍然把m,n定义为局部变量,但是回看了下图(3),发现没这个必要了,因为图(3)是先把值赋给m和n的,然后再把m和n的值赋给全局数组buff,所以可以肯定,局部变量m,n是起作用的,只是AXD环境的变量窗口没有显示出来。

--后来就这个问题专门询问下偶的恩师,他也是ADS有时就有这样的问题的呢,还好不是偶程序的问题!

 

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)