裸奔程序和uCOS读取DM9000 ID的方法

裸奔程序和uCOS读取DM9000 ID的方法

裸奔程序和uCOS读取DM9000 ID的方法

在程序中调用下面这段代码可以读到DM9000的ID号:
#define        DM9000_BASE                0x20000300
#define        DM9000_DATA_OFFSET        4
static U8 dm9000_ior(int reg)
{
        *(volatile U8 *)DM9000_BASE = reg;
        return *(volatile U8 *)(DM9000_BASE+DM9000_DATA_OFFSET);
}
static void rd_dm9000_id(void)
{
        U16 id;
        id = dm9000_ior(0x28) | (dm9000_ior(0x29)<<8);
        printf(“read dm9000 vid = 0x%x\n”, id);
        id = dm9000_ior(0x2a) | (dm9000_ior(0x2b)<<8);
        printf(“read dm9000 pid = 0x%x\n”, id);
        id = dm9000_ior(0x8) | (dm9000_ior(0x9)<<8);
        printf(“read dm9000 reg(0x09,0x08) = 0x%x\n”, id);
        printf(“dm9000 isr = 0x%x\n”, dm9000_ior(0xfe));
}

本主题由 亚瑟王 于 2010-5-10 15:36 解除高亮

收藏 分享 评分

回复 引用

订阅 TOP

 

管理员

亚瑟王 当前在线

UID

帖子

4716 

精华

积分

6246 

阅读权限

200 

在线时间

294 小时 

注册时间

2009-3-5 

最后登录

2010-6-12

管理员

2#

 亚瑟王发表于 2010-5-10 18:05 | 只看该作者

<***************************************>
               TQ2440 Test Program
www.embedsky.net
<***************************************>
read dm9000 vid = 0xa46
read dm9000 pid = 0x9000
read dm9000 reg(0x09,0x08) = 0x3837
dm9000 isr = 0x0
Please select function :
0 : Please input 1-11 to select test
1 : Test PWM
2 : RTC time display
3 : Test ADC
4 : Test interrupt and key scan
5 : Test Touchpanel
6 : Test TFT LCD
7 : Test IIC EEPROM
8 : UDA1341 play music
9 : UDA1341 record voice
10 : Test SD Card
11 : Test CMOS Camera
上面列出来实际运行时获取的DM9000的ID号,将1楼的代码放到TQ2440_Test程序的main.c中,然后在main()函数中的“MMU_init();”上面一行添加rd_dm9000_id();即可读取正确的ID号。

转载于:https://www.cnblogs.com/xilentz/archive/2010/07/12/1775546.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110756.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 静态IP地址版EVE模拟器部署和使用说明

    静态IP地址版EVE模拟器部署和使用说明很多小伙伴由于还是初学者,对DHCP等协议并不熟悉,因此在使用模拟器的时候出现各种不理解的问题。为了让大家顺利的开始学习之路,特分享一个静态IP地址版本的供大家选择。前面的部署步骤请参考我的另一篇博客:https://blog.51cto.com/dashu666/2177842虚拟机导入完成之后,在开机之前,需要做如下操作:1、将虚拟机桥接到一个虚拟网络中,如下图:这里的…

  • 数据结构与算法(十六):平衡二叉树

    数据结构与算法(十六):平衡二叉树一、什么是平衡二叉树1.概述平衡二叉树(AVL树)是一种带有平衡条件的二叉搜索树。它的特性如下:AVL树的左右两个子树的高度差的绝对值不超过1AVL树的左右两个子树都是一棵平衡二叉树举个例子

  • python,pandas_python常用的科学计算库

    python,pandas_python常用的科学计算库[python][科学计算][pandas]使用指南

  • 关于Postgresql默认端口5432你所不知道的一点

    关于Postgresql默认端口5432你所不知道的一点关于Postgresql端口5432的定义:5432端口,已经在IANA(TheInternetAssignedNumbersAuthority,互联网数字分配机构)注册,并把该端口唯一分配给Postgres。这意味着,一台安装了linuxOS的服务器,哪怕没有安装过postgresql数据库,也会有这个预留端口。查看这个预留端口的方法如下:new@newdb->cat/etc/ser

  • 力扣题库练习

    力扣题库练习1给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]本人简单暴力解答:vartwoSum=function(nums,

  • Don’t Panic! KRACK 没你想象的那么糟

    Don’t Panic! KRACK 没你想象的那么糟上海交通大学密码与计算机安全实验室(LoCCS)软件安全小组(GoSSIP)版权所有,转载请与作者取得联系!著名的计算机学术安全会议CCS在2017年录用了一篇名为KeyReinstallationAttacks:ForcingNonceReuseinWPA2的学术论文,看起来,这和其他的上百篇同样将要在11月1日在美国达拉斯喜来登酒店会议中心一起登场报告的论文没有太大的差…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号