linux设备驱动
GD_Linux
从事嵌入式linux底层内核驱动开发,硬件电路开发,智能硬件系统软硬件开发
展开
-
将linux混杂驱动改为平台驱动案例
把/drivers/char/mini6410_buttons.c给移植成platform驱动,下面是整个的移植过程:1.首先在/opt/FriendlyARM/mini6410/linux/linux-2.6.38/drivers/char 目录下添加我们的按键device,文件名定为dev_buttons.c,其源码为:#include <linux/module.h> #include原创 2016-01-05 23:21:36 · 354 阅读 · 0 评论 -
Linux网络设备驱动(一)
一.网络设备驱动基础1.以太网基础理论以太网是局域网的一种,它使用载波监听多路访问及冲突检测技术(CSMA/CD),并以10M/S的速率运行在多种类型的电缆上,常用的网卡芯片有DM9000、DM9161、CS8900芯片。以太网的拓扑结构有总线型和星型,以太网的工作模式有半双工和全双工。目前双绞线是以太网最普通的传输介质,它多用于从主机到集线器或交换机的连接,光纤主要用于交换机间的级联和交换机到路由原创 2016-01-10 10:50:55 · 815 阅读 · 0 评论 -
linux input子系统驱动(三)
linux input子系统分析--子系统核心.事件处理层.事件传递过程一. 输入子系统核心分析。 1.输入子系统核心对应与/drivers/input/input.c文件,这个也是作为一个模块注册到内核的。所以首先分析模块初始化函数。[cpp] view plaincopystatic int __init input_init(void) { int err;原创 2016-01-10 10:30:52 · 435 阅读 · 0 评论 -
linux input子系统驱动(二)
linux input子系统分析--主要函数 一. 各种注册函数 因为分析一所讲的每种数据结构都代表一类对象,所以每种数据结构都会对应一个注册函数,他们都定义在子系统核心的input.c文件中。主要有三个注册函数 input_register_device 向内核注册一个input设备 input_register_handle 向内核注册一个handle结构原创 2016-01-10 10:24:22 · 339 阅读 · 0 评论 -
linux input子系统驱动(一)
linux input子系统分析--概述与数据结构 Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏等,在内核中都是以输入设备出现的。下面分析input输入子系统的结构,以及功能实现。一. Input子系统结构与功能实现 1. Input子原创 2016-01-10 10:13:56 · 329 阅读 · 0 评论 -
Linux下的RTC子系统设备驱动
实时时钟的作用主要是为操作系统提供一个可靠的时间,并在断电下,RTC时钟也可以通过电池供电一直运行下去。实时时钟驱动也有一个子系统,叫做RTC子系统,其源代码目录是/driver/rtc/,在这个目录下有一个rtc核心代码区,主要是Rtc-dev.c、Rtc-sysfs.c和Rtc-proc.c三个文件,其中Rtc-dev.c主要是增加一个字符设备的作用,例如用户层的ioctl命令就是通过访问该文件原创 2016-01-06 15:12:23 · 568 阅读 · 0 评论 -
IIC设备驱动实例
前面转载了很多关于i2c的文章,做完一个项目了,也该自己写点i2c心得了,我这个可是纯应用角度的,想看原理的,去看转载的文章,人家写的好多了! 对于一个i2c设备来说,其设备文件是最简单也是最复杂的,说它简单是因为很设备厂商会提供linux下的代码,这样就简单了;但是也有很多厂商它不提供或不完整提供linux下的代码,这样的话当然就复杂了。那么这个我现在这里就不说了,下面说说做了几个I2C设备原创 2016-01-06 13:46:34 · 727 阅读 · 0 评论 -
Linux下的I2C总线驱动 .
一.系统理论1. I2C驱动体系概述 Linux I2C驱动体系结构主要由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。I2C核心是I2C总线驱动和I2C设备驱动的中间枢纽,它以通用的、与平台无关的接口实现了I2C中设备与适配器的沟通。I2C总线驱动填充i2c_adapter和i2c_algorithm结构体。I2C设备驱动填充i2c_driver和i2c_client结构体。2.原创 2016-01-06 13:56:05 · 605 阅读 · 0 评论 -
Linux下的LED子系统驱动
转载自 http://my.csdn.net/weiqing1981127最简单的led驱动就是从端口输出0或1来关闭或点亮灯。而我们这里讲的led子系统,主要是对led事件进行了分装和优化,这里我们主要讲的是可以实现跨平台的led驱动。不管你是使用三星的平台,还是Atmel的平台,你只要知道如何在你的BSP中添加平台数据,并且知道如何在应用程序中使用这个驱动,那么你就不用因为新的平台而再次编写l转载 2016-01-06 13:51:50 · 2261 阅读 · 0 评论 -
Linux中断(interrupt)子系统之三:中断流控处理层
/*****************************************************************************************************/转载自http://blog.csdn.net/droidphone/**********************************************************转载 2016-01-05 21:32:41 · 400 阅读 · 0 评论 -
Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
/*****************************************************************************************************/转载自http://blog.csdn.net/droidphone/**********************************************************转载 2016-01-05 21:35:24 · 460 阅读 · 0 评论 -
Linux下的platform总线驱动(一)
转自 http://my.csdn.net/weiqing1981127一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini2440开发板,运用Platform和device_attribute机制,编写按键驱动代码和测试转载 2016-01-05 15:29:48 · 476 阅读 · 0 评论 -
Linux下的platform总线驱动(二)
转自 http://my.csdn.net/weiqing1981127三.平台设备驱动测试这里我们采用Mini2440开发板,编写基于平台设备的按键驱动,要求按键驱动触发方式为单边沿触发,同时要求添加设备属性项。因为这个驱动比较简单,我就不去细致分析了,如果对硬件不理解可以参考mini2440开发板数据手册,如果对软件不理解,可以参考上文平台设备的讲解。在此,我提供platform设转载 2016-01-05 15:31:29 · 342 阅读 · 0 评论 -
Linux中断(interrupt)子系统之一:中断系统基本原理
/****************转载自http://blog.csdn.net/droidphone,感谢原作者*****************************/这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到转载 2016-01-05 16:12:00 · 496 阅读 · 0 评论 -
linux网络设备驱动(二)
三.网络设备驱动分析我们先看看dm9000.c驱动的模块加载函数static struct platform_driver dm9000_driver = { .driver = { .name = "dm9000", //驱动名 .owner = THIS_MODULE, .pm =原创 2016-01-10 10:53:42 · 660 阅读 · 0 评论