![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Driver
qq_34738528
这个作者很懒,什么都没留下…
展开
-
按键中断只驱动编程之逐步改进
硬件:JZ2440系统:linux2.6.22硬件操作1,看原理图:查找引脚定义。所以可以知道:S2---->EINT0---->GPF0S3---->EINT2---->GPF2S4---->EINT11---->GPG3S5---->EINT19---->GPF112,设置 4 个引脚为输入引脚:从上面的原理图可以看到,低电平要从开关接地端输入。要有电流流过,就是有压差,从上面的原理图上知道, KEY ...原创 2020-06-17 23:16:31 · 120 阅读 · 0 评论 -
21.Linux2.6 IIC驱动
目录I2C 驱动程序框架:一般 I2C 驱动分为两层:总线层:设备层驱动层:一,分析: \drivers\i2c\busses\I2c-s3c2410.c“总线设备驱动”模型:一, I2C 总线驱动程序:1,分配结构: i2c_adapter:2,设置结构 i2c_adapter:二,(分析: linux-2.6.22.6\drivers\i2c\chips...原创 2020-04-02 12:22:56 · 400 阅读 · 0 评论 -
20.IIC裸板
I2C 总线介绍电路图I2C 是个主从结构,即所有的传输都是从主机发起。从机不可能主动引起数据的传输。对于 I2C 协议来说,它只能规定到发出的第一个数据是“地址”,后面发出的内容是什么,每个 I2C 可能不同。下面是一种情况:1,平时 SDA 和 SCL 都是高电平。2,开始信号:当 SCL 为高电平的同时, SDA 有个脉冲。3,数据在...原创 2020-04-02 10:56:43 · 140 阅读 · 0 评论 -
9.6.按键消抖
目录1.Linu内核定时器1 Linux 内核定时器概述2 Linux 内核定时器核心数据结构3 Linux 内核时间相关转换函数4 Linux 内核定时器操作相关 API1. 静态定义结构体变量并且初始化(宏)2. 定时器初始化(宏)3.设置定时器(宏)4. 注册定时器到内核5.从内核注销定时器6. 修改定时器定时时间值, 并且重新注册5 Linu...原创 2020-04-01 11:19:22 · 270 阅读 · 0 评论 -
12.LCD驱动
LCD相关知识0.1硬件板载的lcd是24数据线的,但是这里接了5+6+5,低位连地,因为2440支持16、24bpp显示上图流程:电子枪移到下一个像素,“VCLK”把LCD想象成里面有很多像素,像素一行一行的排下来,后面有一个电子枪把颜色喷打到像素点上,喷完一个像素点后,电子枪移动到下一个像素电上喷打颜色,它之所以知道移动到下一个像素点,是因为有一个“...原创 2020-03-23 16:14:45 · 147 阅读 · 0 评论 -
11.输入子系统驱动
1. Input 子系统认识1. 输入设备:按键,鼠标,键盘……2. 以前编写过一个按键驱动程序,以普通的字符设备驱动模型来实现,自己去实现文件方法 file_operations方法,导致每个人编程思想不同,上报的键值,上报方法都会有差异,对于应用一个固定的应用程序来说就会不能适应不同的输入设备驱动。3. 示例:一个记事本程序,不管你使用笔记本自带的键盘输入还是外接...原创 2019-11-20 22:48:36 · 350 阅读 · 0 评论 -
Linux总线、设备、驱动模型
一、Linux总线设备驱动模型框架从Linux2.6开始Linux加入了一套驱动管理和注册机制—platform平台总线驱动模型。platform平台总线是一条虚拟总线,platform_device为相应的设备,platform_driver为相应的驱动。与传统的bus/device/driver机制相比,platform由内核统一进行管理,提高了代码的可移植性和安全性。所谓的p...原创 2019-11-16 18:04:16 · 172 阅读 · 0 评论 -
2.Linux 杂项设备驱动模型
目录1.杂项设备的核心数据结构2.杂项设备的设备号3. 杂项设备特征4. 杂项设备注册/注销函数1. 注册函数2. 注销函数5. 杂项设备驱动代码模板6.分析三种流行的字符设备编程模型:杂项设备驱动模型,早期经典标准字符设备驱动模型, Linux 2.6 标准字符设备驱动模型。1.杂项设备的核心数据结构1. 结构体:头文件路径:include...原创 2019-07-18 11:53:45 · 300 阅读 · 0 评论 -
3.Linux 早期经典标准字符设备驱动模型
目录1.设备号2. 特征3.注册函数4. 注销函数5.早期标准经典字符设备驱动模型编程模板1.主设备号和name相同2.主设备号同,name不同3.主设备号不同,name不同4.结论早期经典标准字符设备描述方式没有使用一个结构体进行封装,没有做一个整体描述。1.设备号主设备号: 0~255,(10 是杂项设备)次设备号: 0~2552. ...原创 2019-07-18 14:16:14 · 177 阅读 · 0 评论 -
4.Linux 2.6 标准字符设备驱动模型
目录1.Linux 2.6 标准字符设备核心结构2. 特征3.静态设备号申请函数:4.动态设备号申请函数:5.设备号释放函数6.核心结构分配函数7. 核心结构 struct cdev 初始化函数8.真正的设备注册\注销函数9.Linux 2.6 字符设备驱动编程步骤1.模块的加载函数:2.模块卸载函数:10.驱动源码:11.测试源码:1...原创 2019-07-18 15:38:42 · 210 阅读 · 0 评论 -
5.Linux 标准字符设备自动创建设备文件
目录1.杂项设备模型自动创建设备文件原理1. 创建一个设备类2. class_create,device_create 函数说明1.class_create 函数2.device_create 函数3. class_device_create3.自动创建设备文件示例代码片段:杂项设备在安装模块时候会自动在/dev 目录下创建设备文件,可以分析杂项设备注册函数的源码,...原创 2019-07-19 09:30:34 · 468 阅读 · 0 评论 -
2.1Linux driver misc设备驱动理解
目录1.misc_init函数分析一些需要注意的细节部分2.misc_register函数分析3.流程图Linux里面的misc杂项设备是主设备号为10的驱动设备,它的注册跟使用比较的简单,所以比较适用于功能简单的设备。正因为简单,所以它通常嵌套在platform 总线驱动中,配合总线驱动达到更复杂,多功能的效果。基于linux2.6.221.misc_init函数分析...原创 2019-07-19 09:30:52 · 465 阅读 · 0 评论 -
6.led驱动示例
目录1.分析:完善硬件操作①.看原理图,确定引脚。②.看 2440 的芯片手册。查如何操作引脚。③.写代码。1,映射物理地址:2.先清零在配置IO为输出3,将用户空间的数据传到内核空间:2.驱动源码:3.测试源码4.内核提供的驱动源码1.分析:完善硬件操作①.看原理图,确定引脚。②.看 2440 的芯片手册。查如何操作引脚。从原理图...原创 2019-07-19 09:31:01 · 400 阅读 · 0 评论 -
7.查询方式获取按键值
目录1.硬件操作:1,看原理图:查找引脚定义。2,设置 4 个引脚为输入引脚:3,在 read 操作中,返回 4 个引脚的状态。4,测试2.驱动源码3.测试源码1.硬件操作:1,看原理图:查找引脚定义。查主板:所以可以知道:S2---->EINT0---->GPF0S3---->EINT2---->GPF2S...原创 2019-07-19 13:32:43 · 581 阅读 · 0 评论 -
8.LINUX 异常处理结构、中断处理结构
目录0.1Linux 中断顶部和底部概念1.将 2440 作为单片机使用时:裸机程序时2.LINUX 中处理中断的过程:1.写程序时先设置异常入口:2.LINUX 的异常向量在哪里:3.中断跳转4.总结:异常向量:异常向量是什么?vector_irq 做的事:3. LINUX 的中断框架:内核中断框架A,单片机下的中断处理:B,内核的中断处...原创 2019-07-19 19:18:53 · 690 阅读 · 0 评论 -
1.驱动开发的一些基础知识
目录1.驱动基础1.何为驱动?2.linux驱动的体系架构3.模块化编程4.驱动分类5.常见设备驱动安全性问题2.驱动准备工作1.uboot2.linux内核3.文件系统这里暂时留点疑问:3.常用模块操作命令1. lsmod2. modinfo3. insmod4. rmmod5. modprobe4.驱动模块编译1.ma...原创 2019-07-18 11:41:13 · 1226 阅读 · 0 评论