![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
KimWang-1
这个作者很懒,什么都没留下…
展开
-
如何实例化i2c_client(四法)
一、在板文件进行client的实例化在内核的初始化中(例如在板文件中)定义设备的信息。这种操作的前提是内核编译的时候已经确定有哪些i2c设备和它们的地址,还要知道连接的总线的编号。比如在板文件/arch/arm/mach-XXX/board_XXX.c中可以用类似下面的代码来注册i2c设备的信息。1. static structi2c_board_info __initdata ui转载 2016-03-18 10:23:05 · 1679 阅读 · 0 评论 -
高精度定时器(HRTIMER)的原理和实现
上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件。内核从2.6.16开始加入了高精度定时器架构。在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点:低分转载 2016-03-18 10:25:13 · 1201 阅读 · 0 评论 -
Linux workqueue工作原理
1. 什么是workqueue Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程. 工作队列(workqueue)是另外一种将工作转载 2016-03-18 10:27:15 · 339 阅读 · 0 评论 -
input子系统 KeyPad-Touch上报数据格式与机制
linux drive中input子系统上报信息,调用函数void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value),input子系统最终调用copy_to_user(buffer, event, sizeof(struct input_event))将信息上报给上层,ev转载 2016-03-18 10:28:43 · 361 阅读 · 0 评论 -
解密module_init
在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。1.在MODULE没有定义这种情况下,module_init定义如下:#definemodule_init(x) __initcall(x);因为#define转载 2016-03-18 10:32:28 · 283 阅读 · 0 评论 -
Linux驱动中,probe函数何时被调用
声明:以下主要内容参考自:关于struct device_driver结构中的probe探测函数的调用http://blog.chinaunix.net/u2/71164/showart.php?id=1361188用SourceInsight跟踪:从driver_register看起,此处我的这里是:int driver_register(struct device_dr转载 2016-03-18 10:35:05 · 560 阅读 · 0 评论 -
linux中class_create和class_register说明
本文介绍linux中class_create和class_register的相关使用方法1 class结构体介绍 内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来转载 2016-03-18 11:01:52 · 837 阅读 · 0 评论 -
Freescale imx6 linux platform 驱动模型分析
Freescale imx6 linux platform驱动模型分析一.概述 platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理器芯片都是soc,如Freescale imx6,它包括处理器内核和系统的外设(l原创 2016-05-05 16:38:35 · 2104 阅读 · 0 评论 -
Freescale imx6的android lvds屏幕驱动调试
一、概述 1、飞思卡尔 imx6的显示屏驱动架构: 2、目标: 因imx6开发板本身已提供LVDS接口,目标屏幕是LG的LA070WV6,其为RGB接口,imx6和LG屏之间用TW8836芯片来转接,LG屏的主要参数为:分辨率:800*480色彩:32位时钟频率:33.26MHz二移植过程1、首先把屏幕的接口接到开发板原创 2016-05-05 17:41:22 · 7475 阅读 · 0 评论