第10课设备驱动开发内容摘要:
它们的总线进行组织 struct device /sys/devices/*/*/../ 设备类别( Device Classes) 系统中设备的类型(声卡,网卡,显卡,输入设备等),同一类中包含的设备可能连接不同的总线 struct class /sys/class/*/ 设备驱动( Device Drivers) 在一个系统中安装多个相同设备,只需要一份驱动程序的支持 struct device_driver /sys/bus/pic/drivers/*/ Platform机制 • 从 Linux 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver。 • 通过 Platform 机制开发发底层驱动的大致流程为 : 定义 platform_device 注册 platform_device 定义 platform_driver 注册 platform_driver。 • Platform_bus是一 个虚拟总线,使设备的管理更加简单化。 各个 Platform device 和 Platform driver挂载在虚拟总线 platform_bus上 • 接口 定义在 linux/中。 同步机制 • 同步 锁 • 信号量 • 读写信号量 • 原子操作 • 完成 事件( pletion) 同步锁 • 自旋锁( spinlock) • 读写锁( rwlock) • RCU锁 ( ReadCopy Update) • Seqlock 自旋锁( 1) • 如果一个 自旋锁被别的 任务 保持 ,调用者就一直循环 , 不停检测 该 自旋锁的保持 者是否 已经 释放了锁。 • 自旋 锁不会引起调用者 睡眠。 自旋 锁使用者一般保持锁事件非常短,所以选择自旋而不是睡眠,效率会高于互斥锁。 自旋锁( 2) • 自旋锁的类型是 spinlock_t • 初始化 – spinlock_t my_spinlock = SPIN_LOCK_UNLOCKED。 – void spin_lock_init(spinlock_t *lock)。 • 获得锁: void spin_lock(spinlock_t *lock)。 • 释放锁: void spin_unlock(spinlock_t *lock)。 • 非 阻塞版本: – int spin_trylock(spinlock_t *lock)。 – int spin_trylock_bh(spinlock_t *lock)。 读写锁( rwlock)( 1) • 访问者分为两类 : 读者 与 写者。 • 任意 数目的 读者 可以 同时 进入临界区,但是写者必须是排他的。 • 读写锁类型是 rwlock_t, 位于linux/ 读写锁( 2) • 初始化: – rwlock_t my_rwlock=RW_LOCK_UNLOCKED。 /*静态 */ – rwlock_init(amp。 my_rwlock)。 /* 动态 */ • 读者锁的获取和释放 : – void read_lock(rwlock_t *lock)。 – void read_unlock(rwlock_t *lock)。 • 写 者 锁的获取和释放: – void write_lock(rwlock_t *lock)。 – int write_trylock(rwlock_t *lock)。 – void write_unlock_bh(rwlock_t *lock)。 RCU锁( 1) • RCU( ReadCopy Update,读 拷贝修改 ) 锁机制是。 • 对于被 RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它 时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调( callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。 这个时机就是所有引用该数据的 CPU都退出对共享数据的操作。 • 读者 基本上没有同步开销,不需要锁,不使用原子指令; 但是 写 者同步开销相对较大,因为它需要延迟数据结构的释放,复制被修改的数据结构,也必须用某种锁机制同步并行的其它写者的修改操作。 RCU锁(。第10课设备驱动开发
相关推荐
i wxwd x第 19页 第 10讲 章毓晋 (THEEIE) 感知机 • 对模式矢量增加第 n + 1个元素 • 构建一个扩充模式矢量 y,让 yi = xi, i = 1, 2, …, n,且后面加一个元素 yn+1 = 1 其中 y = [y1 y2 … yn 1]T是个扩充模式矢量, w = [w1 w2 … wn wn+1]T是个权矢量 • 关键问题:用模式矢量的给定训练集确定 w
– 多媒体 – 面向对象的处理 – 交叉平台 – 开放式 现代数据库还要具有: – 数据仓库、数据开采、知识发现、决策支持的功能。 下一页 上一页 停止放映 第 22页 几种常用的数据库 XBASE 一种大众化的关系型数据库系统;类似产品有: DBASE、 FOXBASE、 FOXPRO、 VFP等系列产品。 Oracle 大型关系数据库管理系统,具有兼容性、可移植性、可联接性、开放性、高生产率
复选框,这样可以将注释内容作为讨论的第一条。 之后输入主题和注释,输入信息完毕后,可以对注释内容进行格式化,也就是设置文字的对齐方式、字形、字号等信息。 ( 7)设置完成后,如果需要发送电子邮件给其他项目成员,通知他们有新的文件,可以点击 “ 下一步 ” 按钮,则会出现发送电子邮件的通知窗口。 如果不需要发送电子邮件,直接点击“ 完成 ” 按钮,整个过程就结束了。 (
消除管壁效应,避免床层过热。 因为靠近反应器器壁处的空隙率要高于反应器中心处,因此管壁处的流率和线速可能会高于内部,提高反应器直径与催化剂颗粒直径比值有利于管壁效应的消除,但不能过高,否则不利于反应热的导出,一般控制在 612。 催化剂床层高度一般为床层直径的 2 3倍左右。 全自动催化反应的实验系统 系统构成 以计算机控制反应温度、气体流速、气体切换、色谱数据等。 系统的应用 (
协同刺激分子)、迁入外周免疫器官 三、固有免疫应答的特点 (一)识别方式 通过 PRR识别 PAMP 模式识别受体 ( pattern recognition receptor, PRR) 病原相关分子模式 ( pathogen association molecular pattern, PAMP) PRR 膜型 分泌型 Toll样受体( TLR) 甘露糖受体( MR) 清道夫受体( SR)
成。 则斯役之价值 , 直可惊天地 , 泣鬼神 , 与武昌革命之役并寿。 —— 孙中山 黄花岗七十二烈士纪念碑 二、孙中山一生的四次转变 “ 医人 ” 到 “ 医国 ” “ 改良 ” 到 “ 革命 ” ①原因: ②投身革命事业的概况: 武昌起义: 中华民国成立: 《 中华民国临时约法 》 : 结果:袁世凯窃取革命果实 人民英雄纪念碑 武昌起义 阅读材料:中华民国之主权,属于国民全体 ……