历史上的今天
返回首页

历史上的今天

今天是:2025年06月28日(星期六)

2020年06月28日 | 驱动开发之 DM9000 (for mini2440)

2020-06-28 来源:eefocus

内核版本:linux-2.6.32.2

实验平台:mini2440


1. 添加平台设备支持

首先需要在mach-mini2440.c中包含头文件,dm9000平台设备定义如下:


/* DM9000AEP 10/100 ethernet controller */


#define MACH_MINI2440_DM9000_BASE (S3C2410_CS4 + 0x300)


static struct resource mini2440_dm9000_resource[] = {

[0] = {

.start  = MACH_MINI2440_DM9000_BASE,

.end    = MACH_MINI2440_DM9000_BASE + 3,

.flags  = IORESOURCE_MEM,

},

[1] = {

.start  = MACH_MINI2440_DM9000_BASE + 4,

.end    = MACH_MINI2440_DM9000_BASE + 7,

.flags  = IORESOURCE_MEM,

},

[2] = {

.start  = IRQ_EINT7,

.end    = IRQ_EINT7,

.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,

},

};


/*

 * The DM9000 has no eeprom, and it's MAC address is set by

 * the bootloader before starting the kernel.

 */

static struct dm9000_plat_data mini2440_dm9000_platdata = {

.flags          = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),

};


static struct platform_device mini2440_device_eth = {

.name           = "dm9000",

.id             = -1,

.num_resources  = ARRAY_SIZE(mini2440_dm9000_resource),

.resource       = mini2440_dm9000_resource,

.dev            = {

.platform_data = &mini2440_dm9000_platdata,

},

};


38

最后需要将dm9000这个平台设备添加到mini2440_devices这个平台设备数组里面,这样才能完成平台设备的注册。

static struct platform_device *mini2440_devices[] __initdata = {

        /* ... */

        &mini2440_device_eth,

};


2. dm9000驱动修改

drivers/net/dm9000.c这个驱动并不是为mini2440做准备的,需要做一些修改。

包含相关头文件:


#if defined(CONFIG_ARCH_S3C2410)

#include

#endif


修改dm9000片选总线时序:

static int __init

dm9000_init(void)

{

#if defined(CONFIG_ARCH_S3C2410)

        unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;

        unsigned int oldval_bankcon4 = *(volatile unsigned int *)S3C2410_BANKCON4;

        *((volatile unsigned int *)S3C2410_BWSCON) =

                        (oldval_bwscon & ~(3<<16)) | S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4;

        *((volatile unsigned int *)S3C2410_BANKCON4) = 0x1f7c;

#endif

/* ... */

}


在dm9000_probe函数中还需要给dm9000设置一个mac地址。


static int __devinit

dm9000_probe(struct platform_device *pdev)

{

/* ... */

        memcpy(ndev->dev_addr, "x08x90x90x90x90x90", 6);

        if (!is_valid_ether_addr(ndev->dev_addr))

                dev_warn(db->dev, "%s: Invalid ethernet MAC address. Please "

                         "set using ifconfign", ndev->name);

/* ... */

}


3. 配置内核

    Device Drivers  --->

[*] Network device support  --->

[*]   Ethernet (10 or 100Mbit)  --->

<*>   DM9000 support

(4)     DM9000 maximum debug level


4. 编译下载,启动开发板

在这里插入图片描述

5. 启动网络设备

内核配置好之后,需要手动启动网络设备,使用如下命令:

ifconfig eth0 172.20.11.41 netmask 255.255.255.0 up


如下图所示:

在这里插入图片描述

或者将上面的命令写入到启动脚本中,还可以使用ifconfig命令来停止网络设备:


ifconfig eth0 down


推荐阅读

史海拾趣

CONTTEK Group GmbH公司的发展小趣事

CONTTEK Group GmbH公司注重企业文化的建设和团队精神的培养。公司倡导“以人为本、创新驱动”的企业文化,鼓励员工积极参与创新活动,发挥个人潜能。同时,公司还注重团队建设,通过定期的培训和团建活动活动,增强员工的凝聚力和向心力。这种积极向上的企业文化和团结协作的团队精神,为公司的持续发展提供了强大的动力。

这五个故事展示了CONTTEK Group GmbH公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术创新、市场拓展、品质管理和企业文化建设的不断推进,CONTTEK Group GmbH公司始终保持着积极进取的精神和不断创新的态度,在电子连接器领域取得了显著的成绩。

ESPROS [Espros Photonics corp]公司的发展小趣事

ESPROS在飞行时间(Time-of-Flight,简称ToF)技术领域取得了显著突破。ToF技术是一种用于测量光在物体上反射所需时间的测距技术,它在3D视觉应用中具有广泛的应用前景。ESPROS凭借其多年的技术积累,成功开发出从单点传感器到QVGA面阵的完整ToF产品线,为客户提供了全方位的3D ToF解决方案。

ELM Technology Corporation公司的发展小趣事

ELM Technology Corporation非常重视企业文化的建设。公司倡导“创新、协作、诚信、责任”的企业精神,鼓励员工积极创新、勇于担当。同时,公司还为员工提供了良好的工作环境和福利待遇,增强了员工的归属感和凝聚力。这种积极向上的企业文化为ELM的持续发展提供了强大的动力。

请注意,以上故事仅为概述,具体细节和事实需要根据ELM Technology Corporation的实际情况进行补充和完善。

AdaptivEnergy公司的发展小趣事

随着环保意识的不断提高,ELM Technology Corporation积极响应国家号召,将环保理念融入企业发展中。公司投入大量资金研发环保型电子产品,努力降低产品对环境的影响。同时,ELM还积极参与各类环保活动,推动电子行业的绿色发展。这种对环保的执着追求让ELM在行业中树立了良好的形象。

APM Hexseal公司的发展小趣事

随着公司的发展,APM Hexseal不断拓展其产品线,推出了包括断路器、密封开关、过滤器和密封件等一系列产品。这些产品都经过了严格的测试和认证,以确保其能够满足各种恶劣环境下的使用要求。其中,许多产品都获得了UL认证,进一步证明了其卓越的品质和可靠性。

HANA Micron公司的发展小趣事

为了更好地服务全球客户,Hama积极实施国际化战略,在全球范围内设立了多家子公司。这些子公司不仅负责当地市场的销售和服务工作,还积极参与技术研发和产品创新活动。通过全球子公司的协同作战,Hama成功实现了资源的优化配置和市场的深度覆盖。目前,Hama在全球拥有约2500名员工、5亿欧元的业务和19家全球子公司,已成为国际知名的电子配件供应商之一。未来,随着全球市场的不断变化和发展,Hama将继续加强全球子公司的建设和布局,为公司的长远发展奠定坚实基础。

问答坊 | AI 解惑

牛人对模拟电路的理解

一牛人对模拟电路的理解,看后受益匪浅,大家分享!…

查看全部问答>

【西门逛中发】(一)初识中发,少花钱多办事

序言:   “不是在中发,就是在去中发的路上,”用这句话形容西门,似乎一点儿也不为过。   常年混迹于中发的西门,在那里拥有为数众多的好朋友,与经常去那里的工程师相比,他更像其中一员,就差摆个摊铺坐在那里了。这样一位“圈内”人士, ...…

查看全部问答>

哪位高手能给我解释解释什么是数据恢复电路啊?

老师安排的题目是数据恢复电路 用verilog编程的 自己上网查了也没搜到什么东西 哪位高手能给我解释解释这个电路啊 还有编程方面要注意些什么问题啊 先谢谢了!!! 对了 这是要求 数据恢复电路:半字节数据输入,不定长码流,MSB在前,起始位 ...…

查看全部问答>

学生求助CE串口开发问题

大家好,学生以前接触的硬件类比较多,这次需要在2440板子下跑wince,用串口读数据,我找了很多资料,发现都是直接给代码的,学生求助,是在什么环境下编译?PB吗?如果是PB的话,就是改PB里哪里的程序呢???学生很疑惑,学生其实是想用VS2005中 ...…

查看全部问答>

你努力工作是为了谁?

当你满怀激情的投入到工作当中的时候,   你有没有想过,你的工作包含了多少有益成分?在你的工作成绩中,有多少是在为自己打拼,有多少是在为他人做嫁衣呢?    …

查看全部问答>

悲剧啊,69端口竟然被占用!

1.昨天在公司电脑上配置的TFTP成功以后,下班回到家满心欢喜把家里的电脑也比葫芦画瓢来一遍,结果死活都启动不了。查了下端口UDP6协议下,后面占用是69端口,而不是udp。而且执行service tftpd-hpa restart ,他竟然停在那里,连命令行也不出来了 ...…

查看全部问答>

中国消费类电子企业有哪些????

像华为、中兴这样的消费类电子有哪些??? 这些企业都做得怎么样??? 一起来聊聊啊!!!!…

查看全部问答>

DSP的SPI通信

各位大虾,小弟一个PCB上边有两个2812,要使用SPI通信,请问SPI的四个端口能直接连接在一起么?需要注意些什么?谢谢了…

查看全部问答>

时钟使能电路设计

时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟电路处理。在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此 ...…

查看全部问答>

zigbee技术相关的设计论文

ZigBee是一种能满足低功耗、低复杂度、低成本的新的无线通信技术,推荐几个基于zigbee的设计论文。 基于Zigbee的无线定位系统的研究:https://download.eeworld.com.cn/detail/nkyqsl/318909 基于ZigBee无线传感网络的SMT厂房温湿度监控 ...…

查看全部问答>