Linux驱动学习笔记
文章平均质量分 78
kitestar
这个作者很懒,什么都没留下…
展开
-
Linux驱动学习——简单字符设备
Linux系统划分为用户空间和内核空间。用户空间有应用程序和应用程序运行时使用的一些库,内核空间包含七大子系统。现代CPU通常实现了不同的工作模式,以ARM为例,有7种工作模式:用户模式、管理模式、快速中断、外部中断、数据访问中止、未定义指令中止、系统模式。其中USR模式和SVC模式,这两种本身硬件上就定义了自己的访问权限,后者的权限最高,能访问所有硬件资源。Linux系统的软件形式空间的划分原创 2014-08-07 15:47:43 · 435 阅读 · 0 评论 -
Linux驱动学习——中断、定时器
中断Linux内核有中断功能的原因:外设的处理速度远远慢于CPU,如果不采取中断机制,CPU获取外设数据只能靠轮询,这样会降低处理器的利用率。 中断源----->中断控制器----->CPU (硬件)ARM处理器的中断控制器集成在CPU内部,外设和CPU之间的中断信号要靠中断控制器来控制,中断控制器可以管理中断,屏蔽、使能中断、原创 2014-08-08 20:36:00 · 2775 阅读 · 1 评论 -
Linux驱动学习——等待队列
等待队列应用程序在中断发生之前应该有两种等待状态,一种是忙等待,另一种休眠等,也就是如果设备没有准备就绪,最好应该让进程进入休眠。休眠的概念就是将CPU的资源从当前进程上撤下来给别的任务去使用。只有驱动才能访问硬件设备,所以只有驱动才能判断设备到底可用不可用,如果驱动发生设备不可用,那么由设备驱动主动让进程休眠。如何唤醒休眠的进程:唤醒的前提是设备可用了,通过中断判断设备可用,如果产生中断原创 2014-08-09 11:08:59 · 556 阅读 · 0 评论 -
Linux驱动学习——并发和竞态
linux内核并发和竞态:并发:多个执行单元同时发生(进程和中断)竞态:多个执行单元对共享资源的访问。 条件: 1.并发 2.共享资源 3.同时访问共享资源:硬件资源和软件上的全局变量。硬件资源大到一个串口设备,小到寄存器的某个bit位互斥访问:当一个执行单元在访问共享资源时,其他执行单元禁止访原创 2014-08-09 11:03:03 · 337 阅读 · 0 评论 -
Linux驱动学习——platform平台总线
linux内核为了让设备驱动具有更好的可移植性,设备驱动采用设备-总线-驱动模型。设备-总线-驱动模型的实现原理:1.内核已经帮你定义好了一个虚拟总线“platform_bus_type”,也称为平台总线。2.在这个总线上维护着两个链表,一个是存放硬件信息的dev链表,一个是存放纯软件信息的drv链表;3.dev链表中的每一个节点的数据结构是struct platform_devi原创 2014-08-09 13:52:02 · 506 阅读 · 0 评论 -
Linux驱动学习——I2C
I2C相关:1.串行传输:一个时钟周期传输一个bit位,通过一根数据线完成2.并行传输:一个时钟周期传输一个1字节,比如通过8根数据线完成相关概念:1.主端,主设备,master:一般就是常说的CPU2.从端,从设备,slave:一般就是说的I2C设备3.I2C总线:两线式串行总线,CPU跟外设之间的连接通过2根线进行,CPU跟外设之间的数据交互通过1根数据线完成,在这两个原创 2014-08-11 21:23:42 · 657 阅读 · 0 评论