没有合适的资源?快使用搜索试试~ 我知道了~
鱼树笔记之第12课字符设备1
需积分: 0 0 下载量 165 浏览量
2022-08-04
13:54:57
上传
评论
收藏 6.64MB PDF 举报
温馨提示
试读
99页
目录1 概念介绍 3内核对象机制: 3在内核中加入新驱动: 4驱动程序原理图: 52.字符设备驱动 LED 驱动程序_编写编译: 6“应用进程” 和 “驱动程序
资源详情
资源评论
资源推荐
网名“鱼树”的学员聂龙浩,
学习“韦东山 Linux 视频第 2 期”时所写的笔,笔记很详细,供大家参考。
也许有错漏,请自行分辨。
目录
1 概念介绍 ................................................................................................................................................................ 3
Sysfs: ......................................................................................................................................................................... 3
内核对象机制: ................................................................................................................................................... 3
Kobject: ........................................................................................................................................................... 3
设备模型结构(/include/linux/device.h): .................................................................................................. 3
在内核中加入新驱动: ...................................................................................................................................... 4
驱动程序原理图: ............................................................................................................................................... 5
2.字符设备驱动 LED 驱动程序_编写编译: ..................................................................................................... 6
“应用进程” 和 “驱动程序”如何联系: ......................................................................................................... 6
Struct file 数据结构如下: ........................................................................................................................ 8
一,内核和驱动过程: ...................................................................................................................................... 9
二,注册驱动函数细节: ............................................................................................................................... 11
总结过程:驱动程序和应用程序的联系 .................................................................................................... 12
从应用层看: ............................................................................................................................................. 12
从驱动程序看:如操作 LED ................................................................................................................... 12
四,写一个简单的字符驱动程序: ............................................................................................................. 13
1,一个简单的框架: ............................................................................................................................. 14
驱动程序中设备号: ................................................................................................................................ 16
应用程序设备节点: ................................................................................................................................ 16
完善点亮 LED: ................................................................................................................................................. 17
一,分析:完善硬件操作 ............................................................................................................................... 17
先查原理图: ............................................................................................................................................. 18
二,写代码:硬件上的操作: ...................................................................................................................... 19
总结:写一个驱动程序。 ............................................................................................................................... 23
3 查询方式获取按键值: .................................................................................................................................... 26
一,驱动框架实现: ........................................................................................................................................ 26
二,硬件操作: ................................................................................................................................................. 27
LINUX 异常处理结构、中断处理结构: ...................................................................................................... 31
一,Linux 异常处理体系结构 框架: ........................................................................................................ 31
LINUX 中处理中断的过程: ................................................................................................................ 31
①,LINUX 的异常向量在哪里: .......................................................................................................... 33
二,LINUX 的中断框架:内核中断框架 ..................................................................................................... 43
总结:“中断框架”(按下按键)。 ........................................................................................................ 51
LINUX 内核中断框架: ............................................................................................................................ 56
三,分析“request_irq()”: ............................................................................................................................. 57
卸载中断处理函数: ................................................................................................................................ 61
总结: ........................................................................................................................................................... 61
四,按键中断处理实例: ............................................................................................................................... 62
字符 设备驱动-POLL 机制: ............................................................................................................................ 72
一、内核框架: ................................................................................................................................................. 72
二、驱动程序: ................................................................................................................................................. 76
现在来总结一下 poll 机制: ....................................................................................................................... 77
字符设备驱动 异步通知: ................................................................................................................................. 79
应用程序: .......................................................................................................................................................... 79
一,应用程序主动的去查询或 read。 ............................................................................................. 79
二,异步通知: ......................................................................................................................................... 79
三,异步通知功能的驱动函数的应用程序: ........................................................................................... 81
应用程序: .......................................................................................................................................................... 84
7,字符设备驱动 同步互斥阻塞 ...................................................................................................................... 87
1. 原子操作 ......................................................................................................................................................... 87
2. 信号量 .............................................................................................................................................................. 87
3. 阻塞 .................................................................................................................................................................. 88
1. 原子操作 ......................................................................................................................................................... 88
2. 信号量 .............................................................................................................................................................. 91
3. 阻塞 .................................................................................................................................................................. 93
8.按键消抖 ................................................................................................................................................................ 95
一,定时器:引入这个概念将“抖动”去掉。 ............................................................................................. 95
1 概念介绍
Sysfs:
LINUX2.6 内核开发了全新的设备模型。它采用 sysfs 文件系统,其类似于 proc 文件
系统,用于将系统中设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。
内核对象机制:
Kobject:
LINUX2.6 引入的新的设备管理机制。通过这个数据结构使所有设备在底层都具有统
一的接口。Kobject 提供基本的对象管理,是构成 LINUX2.6 设备模型的核心结构,其
与 sysfs 文件系统紧密关联,每个在内核中注册的 kobject 对象都对应于 sysfs 文
件系统中的一个目录。Kobject 通常通过 kset 组织成层次化的结构,kset 是具有相
同类型的 kobject 的集合。
设备模型结构(/include/linux/device.h):
1,devices-设备结构:
2,drivers-驱动结构:
3,buses-总线结构:
4,classes-设备类结构:
给驱动模块提供参数:
在内核中加入新驱动:
将驱动编译进内核。
若将 pxa_smbus.c 添加到内核:
1,先将其复制到 /drivers/char 目录,更改该目录下的 Kconfig,增加:
2,在该目录下的 Makefile 中增添下行:
3,进入源代码目录,执行 make menuconfig:
驱动程序原理图:
open read write ioctl ……
称为系统调用
执行swi指令进入内核
调用其他库函数
其他库函数的实现
系统调用的异常处理
open read write ioctl ……
应用程序
库
内核
驱动程序
其他功能
硬件设备
剩余98页未读,继续阅读
空城大大叔
- 粉丝: 22
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 面向计算机视觉的基础库,支持Linux、Windows及MacOS平台 提供了众多功能,包括基于PyTorch的通用训练框架等
- 基于LQR实现的车辆轨迹跟踪matlab源码+项目说明+超详细注释(高分项目)
- 视2.css
- Android图片处理工具类,包括: 图片查看、照片墙、bitmap转存、圆角、剪切、图片加载缓存、图片压缩等
- 甘豆影评React Native版
- 百度地图,显示闸站分布,以及切换闸站位置,上传闸站图片信息的cordova插件,包含百度地图和百度定位库文件
- 基于合泰单片机的智能夹球小车(esp8266代码+k210代码+合泰单片机代码)
- 一个天气查询的安卓APP
- 基于CC2530+DHT11温湿度传感器实现物联网多传感器火灾报警系统
- 人工智能入口计划-通往人工智能的大门 项目正在研究阶段,编码暂时停滞调整
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0