
Linux驱动编程
文章平均质量分 68
奋斗的小程序员
嵌入式爬坑中......
展开
-
Linux驱动中断函数参数详解
中断函数参数分析总结Int request_irq (unsigned int irq, irq_handler_t handler, unsigned long flags, const char *devname, void *dev_id) A.先来分析形参: 第一个参数irq: 表示要分配的中断号。对于一些设备(系统时钟或键盘)它的值是预先固定的,而对于大多数设备来说,转载 2017-06-15 19:49:42 · 7444 阅读 · 0 评论 -
Linux驱动编程——input子系统
1 开发环境主 机:ubuntu10.04开发板:mini2440内 核:linux-2.6.22.6编译器:arm-linux-gcc(3.4.5)2 linux输入子系统本节从整体上讲解了输入子系统的框架结构。有助于读者从整体上认识linux的输入子系统。在陷入代码分析的过程中,通过本节的知识能够找准方向,明白原理。转载 2017-06-27 15:04:41 · 1741 阅读 · 0 评论 -
Linux驱动编程——设备树
Linux设备树的由来——什么是设备树Open Firmware Device Tree 开发固件设备树1,Device Tree可以描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。2,设备树信息被保存在一个ASCII 文本文件中,适合人类的阅读习惯,类似于xml文原创 2017-07-25 21:43:53 · 1780 阅读 · 0 评论 -
Linux驱动编程——platform总线的设备和驱动
一、什么是paltform总线一个现实的linux设备和驱动通常都需要挂接在一种总线上,比较常见的总线有USB、PCI总线等。但是,在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设却不依附与此类总线。基于这样的背景下,2.6内核加入了platform虚拟总线。platform机制将设备本身的资源注册进内核,有内核统一管理,在驱动程序使用这些资源时使用统一的接原创 2017-08-22 12:38:02 · 802 阅读 · 0 评论 -
Linux驱动编程——Linux配置选项详解
内核的配置选项有很多,一般情况下大部分选项都可以使用默认值,因此并不需要了解它们所代表的意义;但是某些应用场合需要将内核剪裁的足够小,这就需要我们知道各个选项的意义了。 即使不考虑内核剪裁的因素,当我们打算深入了解某一个子系统时,也需要从该子系统的配置选项入手(可以从该子系统代码目录下的各个Kconfig文件入手),掌握各个代码的关系,避重就轻的进行代码分析。转载 2017-09-06 09:49:56 · 1637 阅读 · 0 评论 -
Linux驱动编程——一些重要的数据结构
一些重要的数据结构大部分的基本驱动程序操作涉及到三个重要的内核数据结构,分别是file_operations、file、inode。文件操作我们已经为自己保留了一些设备编号,但没有将任何驱动程序操作与之匹配。file_operations结构就是用来建立这种连接的。这个结构定义在中,其中包含了一组函数指针。file结构在中定义的struct file是设备驱动程序所使用原创 2017-09-04 14:00:32 · 817 阅读 · 0 评论 -
IMX6Q学习笔记——编写LED驱动和测试程序以及相关管脚配置
刚接触IMX6Q不久,通过一个简单的LED驱动和测试程序的编写来了解管脚配置过程。LED驱动找到以前编写驱动的基本框架,如下:static long xxx_ioctl(struct file *filp, unsigned int cmd,unsigned long arg) static struct file_operations xxx_dev_fops转载 2017-08-31 11:42:56 · 2633 阅读 · 1 评论 -
Linux驱动编程——双通道LVDS屏幕配置
前言最近在调公司项目的双通道的LVDS屏幕。所用的开发板是基于imx6q的,这块开发板的资料少得可怜,基本没有。于是只能自己慢慢琢磨,记录一下完成的过程,仅供大家参考。修改内核参数将厂家给我们的源码编译后,移植到开发板上去,默认的情况下是不支持双通道的LVDS屏幕的。所以要修改内核源码,然后重新编译。1.找到要修改内核代码所在的位置要找到如下代码(每个开发板不同原创 2017-10-10 17:10:25 · 9161 阅读 · 1 评论