阅读笔记[Linux设备驱动开发](2014-8-24)

1.Intel于1988年首先开发出NOR Flash

   东芝于1989年开发出NAND Flash

    NAND Flash于NOR Flash相比容量大、价格低;NAND Flash中每个块的最大擦写次数是100万次,而NOR的擦写是10万次;NAND Flash的擦除、编程速度远超过NOR Flash。

        任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。Nand Flash芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应块擦除(擦除就是将相应块的位全部变为1。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

l 、NOR的读速度比NAND稍快一些。
2、 NAND的写入速度比NOR快很多。
3 、NAND的4ms擦除速度远比NOR的5s快。
4 、大多数写入操作需要先进行擦除操作。
5 、NAND的擦除单元更小,相应的擦除电路更少。
此外,NAND的实际应用方式要比NOR复杂的多。NOR可以直接使用,并可在上面直接运行代码;而NAND需要I/O接口,因此使用时需要驱动程序。不过当今流行的操作系统对NAND结构的Flash都有支持。此外,Linux内核也提供了对NAND结构的Flash的支持。
阅读笔记[Linux设备驱动开发](2014-8-24)_第1张图片


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

         硬件方案的总体原则是:用于数据存储采用NAND Flash,用于代码存储采用NOR Flash。  

          用NOR Flash存放引导程序和根文件系统,用NAND Flash存放用户文件系统,使两种闪存进行优势互补。

 


3.动态RAM(DRAM)以电荷形式进行存储,数据存储在电容器中。由于电容器会由于漏电而导致电荷丢失,因而DRAM器件需要定期被刷新。每个SRAM(静态RAM)存储单元由6个晶体管组成,而DRAM存储单元由1个晶体管和1个电容器组成。

DDR SDRAM同时利用了时钟脉冲的上升沿和下降沿传输数据,因此在时钟频率不变的情况下,数据传输频率加倍。


4.组成I2C总线的两个信号为数据线SDA和时钟线SCL 。为了避免总线信号的混乱,要求各设备连接到总线的输出端必须是开漏输出或集电极开路输出结构。总线空闲时,上拉电阻使SDA和SCL线都保持高电平。根据开漏输出或集电极开路输出的“线与”逻辑,I2C总线上任意器件输出低电平都会使相应总线上的信号变低。


当SCL稳定在高电平时,SDA由高到低的变化将产生一个开始位,由低到高的变化则产生一个停止位。开始位和停止位都有I2C主设备产生。


5.USB总线的机械连接采用4芯的屏蔽线。一个USB主控制器端口最多可连接127个器件,各器件之间的距离不超过5米。


6.突发方式传输:是指取得总线控制权后连续进行多个数据的传输。突发传输时,只需要给出目的地首地址,访问第1个数据后,第2~n个数据会在首地址基础上按一定规则自动被寻址和传输,与突发方式对应的是单周期方式,它在1个总线周期只传1个数据。PCI总线可进行突发(burst)模式传输。


7.Kconfig除了布尔型(bool)的配置项目外,还存在一种三态型(tristate)配置选项,它意味着要么编译入内核,要么编译内核模块,要么不编译,选项为“Y”、“M”、“N”。



8.匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
  
举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。


9.typeof关键字:typeof(x)语句可以获得x的类型。


10.字符设备指那些必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等。块设备可以用任意顺序进行访问,以块单位进行操作,如硬盘、软驱等。


11.微处理器(MPU)通常代表一个CPU(中央处理器),而微控制器(MCU)则强调把中央处理器、存储器和外围电路集成在一块芯片上。


12.中央处理器的体系架构分为两类:冯·诺依曼 结构,哈佛结构。

       冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽

         哈佛结构:将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。此外,哈佛结构还采用独立的程序总线和数据总线,分别作为CPU与每个存储之间的专用通信路径,具有较高的执行效率。


13.并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件商的全局变量、静态变量等)的访问则很容易导致竞态(race conditions)。


14.ARM,向量中断由硬件提供中断服务程序入口地址,非向量中断由软件提供中断服务程序入口地址。


15.按照触摸屏的工作原理和传输信息的介质,把触摸屏分为4种:电阻式、电容感应式、红外线以及表面声波式。


16.处理器用于存储数据的方式有两种,分别为大字节序格式和小字节序格式:
      大字节序格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 
     小字节序格式:字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。



你可能感兴趣的:(ARM-LINUX驱动学习)