
linux驱动
lucien
这个作者很懒,什么都没留下…
展开
-
Linux设备模型之platform总线
platform是一个虚拟的总线驱动,但是它在工程的驱动开发中很重要,特别是在嵌入式设备中,由于很多设备都没有在真实的总线上,像dm9000网卡,因此需要一个总线来管理,platform便是最好的选择。出处:http://ericxiao.cublog.cn/------------------------------------------一:前言Platform总线转载 2012-04-10 10:51:02 · 400 阅读 · 0 评论 -
写DM9000网卡芯片驱动的预备知识
ETHERNET的接口实质是MAC通过MII总线控制PHY的过程。MAC是Media Access Control的缩写,即媒体访问控制子层协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,转载 2012-05-25 11:03:09 · 1213 阅读 · 0 评论 -
linux网卡驱动
注册设备什么时候注册 1)加载驱动程序时(静态编译进内核的在启动时注册,动态模块加载的在加载时注册) 2)插入热插拔设备时(插入时内核通知其设备驱动注册该设备)设备的注册实际上是由pci_driver->probe函数执行来完成的(probe何时调用参考前几章) 流程如下图:其中alloc_netdev分配内存块(包括net_device结构、驱动程序私有数转载 2012-05-25 11:05:18 · 1245 阅读 · 0 评论 -
mini2440网卡驱动DM9000之dm9000_start_xmit
/* 调用时机:当网卡有数据需要发送的时候,该函数被调用 */static intdm9000_start_xmit(struct sk_buff *skb, struct net_device *dev){ unsigned long flags; board_info_t *db = netdev_priv(dev); dm9000_dbg(db, 3, "%s:\n"转载 2012-05-25 15:47:52 · 981 阅读 · 0 评论 -
PCI的中断过程
摘 要:PCI总线具有即插即用(PnP,plug and play)的特性,这使得CPU访问扩展卡的机制与非即插即用系统有较大的不同,尤其是中断机制比较复杂。本文详细介绍了高性能PC机的中断结构和PLX9052的中断机制,并以9052为接口芯片设计的PCI扩展卡为例,讨论了用中断方式和CPU交换数据的程序设计要点,旨在从底层全面了解基于PCI总线的中断处理机制,为设计与实现PCI扩展卡的中断功能转载 2012-08-07 09:12:16 · 3855 阅读 · 0 评论 -
Linux DM9000网卡驱动程序完全分析
http://www.linuxidc.com/Linux/2011-03/33850.htm转载 2012-07-24 10:25:18 · 494 阅读 · 0 评论 -
linux2.6.31.5中的pci子系统的方方面面详细分析和重写
http://liurugongzi.blog.sohu.com/156893700.html转载 2012-08-10 15:52:28 · 835 阅读 · 0 评论 -
怎样写 Linux LCD 驱动程序
怎样写 Linux LCD 驱动程序 作者: 刘鹏 日期: 2008-12-27 本文分析了frame buffer 设备驱动的主要数据结构,在此基础上介绍了LCD驱动程序的开发。 基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 fi转载 2012-08-12 18:38:24 · 540 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(一)
http://blog.youkuaiyun.com/linuxdrivers/archive/2010/08/30/5849698.aspx要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分。不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI、USB这样的驱动来说,必须要理解这个概念,才能明白该如何看待Linux转载 2012-08-12 18:41:59 · 948 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(二)
http://blog.youkuaiyun.com/linuxdrivers/archive/2010/10/01/5917478.aspx我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的。后面我们会举个例子来说明Linux PCI设备驱动的主要工作内容(不是全部内容),这里只做文字性的介绍而不转载 2012-08-12 18:43:13 · 2034 阅读 · 0 评论 -
request_mem_region,ioremap
Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏:(1)request_mem_region()宏,请求分配指定的I/O内存资源。(2)check_mem_region()宏,检查指定的I/O内存资源是否已被占用。(3)release_mem_region()宏,释放指定的I/O内存资源。 这三个宏的定义如下:转载 2012-05-25 10:17:20 · 1008 阅读 · 0 评论 -
linux字符cdev和Inode的关系
本文所说的Inode是struct inode结构体,并不是在inode块中的inode结点。 Char Device Driver 相关数据结构:struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_h转载 2012-06-04 21:11:29 · 522 阅读 · 0 评论 -
linux设备驱动总线模型实现
设备总线驱动模型看了很多文章,都没能理解,后面看到了这篇讲的还可以,分享给大家出处:http://ericxiao.cublog.cn/一:前言Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但是。理解这部份内容,对于我们理解linux设备驱动的结构是大有裨益的。我们不但可以在编写程序程序的时候知其然,亦知其所以然。又可以学习到一种极转载 2012-04-10 10:36:47 · 838 阅读 · 0 评论 -
misc设备驱动
在linux设备驱动开发中,由于总是有很多步骤要做,像要在sysfs生成分类文件等,并且很多是分类不明确的,因此linux内核给我们提供了misc设备,可以将要很快捷简单的完成开发。所有的miscdevice共享一个主设备号MISC_MAJOR, 所有设备都形成一个链表...了解更多可进入linux kernel跟踪misc的注册。具体的函数作用网上也有很多,给出其中一个链接:http://blo原创 2012-04-10 11:06:09 · 591 阅读 · 0 评论 -
字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。
内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针 uns转载 2012-04-11 10:09:17 · 380 阅读 · 0 评论 -
支持阻塞操作的字符设备驱动
原文:http://edsionte.com/techblog/archives/1895在前文中,我们已经知道了如何编写一个简单的字符设备驱动。本文将在此基础上为这个字符设备驱动增加阻塞功能。不过在此之前,我们会先做一些准备工作。阻塞和非阻塞I/O阻塞和非阻塞I/O是设备访问内核的两种不同的模式。进程以阻塞方式访问设备并对其进行操作时,如果不能及时获得I/O资源则会被挂起转载 2012-04-11 10:20:44 · 721 阅读 · 0 评论 -
创建字符设备的三种方法
===========================================本文系作者原创, 欢迎大家转载!转载请注明出处:netwalker.blog.chinaunix.net=========================================== 《创建字符设备的三种方法》这篇文章已经在网上广为流传,你可以在http://blogold.china转载 2012-04-11 10:09:44 · 1018 阅读 · 0 评论 -
DM9000网卡驱动
http://topic.youkuaiyun.com/u/20090604/22/c0893641-ad25-438c-8498-f5e19802d305.htmlhttp://blog.tianya.cn/blogger/post_show.asp?BlogID=862226&PostID=21808359&idWriter=0&Key=0http://www.linuxidc.com/Linux转载 2012-04-12 17:43:35 · 412 阅读 · 0 评论 -
浅谈Linux PCI设备驱动
浅谈Linux PCI设备驱动(1):http://blog.youkuaiyun.com/linuxdrivers/article/details/5849698浅谈Linux PCI设备驱动(2):http://blog.youkuaiyun.com/linuxdrivers/article/details/5917478另附一本有讲到pci的kernel书:Linux Kernel中文版:http://do转载 2012-04-15 12:42:19 · 657 阅读 · 0 评论 -
基于内核的linux键盘纪录器
1 - 介绍2 - linux的keyboard驱动是如何工作的3 - 基于内核的键盘纪录的原理 3.1 - 中断句柄 3.2 - 函数劫持 3.2.1 - 劫持handle_scancode 3.2.2 - 劫持put_queue 3.2.3 - 劫持receive_buf 3.2.4 - 劫持tty_rea转载 2012-04-28 14:26:27 · 3197 阅读 · 0 评论 -
usb 与pci驱动的关系
原文:http://blog.youkuaiyun.com/fudan_abc/article/details/1807181写一下UHCI吧,也顺便怀念一下Intel,以及Intel的那几个女同事们,好久没联系了,你们可好? UHCI是Intel提出来的.虽然离开Intel一年多了,但我总觉得也许有一天我还会回到Intel.所以关于Intel的东西,我多少会关注一下.我挺怀念Intel的,虽然钱转载 2012-04-16 23:04:06 · 7666 阅读 · 0 评论 -
Linux内核模块自动加载机制
思考如果想让内核启动过程中自动加载某个模块该怎么做呢?最容易想到的方法就是到/etc/init.d/中添加一个启动脚本,然后在/etc/rcN.d/目录下创建一个符号链接,这个链接的名字以S开头,这内核启动时,就会自动运行这个脚本了,这样就可以在脚本中使用modprobe来实现自动加载。但是我们发现,内核中加载了许多硬件设备的驱动,而搜索/etc目录,却没有发现任何脚本负责加载这些硬件设备转载 2013-04-21 13:04:11 · 833 阅读 · 0 评论