linux驱动
文章平均质量分 65
王小板
think
展开
-
led框架总结
☆什么是驱动框架? 内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。 ☆为什么用驱动框架? 内核维护者在内核中设计了一些统一管控系统资源的体系,这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,保证整个内核的稳定健康运行。譬如系统原创 2016-12-30 09:58:50 · 694 阅读 · 0 评论 -
新老版本的驱动注册流程
☆先看一下2.6版本中的老的驱动注册接口 register_chrdev(unsigned int major, const char *name,const struct file_operations *fops) major 就是主设备号 name 是驱动名(这个不是设备名) fops 是file_operations结构体,定义了接口和应用层的函数对接 在2.6内核版原创 2016-12-29 18:45:48 · 233 阅读 · 0 评论 -
静态映射表的建立过程
静态映射表的建立在struct machine_desc结构体的 map_io函数中,具体到x210开发板就是在 kernel/arch/arm/mach-s5pv210/mach-x210.c文件末尾的struct machine_desc结构体的.map_io 查阅代码看到.map_io = smdkc110_map_io 也就是smdkc110_map_io是真正的建立静态映射表的函数原创 2017-01-09 18:51:54 · 698 阅读 · 0 评论 -
拿到新开发板代码分析入口和gpiolib库
☆ 程序分析入口 ==>拿个一个新的开发板,一般分析的入口的文件路径(x210为例,分析makefile得出) /kernel/arch/arm/mach-s5pv210/mach-x210.c, 为进一步确定可先编译一下看看这个文件是不是被编译称为.o文件 ==>分析mach-x210.c从文件最下面的MACHINE_START宏处入手 #ifdef CONFIG_MA原创 2016-12-30 17:27:18 · 334 阅读 · 0 评论 -
platform总线分析
推荐阅读 http://www.linuxidc.com/Linux/2011-10/44627.htm 讲的很好 http://blog.csdn.net/qb_2008/article/category/896982 ☆ platform总线简介 ==>总线的产生的意义是让设备(硬件被抽象成一个结构体来代表一个设备)和驱动分离 ==>linux内核中常见的的总线有I2C总线,原创 2017-02-17 18:43:17 · 353 阅读 · 0 评论 -
转载☆ 设备驱动模型
前面章节总了platform总线模型,总线属于 linux设备驱动模型的一种模型 在linux的驱动表示中有三个基本结构体:kobject,kset,kobj_type(很多地方叫ktype),详细可参考一下文档 linux设备驱动模型一概述 http://blog.csdn.net/new_abc/article/details/755转载 2017-02-17 18:44:23 · 162 阅读 · 0 评论 -
中断体系相关
☆ 中断体系的建立 中断体系的建立对应的函数是在 arch/arm/mach-s5pv210/mach-x210.c 中结构体struct machine_desc 的元素 .init_irq = s5pv210_init_irq 开机如何被调用可以参考前面博客的 静态映射表的建立 而且中断体系用到了静态映射表的内容;查看struct map_desc结构体数组得出映射关系 虚拟地址原创 2017-02-20 11:40:44 · 241 阅读 · 0 评论 -
BUS,class, 子系统的关系
个人感觉BUS的主要是驱动的分离:设备和驱动的分离,好处是可以让一个驱动对应多个设备 class主要是设备的分层:提取同类设备的公共部分封装,好处是减少驱动开发的工作量 而子系统主要是依靠class的分层让内核编写者实现公共的代码,属于class的具体应用原创 2017-04-18 11:48:22 · 452 阅读 · 0 评论