裸奔程序和uCOS读取DM9000 ID的方法 在程序中调用下面这段代码可以读到DM9000的ID号: #define DM9000_BASE 0x20000300...) { 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)); } 转载于:https
基于同样的软件分层设计的思想,由于一个SoC可能对应多个machine,如果每个machine的设备树都写成一个完全独立的.dts文件,那么势必相当一些.dts文件有重复的部分,为了解决这个问题,Linux...我这里用`Linux4.8.5源码自带的dm9000网卡为例来分析设备树的使用和移植。...我们可以找到它用来描述设备信息的结构体,可以看出,驱动中用于匹配的结构使用的compatible和设备树中一模一样,否则就可能无法匹配,这里另外的一点是struct of_device_id数组的最后一个成员一定是空...父节点中指定了#address-cells = ;#size-cells = ,则子节点dev-bootscs0中的reg中的前两个数表示一个地址,即MBUS_ID(0xf0, 0x01)和0x1045C...比如dm9000网卡,就需要首先将示例信息挂接到我们的板级设备树上,并根据芯片手册和电路原理图将相应的属性进行配置,再配置相应的驱动。
基于同样的软件分层设计的思想,由于一个SoC可能对应多个machine,如果每个machine的设备树都写成一个完全独立的.dts文件,那么势必相当一些.dts文件有重复的部分,为了解决这个问题,Linux...我这里用Linux4.8.5源码自带的dm9000网卡为例来分析设备树的使用和移植。...我们可以找到它用来描述设备信息的结构体,可以看出,驱动中用于匹配的结构使用的compatible和设备树中一模一样,否则就可能无法匹配,这里另外的一点是struct of_device_id数组的最后一个成员一定是空...父节点中指定了#address-cells = ;#size-cells = ,则子节点dev-bootscs0中的reg中的前两个数表示一个地址,即MBUS_ID(0xf0, 0x01)和0x1045C...比如dm9000网卡,就需要首先将示例信息挂接到我们的板级设备树上,并根据芯片手册和电路原理图将相应的属性进行配置,再配置相应的驱动。
Linux 网络设备驱动架构 驱动架构自上而下分为4层: 协议接口层 设备接口层 设备驱动功能层 网络设备与媒介层 协议接口层 协议接口层主要功能是给上层协议提供接收和发送的接口。...传递的数据被描述为套接字缓冲区,用struct sk_buff结构描述,该结构体定义位于include/linux/skbuff.h中,用于在Linux网络子系统中的各层之间传输数据,该结构在整个网络收发过程中贯穿始终...源码分析 笔者基于的是 S5PV210 的 DM9000 驱动,会大体上对 DM9000 的驱动源码进行分析, 分析源码位于DM9000 源码 platform 框架分析 DM9000 的驱动是基于 platform...dm9000_driver); } 该函数调用了 platform_driver_register 函数注册了一个平台总线驱动,对应的平台设备的注册定义位于 xxx_machine_init中,在笔者基于的...资源: 地址端口、数据端口地址和中断号, 并为端口地址 ioremap。
/*分析DM9000网卡驱动之初始化*/ /*找到DM9000.c 文件路径: linux/drivers/net下 找到模块的入口函数处 */ static int __init dm9000...获得DM9000的资源。包括DM9000的内存和中断资源 * 4. 地址映射 * 5. 初始化net_device的基地址和中断号 * 6. 重启DM9000设备 * 7....包括DM9000的内存和中断资源 db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); db->data_res = platform_get_resource...\n", ret); dm9000_release_board(pdev, db); free_netdev(ndev); return ret; } /*我们似乎发现,和硬件相关的设置很少...获得DM9000的资源。包括DM9000的内存和中断资源 * 4. 地址映射 * 5. 初始化net_device的基地址和中断号 * 6. 重启DM9000设备 * 7.
/autoconf.h中定义宏DM9000 include/linux/autoconf.h:129:#define CONFIG_DM9000 1 然后通过vi include/linux/autoconf.h...(2)在C源码里通过判断autoconf.h的宏DM9000 arch/arm/plat-s3c24xx/common-smdk.c:46:#if defined(CONFIG_DM9000) || defined...drivers/net/ Makefile使用 include/config/auto.conf:128:CONFIG_DM9000=y 通过vi include/config/auto.conf如下图可以看出,和..../drivers/net/ 子目录Makefile中添加DM9000文件到obj-$(CONFIG_DM9000)中,其中CONFIG_DM9000=y,所以编译进内核中. drivers/net/Makefile...net/Makefile:199:#obj-$(CONFIG_DM9000) += dm9ks.o 因为, 当make uImage编译内核刚开始时,内核会根据.config自动生成auto.conf和autoconf.h
网卡驱动 machid=16a(mach-smdk2440.c)的内核下输入ifconfig,发现该板卡的内核不支持DM9000,如下图所示: ?...而在machid= 7cf(mach-mini2440.c)的内核下输入ifconfig,却能支持DM9000,如下图所示: ?..."平台驱动,而再注册个"dm9000"平台设备时,内核便会调用上面的probe函数来注册dm9000驱动. 2)然后再来看看mach-mini2440.c单板文件,是如何支持dm9000的,代码如下:...网卡驱动) 1)添加头文件 #include 2)添加全局变量: #define MACH_SMDK2440_DM9K_BASE (S3C2410_CS4 +...内核的驱动时,我们便移植过了厂家提供的DM9000C驱动了,链接入口:http://www.cnblogs.com/lifexy/p/7777961.html 文件名为dm9dev9000c.c,由于2.6内核和3.4
原文出自:http://blog.csdn.net/ghostyu/article/details/6908805 一个现实的linux设备和驱动通常要挂接在一种总线上,像pci,usb,iic,spi...基于这个背景,linux发明了一种虚拟总线:platform总线,相应的设备称为platform_device,而驱动成为platform_driver。...中的以上四个成员变量 start 与end两个字段的值随着flags的改变而改变,当flags 为 IORESOURCE_MEM 时,start,end分别表示该platform_device 占据的内存的开始地址和结束地址...,若flags为IORESOURCE_IRQ 时,start end 则表示该platform_device 使用的中断号的开始值和结束值,假如只使用了1个中断号,那么start与end相同。...例如dm9000的resource部分: [cpp] view plain copy print ?
Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。 Linux内核采用分层结构处理网络数据包。...一、内核网络结构 在Linux内核中,对网络部分按照网络协议层、网络设备层、设备驱动功能层和网络媒介层的分层体系设计。 网络驱动功能层主要通过网络驱动程序实现。 ...二、与网络有关的数据结构 内核对网络数据包的处理都是基于sk_buff结构的,该结构是内核网络部分最重要的数据结构。 网络协议栈中各层协议都可以通过对该结构的操作实现本层协议数据的添加或者删除。...设备名称总线参数协议参数链接层变量接口标志 四、数据包接收流程 在Linux内核中,一个网络数据包从网卡接收到用户空间需要经过链路层、传输层和socket的处理,最终到达用户空间。...五、数据包发送流程 以UDP数据包发送流程为例,在DM9000网卡上如何发送一个数据包。
直接部署: linux 上安装golang 项目的方式按照官网的 https://golang.org/doc/install#install 的方式,安装go运行环境到/usr/local/go/bin...于是乎,我就把我windows的下面的src所有文件夹复制到linux下面,免去重新下载的时间。...目录下与github.com,golang.org等其他目录平级 如下图所示: image.png goonlinemusic就是我的项目 然后进入我项目执行go build main.go 会编译一个linux...基于nginx部署: 在使用nginx 部署时,首先要明白nginx 反向代理的原理。下面简要提一下就是。...因为内网代理和负载均衡。 具体去百度或者上知乎搜一下,他们讲的比我好。
基于这样的想法,linux把设备驱动分为了总线、设备和驱动三个实体,总线是上图中的统一纽带,设备是上图中的板级互连信息,这三个实体完成的职责分别如下: 实体 功能 代码 设备 描述基地址、中断号、时钟、...一旦DM9000的驱动也被注册,由于platform总线已经关联了设备,驱动自然可以根据已经存在的DM9000设备信息,获知如下的内存基地址、中断等信息了: static struct resource...但是,这个VxBus,可以说和Linux的总线、设备、驱动模型是极大地雷同的。但是,请问,你为什么要叫VxBus呢,它非常地Vx吗?...这些代码的存在,简直是对Linux内核的污染和对Linus Torvalds的无情藐视,因为,太木有技术含量了!...比如arch/arm/boot/dts/ imx1-apf9328.dts下面的DM9000就是这样的脚本,基地址、中断号都成为了DM9000设备节点的一个属性: eth: eth@4
在smdk2440.h中修改文件支持DM9000 #if 0 #define CONFIG_CS8900 /* we have a CS8900 on-board */ #define CONFIG_CS8900..._BASE 0x19000300 #define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */ #else #define...CONFIG_DRIVER_DM9000 /*DM9000*/ #endif 编译报错 ?...have a CS8900 on-board */ #define CONFIG_CS8900_BASE 0x19000300 #define CONFIG_CS8900_BUS16 /* the Linux...是放在2440的bank4(0X20000000)的片选上面,而DM9000的CMD引脚接在bank4的LADDR2上面。
Jenkins 简介 Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。...允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。...IP地址: 192.168.1.8 安装java # cd /data/software/ # wget http://js.funet8.com/centos_software/jdk-8u211-linux-x64....tar.gz # mkdir /usr/local/java/ # tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/java/ 配置环境变量
一、下载redis压缩包 进入redis官网 https://download.redis.io/releases/ 选择要下载的版本 将下载好的压缩包使用Xftp上传至Linux系统中 或者直接在...Linux中使用命令直接下载 wget https://download.redis.io/releases/redis-4.0.0.tar.gz 使用tar命令解压 tar xzf redis-4.0.0...ef | grep redis- 启动之后再data目录下就会生成日志文件 四、远程连接 redis默认不支持远程连接,想要远程连接的话需要在配置文件中加一个配置,就可以从windows上连接到linux
seek=1 启动时按下空格键 二、从Nand启动 三、从USB启动,资源下载https://download.csdn.net/download/jerrygou/10475100 3.1、加载模块到Linux...和Now, Waiting for DNW to transmit data.表示USB已经连接上了,此时使用下载软件即可完成文件的传输和烧写。...OK Louis210 # tftpboot 20000000 u-boot-a.bin //下载uboot(包括BL1和BL2)至nand dm9000 i/o: 0x88000000, id:...0x90000a46 DM9000: running in 16 bit mode MAC: 1a:2a:3a:4a:5a:6a operating at 100M full duplex mode...OK dm9000 i/o: 0x88000000, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 1a:2a:3a:4a:5a:6a operating
gentoo.efimg image.squashfs livecd README.txt gentoo.efimg.mountPoint isolinux 3.把自己的内核和ramfs...回到img,制作自己的iso文件 mkisofs -R -b isolinux/isolinux.bin -c isolinux/boot.cat -o /tmp/test.iso -V "test Linux
make zImage以此为依据 配置内核的过程: cd linux-2.6.30.4(进入Linux根目录) cp arch/arm/configs/s3c2410_defconfig /linux-...启动之后,输入:printenv 查看 serverip是不是你的虚拟机的ip(终端ifconfig即可查看) ipaddr要和serverip在同一个网段,即ip的前三段必须相同 ethaddr:开发板dm9000...i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b operating at...unknown: 0 mode Using dm9000 device TFTP from server 169.254.209.223; our IP address is 169.254.209.113...4) nand read 格式和地址错误
为了将DM9000驱动做稳定花了很多时间去研究,专门制作了一个符合CMSIS-Driver驱动规范文件。 2、网络性能。...H7双网口性能: (1)DM9000速度99.7Mbps (2)DM9162速度99.8Mbps F429双网口性能: (1)DM9162速度99.9Mbps (2)DM9000速度75Mbps...V7-4000_RL-TCPnet V7.X的双网口应用模板(DM9000和DM9162).7z (5.89MB) V6开发板教程 ?...V6-4000_RL-TCPnet V7.X的双网口应用模板(DM9000和DM9162).7z (1.30MB) V5开发板教程 ?...V5-4000_RL-TCPnet V7.X的双网口应用模板(DM9000和DM9162).7z (1.46MB) 目录: ? ? DM9000速度GIF: ?
解决问题:使用yum的方法安装jdk,配置java_home环境 其他教程: 更换Centos的yum源为阿里云的源:https://wiki.nooss.cn/archives/211.html Linux
领取专属 10元无门槛券
手把手带您无忧上云