machid=16a(mach-smdk2440.c)的内核下输入ifconfig,发现该板卡的内核不支持DM9000,如下图所示:
本文介绍了在Linux内核中配置网络设备驱动程序的方法,包括通过make menuconfig直接配置、通过make s3c2410_deconfig自动配置和通过厂家提供的配置文件进行配置。总结内容应简洁明了,具有概括性。
本文介绍了Linux内核编译原理和过程,包括如何通过make menuconfig配置内核选项,以及通过make s3c2410_deconfig自动配置内核选项。此外,还介绍了如何通过查看.config文件来了解内核配置选项。最后,还探讨了如何通过修改.config文件来定制内核编译过程,并使用make uImage编译内核。
网络设备不同于字符设备和块设备,并不对应于/dev目录下的文件,应用程序通过 socket 完成与网络设备的交互,在网络设备上并不体现”一切皆文件”的设计思想。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。
/*分析DM9000网卡驱动之初始化*/ /*找到DM9000.c 文件路径: linux/drivers/net下 找到模块的入口函数处 */ static int __init dm9000_init(void) { printk(KERN_INFO "%s Ethernet Driver, V%s\n", CARDNAME, DRV_VERSION); return platform_driver_register(&dm9000_driver); } /*很明显DM9000
我们的DM9000是放在2440的bank4(0X20000000)的片选上面,而DM9000的CMD引脚接在bank4的LADDR2上面。也就是说当0X20000000地址上读写数据时, 此时CMD为低,则读写的便是DM9000C的地址。向0X20000000+4地址上读写数据时,此时CMD为高,则读写的便是DM9000C的数据。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。
在程序中调用下面这段代码可以读到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)); }
说明: 1、我们这里是使用一个网络协议栈管理两个网口。 为了将DM9000驱动做稳定花了很多时间去研究,专门制作了一个符合CMSIS-Driver驱动规范文件。 2、网络性能。 H7双网口性能: (1)DM9000速度99.7Mbps (2)DM9162速度99.8Mbps F429双网口性能: (1)DM9162速度99.9Mbps (2)DM9000速度75Mbps F407双网口性能: (1)DM9162速度99.8Mbps (2)DM9000速度73.7Mb
公元1951年5月15日的国会听证上,美国陆军五星上将麦克阿瑟建议把朝鲜战争扩大至中国,布莱德利随后发言:“如果我们把战争扩大到共产党中国,那么我们会被卷入到一场错误的时间,错误的地点同错误的对手打的一场错误的战争中。”
首先uboot已带有dm9000网卡的驱动,位于drivers/net/下的dm9000x.h、dm9000x.c
原文出自:http://blog.csdn.net/ghostyu/article/details/6908805
Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。
5)电流或电压驱动型的PHY,若为2线共模电感+自耦变压器形式,自耦变压器放在RJ45侧。
/*分析DM9000发生数据函数**/ /* * Hardware start transmission. * Send a packet to media from the upper layer. */ static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) { unsigned long flags; board_info_t *db = netdev_priv(dev); dm9000_db
通过wind把SD卡格式化为FAT32模式 sudo fdisk -l //查看分区信息
/*分析DM9000收到一个数据包后,应该做何处理?*/ /*当收到一个数据包后,DM9000就会触发一次发送中断,跳到中断处理函数处理*/ static irqreturn_t dm9000_interrupt(int irq, void *dev_id) { /* Received the coming packet */ //当接受到一个数据包后 if (int_status & ISR_PRS) dm9000_rx(dev); } /*处理发送函数*/ /* * Received
本篇文章主要讲解如何在STM32F103工程里添加移植LWIP协议,最终完成TCP服务器、TCP客户端的通信测试。 网卡采用的是DM9000,工程代码中,采用STM32的FSMC接口来驱动DM900网卡,DM9000是并口网卡,引脚多,但是速度快,也可以采用其他网卡,SPI协议的、UART协议的等。 比如:ENC28J60。 因为主要是讲LWIP协议栈的移植,所以网卡相关的代码就没有细说(需要准备一个网卡可以正常通信的工程,再移植)。
SD0~15: 16位数据线,有CMD引脚决定访问类型 CMD: 命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址 INT: 中断引脚,接在2440的GPF7脚上 IOR#: 读引脚,接在2440的nOE脚上 IOW#: 写引脚,接在2440的nWE脚上 CS#: 片选,放在2440的bank4的片选上面
移植内核:2.6.30.4 内核根目录下的.config为当前配置内核的且已经配置好的内核配置。make zImage以此为依据 配置内核的过程: cd linux-2.6.30.4(进入Linux根目录) cp arch/arm/configs/s3c2410_defconfig /linux-2.6.30.4(作为配置参考,考到根目录下) mv s3c2410_defconfig .config(改名为.config) make menuconfig ARCH=arm(ARCH=arm不能少) 配置过程 退出时记得选yes保存为.config(确保该配置是你已经配置且保存的配置,就算不改动也要保存。否则不能生成.config) make zImage ARCH=arm CROSS_COMPILE=arm-linux-(ARCH=arm不可少) 或者 Makefile中定于ARCH=arm CROSS_COMPILE=arm-linux- 1,make s3c2410_defconfig(生成.config) 2,make zImage 即可生成压缩内核印象 uboot引导内核,入口点必须为0x30008000 zImage:go 0x30008000 uImage:bootm 0x30008000 busybox下载地址: http://busybox.net/ linux快速修改文件夹及文件下所有文件与文件夹权限 chmod 777 * -R uboot的tftp下载出现如下错误: TFTP error: 'Permission denied' (0) 改正方法就是给待下载的文件加上可执行(chmod 777 文件)权限 uboot的使用:tftp下载内核,直接用交叉网线连接PC(实际上为虚拟机)和开发板即可 uboot启动之后,输入:printenv 查看 serverip是不是你的虚拟机的ip(终端ifconfig即可查看) ipaddr要和serverip在同一个网段,即ip的前三段必须相同 ethaddr:开发板dm9000的MAC物理地址 netmast:子网掩码:255.255.255.0 serverip,ipaddr,ethaddr,netmast不符合要求的话,可以使用命令设置:(示例) setenv serverip 169.254.209.223 setenv ipaddr 169.254.209.113 setenv netmast 255.255.255.0 setenv ethaddr 00:01:02:03:04:05 saveenv //设置完毕记得保存环境变量 uboot启动内核:uboot版本(2009.08) 条件:uboot的机器码和内核的机器码要一样 uboot部分修改: 机器码: #gedit board/samsung/my2440/my2440.c gd->bd->bi_arch_number = MACH_TYPE_SMDK2440 内核部分:内核版本(2.6.30.4) #gedit arch/arm/mach-s3c2440/mach-smdk2440.c MACHINE_START(SMDK2440, "SMDK2440") #gedit arch/arm/kernel/head.S //在ENTRY(stext)下添加如下代码 ENTRY(stext) mov r0, #0 mov r1, #0x3f0 //上面的MACH_TYPE值1008换成十六进制就是0x3f0 ldr r2, =0x30008000 内核中的nand分区一定要和bootloader中的一致: #gedit arch/arm/plat-s3c24xx/common-smdk.c offsize size uboot : 0x00000000 0x00030000 //192kb param : 0x00030000 0x00040000 //这个环境变量的地址范围配置的CONFIG_ENV_OFFSET一致 kernel: 0x00080000 0x00500000 //5mb root : 0x00580000 0x0c800000 //200mb #gedit uboot/include/cofings/mini2440.h 查看:MTDPART_DEFAULT = " " //默认分区 编译得到内核zImage uImage的制作: 先将u-boot下的tools中的mkimage复制到主机的/usr/local/bin目录下,执行以下命令: mkimage -n 'linux-2.
因为ifconfig是命令,代码位于busybox,不过我们在内核的documentation目录下找到了ifconfig介绍,代码介绍文件位于:
烧写内容 : BootLoader, Linux Kernel, File System;
一路摸爬滚打,时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。想起第一次在串口打出一个字符的时候,那种心情,简直激动得快要爆了,这里先将我学习ARM中的整个过程简单总结一下,以后再详细的针对每个知识点写写东西。希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,给些学习建议,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。
博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813
对于嵌入式系统来说,一般都需要一个bootloader来下载和引导操作系统,常用的bootloader有eboot,uboot以及vivi等,对于windowsce来说最理想的bootloader当然是eboot(我也做了利用uboot下载和引导ce,以后我会介绍)。下面我就把自己开发eboot的过程和大家分享。eboot的流程可以如下图所示:
大家好,今天给大家分享ubuntu里面连网的问题以及搭建tftp服务器进行文件传送,这里面在配置ubuntu连网的问题,之前看到网友遇到过好多次,而且看网上的教程也没有解决了这个问题,在这里我分享一下我在配置网络的时候,出现了网络连不上网的解决方法。
啊!秋高气爽,朗朗乾坤,晴天霹雳,星汉灿烂!喝下一碗无相汤,吃完半根游离面,不禁心醉神摇,抹了抹嘴,定了定神,心想道:拥此良辰美景,断断不能虚度光阴!说时迟那时快,关老师给我发来一篇实用短文,给嵌入式征途上的兄弟伙伴们,双手奉上!
转载请注明文章地址 http://wiki.100ask.org/Linux_devicetree
Ubuntu:资料光盘Ubuntu 9.10 连接方式:JZ2440用网线直接连接电脑 要解决的问题
通过前两篇文章的介绍,我们已经把linux内核移植到了tiny210上,但是看到的现象都是通过超级终端来观察的,下面了,我们介绍一下led灯的移植,给大家一个更直观的感受。这篇文章主要的内容如下:
其中,struct subsys_private包含一个设备链表(struct klist klist_devices)和一个驱动链表( struct klist klist_drivers)
往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 1、硬核体验自适应滤波
前面通过学习总线、设备、驱动模型知识后,知道了设备和驱动之间都是通过总线进行绑定而匹配的;然后通过设备树的深入探究,知道了设备树的出现大大增加了驱动的通用性;接着我们一起看了 Linux 的启动流程和设备在内核里一层一层的展开。
今天分享一篇经典Linux协议栈文章,主要讲解Linux网络子系统,看完相信大家对协议栈又会加深不少,不光可以了解协议栈处理流程,方便定位问题,还可以学习一下怎么去设计一个可扩展的子系统,屏蔽不同层次的差异。
本文介绍了如何移植三星S3C2440A和DM9000网卡的驱动程序到树莓派上。首先介绍了S3C2440A芯片的基本特性和引脚定义,然后详细描述了移植过程,包括驱动程序的编写、编译和测试。最后,总结了本文的结论,即成功移植了S3C2440A和DM9000网卡的驱动程序到树莓派上,并可以通过网络通信进行测试。
1、 网口使用的是DM9161/9162(紧挨着9帧串口座的网口),而不是DM9000。
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619 第6章 ThreadX NetXDUO网络协议栈移植到STM32F4
编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619 第6章 ThreadX NetXDUO网络协议栈移植到STM32H7
android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533
用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标、内存及磁盘容量等。档次一般应尽可能高一些,尤其是作为数据库服务器的机器,基于 Java 的程序运行时最好有较大的内存。其它设备如 UPS 等在重要应用中也应考虑。下面给出安装 DM 所需的硬件基本配置:
上面的Flash: *** failed *** 是属于uboot第二阶段函数board_init_r()里的代码, 代码如下所示(位于arch/arm/lib/board.c):
在 FPGA 上实现了 JPEG 压缩和 UDP 以太网传输。从摄像机的输入中获取单个灰度帧,使用 JPEG 标准对其进行压缩,然后通过UDP以太网将其传输到另一个设备(例如计算机),所有这些使用FPGA(Verilog)实现。
该文介绍了grep命令和find命令的区别以及使用方法。grep命令用于在文件中查找匹配文本的行,并返回匹配行的行号。find命令用于查找文件,可以指定文件名、文件类型、大小等条件。grep命令和find命令都是Linux系统中常用的命令行工具,可以帮助用户快速查找和定位文件。
对于常年占据国产数据库排行榜前三的 达梦 数据库,早已 “垂涎a已久” (¯﹃¯)!
今天为大家带来一个很酷的作品,依然运用了强大的 HT for Web 的 3D 图形组件,动作流畅性能好,大家可以先来欣赏一下效果!
上一节S3C2440移植uboot之新建单板_时钟_SDRAM_串口移植uboot初始化了时钟,配置了支持串口,这一节我们继续修改uboot支持NAND启动。
📷 #参考文档;达梦数据库单机部署参考文档(1) 达梦官网链接 https://www.dameng.com/ 📷 #修改操作系统资源限制 vim /etc/security/limits.conf dmdba soft noproc 65536 dmdba hard noproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba hard core unlimited dmdba soft core unlimited vi /et
安装zookeeper集群,也可以使用现成的,本次使用现成的,配置如下,后续加入配置文件中
领取专属 10元无门槛券
手把手带您无忧上云