Linux驱动
文章平均质量分 61
lincuiting06
这个作者很懒,什么都没留下…
展开
-
platform架构小结十问
1.问:如何编写platform总线,设备,驱动这一套架构的设备驱动? 答:分为两个.c文件,一个是drv.c,一个是dev.c;前者实现平台驱动,后者实现平台设备,平台总线不用我们自己实现。2.问:编写平台驱动的核心内容有哪些? 答:分配,设置,注册一个platform_driver3.问:如何注册平台驱动? 答:使用platform_driver_register(struct platf原创 2015-12-11 16:39:35 · 333 阅读 · 0 评论 -
Linux输入子系统分析二
(五)input输入子系统主要函数分析 (1)各种注册函数:input_register_device,.input_register_handle,.input_register_handler 1.input_register_device:用来注册一个输入设备 int input_register_device(struct unput_dev *dev) 主要功能:初始化一些默认值,原创 2015-12-11 16:35:57 · 263 阅读 · 0 评论 -
Linux输入子系统分析一
一。为什么要引入input子系统? 输入设备分散不堪,用input子系统可以对分散的,不同类别的输入设备进行统一驱动。 好处: 1.统一了物理形态各异的输入设备相似的设备处理,例如各种鼠标,键盘,触摸屏。 2.提供了用于分发输入报告给用户应用程序的简单事件接口。你的驱动不必创建管理/dev节点以及相关的访问方法。因此他能够很方便的调用输入API以发送鼠标移动,键盘按键或者触摸事件给用户空间。原创 2015-12-11 16:33:52 · 380 阅读 · 0 评论 -
Linux驱动模型分析之platform
一。概述(1)一个现实的Linux设备和驱动通常需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等设备而言,这自然不是问题。但是在嵌入式系统里面,SOC系统中集成的独立的外设控制器,挂接在SOC内存空间的外设却不需要依附于此类总线。基于这一背景,Linux发明了一种虚拟总线,就是platform总线,相应设备称为platform_device,而驱动称为platform_drive原创 2015-12-11 16:31:06 · 375 阅读 · 0 评论 -
linux设备驱动之ioctl控制
大部分驱动除了具有读写的能力之外,还需要具有对硬件控制的能力。一。用户空间:ioctl 用户程序使用ioctl系统调用来控制设备。用户程序只是通过命令码告诉驱动程序想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。 函数原型:int ioctl(int fd, unsigned long cmd, …); 参数解析:fd:打开的文件描述符原创 2015-12-11 16:43:42 · 3007 阅读 · 0 评论 -
AM1808触摸屏驱动移植
此文是基于AM1808平台的LCD 驱动移植过程。一。Board-da850-evm.c#define DA850_TSC_PEN GPIO_TO_PIN(2,12) //lct set#include <linux/spi/ads7846.h>static int ads7843_pendown_state(void){ int pdt = 0; pdt = !gpio_get原创 2015-12-18 17:12:56 · 542 阅读 · 0 评论 -
AM1808 LCD驱动移植
此文是基于AM1808平台的LCD 驱动移植过程。一。修改LCD panel参数,文件: Da8xx-fb.cstatic struct da8xx_panel known_lcd_panels[] = { /* Sharp LCD035Q3DG01 */ [0] = { .name = "Sharp_LCD035Q3DG01", .width = 3原创 2015-12-18 16:57:38 · 1223 阅读 · 0 评论 -
RS485驱动
一、原理 RS232用两根线实现全双工,两根线各做各的,互不影响,可以同时进行;RS485虽然可以用四根线实现全双工,但是实际应用中比较少见,更常见的是只用两根线实现半双工,这样一来,就涉及到“收状态”和“发状态”的切换,这一切换又涉及两种情况: 1、驱动程序中已经含有对半双工情况下的接受切换,驱动程序会根据你读或写的动作,自动进行切换。这种情况下,RS485的编程就与RS2原创 2015-12-18 16:10:45 · 5712 阅读 · 0 评论 -
将自己的驱动加到内核
驱动直接编译进内核uImage (用户自己定制的驱动程序添加方法)程序编写方式和模块编写一样。 A 修改Kconfig B 修改Makefile 注:此处修改的Kconfig和Makefile都是相应功能文件下的文件! 以vk32xx.c为例 1、把写好的驱动根据功能首先cp到相应的位置,比如vk32xx.c就是个SPI驱动,就把它cp到/drivers/spi/下面 2、配原创 2015-12-11 17:00:41 · 469 阅读 · 0 评论 -
字符设备驱动
一。驱动分类:字符设备,块设备,网络接口设备。二。什么是字符设备:按字节来访问的设备,驱动通常实现open,read,write等系统调用。三。字符设备驱动模型 四。字符设备程序设计 (一)设备号 (1)设备号是什么:字符设备通过字符设备文件来存取。输入 ls -l输出的第一列是‘c’,这就是字符设备文件的标识。还有逗号分隔的两个数,他们分别是字符设备文件的主次设备号。 主设备号:用来标识与原创 2015-12-11 16:42:26 · 352 阅读 · 0 评论