2638|2

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何向DM9000A网卡芯片的寄存器写值?在线等! [复制链接]

我正在看DM9000A网卡的驱动,遇到一段代码看不明白。请各位大侠帮忙,坚决给分。


UI32 FLASH_DATA = (0xbf000000 + 0x188102);
UI32 FLASH_ADDR = (0xbf000000 + 0x100102);
void dm_outb(unsigned char out_addr, unsigned char out_data)//out_addr是寄存器地址,out_data要写入寄存器的数
//据。
{
        unsigned short n_out_data = 0;

        n_out_data = ((unsigned short)out_data) & 0xff;

        if( out_addr )
        {
                *((volatile UI16*)FLASH_DATA) = n_out_data;
        }
        else
        {
                *((volatile UI16*)FLASH_ADDR) = n_out_data;
        }
}

我暂时的理解是其中FLASH_DATA是寄存器数据在内存中的地址,FLASH_ADDR是寄存器地址在内存中的地址。至于内存地址和寄存器地址是如何映射的,也不是很清楚。尤其不知道0x188102,0x100102,这两个值是谁确定的。如何确定。

最新回复

谢谢,toborac,板子的硬件设计资料我只有原理图。您说的反过来是指哪里?我的msn:zheng_wen_fei@live.cn加我。  详情 回复 发表于 2010-2-8 14:25
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
DM9000A datasheet参见http://www.cs.columbia.edu/~sedwards/classes/2010/4840/Davicom-DM9000A-Ethernet-controller.pdf
寄存器地址和数据都是8位
具体如何访问可能取决于你的板子的硬件译码或地址怎么map
从#define的字面上同意你的理解 不过看代码似乎是反过来的 有些奇怪
那两个值需要看板子的硬件设计资料
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢,toborac,板子的硬件设计资料我只有原理图。您说的反过来是指哪里?我的msn:zheng_wen_fei@live.cn加我。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表