设备驱动开发详解第一章读书笔记

原创 2012年03月24日 21:12:58

设备驱动开发详解

第一章  Linux设备驱动概述

硬件是基础,代码最终会落实为硬件的组合逻辑和时序逻辑。

OS适合于多任务环境。

计算机硬件:1. CPU   2. 存储器  3. 外设    驱动针对存储器与外设,而不是CPU

字符设备:串行顺序访问

块设备:可随机访问

网络设备:不对应文件系统节点

Linux设备驱动重点:良好的硬件基础,懂得SRAM Flash  SDRAM读写方式, UART IIC USB接口以及轮询,中断,DMA原理,PCI总线,MMU单元等。

第二章  驱动设计的硬件基础 

主流嵌入式CPU:   1. ARM  

                   2. MIPS公式的MIPS :常用于以太网交换   

                   3. IBMMotorolaPowerPC:常用于通信和工控

                   4. 飞思卡尔半导体公司的68K/Coldfire: 常用于DSP模块

Motorola的半导体部已独立为飞思卡尔半导体公司

中央处理器的体系:1. 冯洛伊曼结构   2. 哈佛结构

指令集: RISC  CISC    

DSP一般采用改进的哈佛结构

德州仪器(TI)  美国模拟器件公司(ADI)是全球DSP两大主要厂商

芯片使用:

一般来讲在一部手机中会使用多种芯片:1. MCU用于处理图形用户界面和OS

  2. DSP进行音视频编解码

3. ASIC进行射频

 存储器: 1. 只读存储器(ROM)  2. 闪存(Flash)  3. 随机存取存储器(RAM)  4. /磁介质存储器

ROM(将被Flash取代的趋势)  ROM(不可编程)  PROM(可编程)  EPROM(可擦出、可编程)  EEPROM(电可擦出、可编程)

Flash1. NOR Flash 或非Flash: Intel<---------SRAM----------->CPU接口

      2. NAND Flash 与非Flash  东芝<---------------控制电阻转换--------------->CPU接口

一个Nand Flash接口主要信号:

1. I/O总线  2. 芯片启动   3.写使能  4. 读使能  5. 指令锁存使能  6. 地址锁存使能   7. 就绪/

NOR && NAND Flash对比:

1  容量/性价比: NAND > NOR

2.  擦写次数:   NAND > NOR

3. 擦写/编程速度:NAND > NOR

4. 反转概率(出错)NAND > NOR

Flash 编程原理都是将1写成0,而不能将0写成1。所以在Flash编程之前必须将对应的块擦除,而擦出过程就是将所有位写1,块内的所有字节变成0xFF

问题:Flash可编程含义?擦出与编程含义?

典型的类SRAM接口 P26

ROM Flash 磁介质存储器  非易失性存储器(掉电不会丢失)

RAM(掉电丢失):静态RAM(SRAM)   动态RAM(DRAM) 

DRAM 以电荷形式存储数据 存储在电容器中 有固定的刷新周期

SDRAM:无刷新频率

SDRAMDDR均属于DRAM,采用与CPU外存控制器同步的时钟工作

原理图分析获得各种存储器,外设所使用的硬件资源。

主要包括存储器和外设控制器芯片所使用的片选,中断和DMA资源,大多情况下,硬件工程师已经做好。

分析方法: 以CPU为中心向存储器外设辐射

原理图元素:symbol 描述芯片的外围引脚及信号   P42

            Net描述芯片,接插件和分离原件的互联关系

时序分析: 驱动工程师调试电路板

    作用:让芯片间的访问满足芯片手册中时序图信号的先后顺序;采样建立时间,保持时间的要求

linux设备驱动开发详解(基于4.0内核)_读书笔记二

Linux设备驱动中的并发控制 有两种可能的原因会造成程序出错,一种可能性是编译乱序,另一种可能性是执行乱序。 处理器为了解决多核间一个核的内存行为对另一个核可见的问题,引入了一些内存屏蔽的指令。...

linux设备驱动开发详解(基于4.0内核)_读书笔记一

ssize_t xxx_read(struct file *filp, char __user *buf, size_tcount, loff_t *f_ops); filp是文件结构体指针,buf是...

《Linux设备驱动开发详解》读书笔记(4)

第一章,   中断与时钟 申请irq,request_irq(irq, handler, flags, name, dev)。Flags一般有触发方式,SHARED等。用devm_request_i...

《Linux设备驱动开发详解》读书笔记(2)

第一章,    内核模块 代码module_init(),module_exit(), request_module(),module_param(),module_param_array()。EX...

《Linux设备驱动开发详解》读书笔记(5)

第十三章,块设备驱动 块设备的file_ops中没有read(), write(),但是有media_changed(), getgeo()用来获取磁盘的状态和信息。使用struct gendisk...

《Linux设备驱动开发详解》读书笔记(1)

最近读了一本书,《Linux设备驱动开发详解》,宋宝华写的,基于4.0内核。下面是读书笔记。 第一章,    环境搭建 主要讲Linux开发环境的搭建。VirtualBox+ Ubuntu +...

《Linux设备驱动开发详解》读书笔记(7)

第十九章,电源管理的系统架构与驱动 Linux的电源管理主要包括cpufreq,cpuidle, SMP hotplug, PM QoS, Suspend, Runtime PM等。 CPUfre...

Linux设备驱动开发详解(宋宝华)学习笔记-第一章 设备驱动概述

对设备驱动最通俗的解释就是“驱使硬件设备行动”。设备驱动与底层硬件直接 打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、 DMA 通信,进行物理内存向虚拟内存的映射,最...

linux设备驱动开发详解 阅读笔记1(第一篇入门)

无操作系统的驱动 在单任务的系统中,虽然不存在操作系统,但是设备驱动是必须存在的。一般情况 下,对每一种设备驱动都会定义为一个软件模块,包含.h文件和.c文件,前者定义该 设备驱动的数据结构并声...
  • jinatom
  • jinatom
  • 2012年06月21日 08:00
  • 419

《Linux4.0设备驱动开发详解》笔记--第二章:Linux内核及内核编程

2.1 Linux内核发展及演变 1991年10月5日 Linus Torvalds创建 五个支柱:Unix系统、Minix系统、GNU计划、POSIX标准和Internet 每2-3个月更新一次大的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设备驱动开发详解第一章读书笔记
举报原因:
原因补充:

(最多只允许输入30个字)