linux驱动
with_dream
这个作者很懒,什么都没留下…
展开
-
Linux字符设备驱
1、概述1.1 驱动分类 linux下的驱动分为三类: 字符驱动设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。 块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘、U盘和SD卡等存储设备。 网络设备:网络设备比较特殊,不在是对文件进行操作原创 2017-08-23 22:49:37 · 298 阅读 · 0 评论 -
cdev方式注册驱动
1、简介内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。(1)register_chrdev 比较老的内核注册的形式 早期的驱动 (2)register_chrdev_region/alloc_chrdev_region + cdev 新的驱动形原创 2017-09-03 00:12:12 · 674 阅读 · 0 评论 -
杂项设备驱动
1、简介Linux杂项驱动出现的意义在于:有很多简单的外围字符设备,它们功能相对简单,一个设备占用一个主设备号对于内核资源来说太浪费。 所有这些设备都统一采用主设备号为10,次设备动态分配的方式注册到内核杂项设备描述结构体linux/miscdevice.hstruct miscdevice { int minor;//次设备号 const char *name;//设备的名字原创 2017-09-02 21:19:50 · 479 阅读 · 0 评论 -
Linux设备树-未完成
http://blog.csdn.net/21cnbao/article/details/8457546http://blog.csdn.net/airk000/article/details/21345159http://www.cnblogs.com/xiaojiang1025/p/6131381.htmlhttp://www.embedu.org/Column/7506.html原创 2017-09-06 13:38:05 · 190 阅读 · 0 评论 -
input子系统
1、简介1.1 概述为输入设备(按键、键盘、触摸屏)的驱动规范完成上报输入信息任务的子系统。input是对字符设备驱动的另一种封装。 input子系统在驱动中不是必须的,它的存在只是规范了上报输入信息这一任务,减少驱动与应用开发工程师的沟通成本。 input子系统是输入设备驱动一个标准,一个约定俗成的规范,几乎所有输入设备驱动都是使用input来上报输入信息的在Linux中,Input子系统由三原创 2017-09-04 22:47:00 · 330 阅读 · 0 评论 -
Linux驱动的等待队列、轮询及内核线程
1、简介根据不同需求,linux内核有不同I/O操作模型: 非阻塞: 进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到可以进行操作为止 阻塞: 指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作条件后再进行各项操作等待队列: 用来阻塞或唤醒一个进程,实现阻塞I/O访问 轮询操作: 阻塞I/O访问的应用程序通常使用select()和poll()系统调用查询机制来原创 2017-09-04 01:10:16 · 1354 阅读 · 0 评论 -
Linux下延时与内核定时器
1、简介1.1 linux的时间概念Linux系统定时器是可编程的频率中断处理器,此频率为每秒的定时器节拍数,对应内核变量HZ HZ是一个与体系结构相关的常数Linux为大多数平台提供HZ值范围为50-1200 x86 PC平台默认为1000 内核中有一个非常重要的全局变量: jiffies它是一个无符号32位整数,用来记录自内核启动以来的时钟滴答总数( 即每隔1/HZ秒加1)1.2 时间延时在原创 2017-09-04 00:27:18 · 438 阅读 · 0 评论 -
Linux内核的并发与同步
1、简介1.1 基本概念抢占式内核: 用户程序在执行系统调用期间可以被高优 先级进程抢占 非抢占式内核:用户程序执行系统调用不能被其他进程 抢占对称多处理器(SMP): 一个计算机上汇集了多个处理 器,他们共享内存和总线,可并行处理数据 单处理器: 只有一个CPU并发指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞原创 2017-09-04 00:01:33 · 306 阅读 · 0 评论 -
linux内核中断底半部
1、内核中断处理如果CPU接收到一个中断,它会停止一切工作,调用中断处理函数,因为进程调度依赖中断,此时进程调度也会停止,所以就要求我们的中断处理一定要快。 使用中断时,需要注意: 不能使用导致睡眠的处理机制(信号量、等待队列等) 不能与用户空间交互数据(copy_to/from_user) 中断处理函数执行时间尽可能短原创 2017-08-24 15:59:29 · 420 阅读 · 0 评论 -
arm GPIO访问规则
1、简介开发板裸机开发需要自己按照数据手册自己计算每个gpio的偏移,以实现相应功能,如上拉,第二功能等。 linux为开发者提供了一套统一的方法,方便开发。1.1 gpio申请与释放函数想要使用gpio需要先申请,申请成功才能使用。这些头文件定义在内核文件的”include/linux/gpio.h”中。//申请io 成功返回0 失败返回错误码static inline int gpio_re原创 2017-09-03 12:14:46 · 770 阅读 · 0 评论 -
Platform总线注册驱动
1、简介Linux内核中常见的的总线有I2C总线,PCI总线,串口总线,SPI总线,PCI总线,CAN总线,单总线等,所以有些设备和驱动就可以挂在这些总线上,然后通过总线上的match进行设备和驱动的匹配。但是有的设备并不属于这些常见总线,所以我们引入了一种虚拟总线,也就是platform总线的概念,对应的设备叫做platform设备,对应的驱动叫做platform驱动。当然引入platform的概原创 2017-09-03 14:20:29 · 310 阅读 · 0 评论