linux驱动
心.跳
这个作者很懒,什么都没留下…
展开
-
linux设备驱动中的关键数据结构
对于linux设备驱动,我们需要认识到,当我们在应用程序空间调用某个系统调用时,位于内核的设备驱动是如何找到相应的硬件并完成我们在系统调用时所指定的操作的。在linux设备驱动下,有三种主要的关键数据结构,正是这三种关键数据结构的相互联系,从而完成了应用程序空间和内核层设备驱动程序以及相应的硬件之间的关联。 1.file_operation结构 file_operation把系统调用和设备驱动程序...原创 2019-05-12 20:23:27 · 1008 阅读 · 0 评论 -
linux设备驱动程序之低级led驱动
首先,内核开发人员需要明白的是,我们要做的是在内核里写一些函数,这些函数是在内核中,所以它不能用到应用程序空间的所提供的一些函数,如printf()等;其次,这些设备驱动函数,目的是提供一种为底层的物理设备(如led,按键等)实现某种操作的策略,注意,是策略而不是机制,如果想要实现某种机制,请把实现这种机制的方法放到应用程序空间;同时,设备驱动函数也向上一层提供了一些系统调用接口供应用程序空间使用...原创 2019-05-18 15:00:38 · 972 阅读 · 0 评论 -
linux驱动开发之platform总线
1.什么是platform总线 我们先来思考这样一个问题,当我们把usb设备插到电脑上时,电脑是如何识别到这个usb设备的?其实,每一个usb中都有一个vid(厂商id)和pid(设备id),vid和pid在usb的生产过程中就已经设置好了。同时,对于一个usb驱动,在驱动里也保存着这个pid和vid,当usb设备中的vid和pid是与usb驱动中的vid和pid相同时,驱动便可以识别到这个设备。...原创 2019-05-27 21:43:27 · 180 阅读 · 0 评论 -
linux内核双向链表
概要 前面一章"介绍双向链表并给出了C/C++/Java三种实现",本章继续对双向链表进行探讨,介绍的内容是Linux内核中双向链表的经典实现和用法。其中,也会涉及到Linux内核中非常常用的两个经典宏定义offsetof和container_of。内容包括:1. Linux中的两个经典宏定义2. Linux中双向链表的经典实现 转载请注明出处:http://ww...转载 2019-06-02 19:39:06 · 153 阅读 · 0 评论 -
I2C总线及Linux下的I2C体系结构
一.I2C总线 I2C(内置集成电路)总线是由Philips开发的两线式串行总线,支持多主控模式,任何能够进行发送和接收的设备都可以成为主设备。 I2C是philips提出的外设总线。I2C只有两条线,一条串行数据线SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与...原创 2019-08-12 12:00:56 · 611 阅读 · 0 评论