count web page visits
Panasonic Viera 3D

12 2012 档案

摘要:今天在编译3.7内核时,出现下面的一个错误:drivers/net/ethernet/intel/igb/igb_main.c: In function ‘igb_configure’:drivers/net/ethernet/intel/igb/igb_main.c:1423: error: label<L5> in the middle of basic block 11drivers/net/ethernet/intel/igb/igb_main.c:1423: internal compiler error: verify_flow_info failedPlease su 阅读全文
posted @ 2012-12-20 15:29 夜半私时 阅读(616) 评论(0) 推荐(1)
摘要:写在前面的话:上一篇,我们将PCI驱动的基础知识进行一个简单的梳理。当然,这是不够的,因此,接下来,我们进行深一步的探究。我们从下面几个方面来讲述:一,初始化设备模块当Linux内核启动并完成对所有PCI设备进行扫描、登录和分配资源等初始化操作的同时,会建立起系统中所有PCI设备的拓扑结构,此后当PCI驱动程序需要对设备进行初始化时,一般都会调用如下的代码: static int __init example_init_module (void) { /* 注册硬件驱动程序 */ if(!pci_register_driver(&example_pci_driver... 阅读全文
posted @ 2012-12-14 14:51 夜半私时 阅读(21545) 评论(0) 推荐(1)
摘要:写在前面的话:感觉好久没有来写了,今天就来看看Linux下PCI驱动的一个基本编写规范。一,我们来看看PCI是什么。PCI---Peripheral Component Interconnect,外围设备互联总线。是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。不知道大家对总线的概念是什么,按我的通俗理解,总线就是一条国道,将许多的设备连接起来。当然,这是一种十分宽泛的理解。好,今天我们的重点并不是总线,而是在Linux驱动程序中的编写。对于驱动的编写来讲,现今的内核已经为我们实现了很多,而我们所需要的 阅读全文
posted @ 2012-12-11 09:30 夜半私时 阅读(19448) 评论(0) 推荐(0)
摘要:写在前面的话:上一次讲到了cdev的注册和销毁,将一个字符设备驱动的程序的整个轮廓已经建立起来了。但是,我们的驱动程序不可能什么都不做吧,那下面我们就来看看驱动程序的操作是怎么去定义的。必不可少的,我们要涉及到一些数据结构,我们先来看看有哪些是我们需要去注意的。首先我们来看看我们最熟悉的文件操作相关的数据结构---file_operations。该结构的作用是将驱动程操作连接到我们申请的一些设备编号上。该结构定义在<linux/fs.h>中:struct file_operations { struct module *owner; loff_t (*llseek)... 阅读全文
posted @ 2012-12-10 09:21 夜半私时 阅读(1066) 评论(0) 推荐(0)