NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存储在NOR FLASH上的程序不需要复制到RAM就可以直接运行).这点和NAND FLASH不一样.因此,在嵌入式系统中,NOR FLASH很适合作为启动程序的存储介质.NOR FLASH的读取和RAM很类似(只要能够提供数据的地址,数据总线就能够正确的给出数据),但不可以直接进行写操作.对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作.
从支持的最小访问单元来看,NOR FLASH一般分为 8 位的和16位的(当然,也有很多NOR FLASH芯片同时支持8位模式和是16 位模式,具体的工作模式通过特定的管脚进行选择).
对8位的 NOR FLASH芯片,或是工作在8-BIT模式的芯片来说,一个地址对应一个BYTE(8-BIT)的数据.例如一块8-BIT的NOR FLASH,假设容量为4个BYTE.那芯片应该有8个数据信号D7-D0 和2个地址信号,A1-A0.地址0x0对应第0个 BYTE,地址0x1对应于1BYTE,地址0x2对应于第2个BYTE,而地址0x3则对应于第3 个BYTE.对16位的 NOR FLASH芯片,或是工作在16-BIT模式的芯片来说,一个地址对应于一个HALF-WORD(16-BIT)的数据.例如,一块16-BIT的 NOR FLASH,假设其容量为4个BYTE.那芯片应该有16 个数据信号线D15-D0 和1个地址信号A0.地址 0x0对应于芯片内部的第0个HALF-WORD,地址0x1对应于芯片内部的第1个 HALF-WORD
FLASH一般都分为很多个SECTOR,每个SECTOR包括一定数量的存储单元.对有些大容量的FLASH,还分为不同的BANK,每个BANK包括一定数目的SECTOR.FLASH的擦除操作一般都是以SECTOR,BANK或是整片FLASH为单位的.
在对FLASH进行写操作的时候,每个BIT可以通过编程由1变为0,但不可以有0修改为1.为了保证写操作的正确性,在执行写操作前,都要执行擦除操作.擦除操作会把FLASH的一个SECTOR,一个BANK或是整片FLASH的值全修改为0xFF.这样,写操作就可以正确完成了.
由于NOR FLASH没有本地坏区管理,所以一旦存储区块发生毁损,软件或驱动程序必须接手这个问题,否则可能会导致设备发生异常. 在解锁、抹除或写入NOR FLASH区块时,特殊的指令会先写入已绘测的记忆区的第一页(Page).接着快闪记忆芯片会提供可用的指令清单给实体驱动程序,而这些指令是由一般性闪存接口(CommON FLASH memory Interface, CFI)所界定的. 与用于随机存取的ROM不同,NOR FLASH也可以用在存储设备上;不过与NAND FLASH相比,NOR FLASH的写入速度一般来说会慢很多.
小结:NOR FLASH类似于RAM,8位地址就是每个地址对应1个byte,16位地址就是每个地址对应2个byte,ARM的每个地址只对应1个byte
2.NOR Flash的读写方式
2.1 处理器寻址
ARM处理器中每个地址对应的是一个byte的数据单元,这和很多别的处理器是一样的。
2.2 CPU于NOR Flash的硬件连接
从前面的先容,我们知道从处理器的角度来看,每个地址对应的是一个 BYTE 的数据单元.而,NOR FLASH 的每个地址有可能对应的是一个BYTE的数据单元,也有可能对应的是一个HALF-WORD的数据单元.所以在硬件设计中,连接ARM处理器和 NOR FLASH时,必须根据实际情况对地址信号做特别的处理。
假如ARM处理器外部扩展的是8-BIT的NOR FLASH, 数据线和地址线的连接应该如图1所示. 从图中我们可以看到,处理器的数据信号D0-D7和 FLASH的数据信号D0-D7是逐一对应连接的,处理器的地址信号A0-An和NOR FLASH的地址信号A0-An 也是逐一对应连接的.如下图所示:
假如ARM处理器外部扩展的是16-BIT的NOR FLASH, 地址线必须要错位连接. 图2给了一个ARM处理器和16-BIT NOR FLASH的连接示意图.如图2所示,ARM处理器的数据信号D0-D15和FLASH 的数据信号D0-D15是逐一对应的.而ARM处理器的地址信号和NOR FLASH 的地址信号是错位连接的,ARM的A0悬空,ARM 的A1 连接FLASH 的A0,ARM 的A2连接FLASH的A1,依次类推.需要错位连接的原因是:ARM处理器的每个地址对应的是一个BYTE 的数据单元,而 16-BIT 的 FLASH 的每个地址对应的是一个HALF-WORD(16-BIT)的数据单元.为了保持匹配,所以必须错位连接.这样,从ARM处理器发送出来的地址信号的最低位A0对16-BIT FLASH来说就被屏蔽掉了.如下图所示:
这里简单的总结:CPU发出地址对应1个字节,而16位flash的一个地址对应2个字节,所以需要错位,那么数据对应关系如下图所示:
从上可以看到,CPU读地址0和1对应的字节,flash返回的都是第1个字(相对于flash,地址为0)
CPU读地址2和3对应的字节,flash返回的都是第2个字(相对于flash,地址为1)
CPU读地址4和5对应的字节,flash返回的都是第3个字(相对于flash,地址为2)
这个逻辑竟然是对的,CPU要做的就是对读到的16bit字进行取高8位字节,还是低8位字节处理。
补充说明:
从软件的角度来理解ARM处理器和 FLASH的连接.对于8-BIT的FLASH的连接,很好理解,由于ARM处理器和8-BIT FLASH的每个地址对应的都是一个 BYTE 的数据单元.所以地址连接毫无疑问是逐一对应的.假如 ARM 处理器连接的是 16-BIT 的处理器,由于 ARM 处理器的每个地址对应的是一个 BYTE 的数据单元,而 16-BIT FLASH 的每个地址对应的是一个 HALF-WORD 的16-BIT的数据单元.所以,也毫无疑问,ARM处理器访问16-BIT处理器的时候,地址肯定是要错开一位的.在写FLASH驱动的时候,我们不需要知道地址错位是由硬件实现的,还是是通过设置ARM处理器内部的寄存器来实现的,只需要记住2点:
来源:网络
SPI协议 Slave与Master 一般而言,提供clock的一方称为master。如下图(7-1)中的SCLK方向可知:Processor为master,而Peripheral为slave。 SPI设备接口 SPI uses four main signals: Master Out Slave In (MOSI) Master In Slave Out (MISO) Serial CLocK...
程序可以运行在nor falsh上;nand flash上的程序必须加载到内存才可运行 2440驱动帖子写的很多,可以参考下 1- nor flash原理 1.1- 看芯片手册 明白nor flash的时序、命令格式、两种模式(cfi、jedec) 1.2- 使用uboot操作nor flash 熟悉nor flash读写操作 参考:nor flash硬件相关 &nbs...
nor flash: 优点:无位反转,无坏块。RAM -like接口,引脚多。读简单。 缺点:容量1M,2M,32M,读简单,写发出特殊命令,比较慢,价格贵。 nor flash 存储关键性的信息。 nand flash : 优点:容量大,128M,256M,读写复杂,但速度更快,价格便宜。 缺点:引脚少,复用,有位反转,有坏块。 所以nand flash 可以存入一些视频文件,有一些坏块没关系。...
如上图,左边NAND FLASH ,右边 NOR FLASH 1.共性 A. 都是非易失存储介质。即掉电都不会丢失内容。 B. 在写入前都需要擦除。实际上NOR Flash的一个bit可以从1变成0,而要从0变1就要擦除整块。NAND flash都需要擦除。 2.特性 特性是决定使用哪种Flash的根据,我这里总结出一张表: NOR FLASH 有个特点就是可执行效率很高,可执行程序可以在芯片内执...
http://blog.163.com/charlie_quan/blog/static/13010104620091110953549/ 所谓Flash,是内存(Memory)的一种,但兼有RAM和ROM 的优点,是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器,同时它的高集成度和低成本使它成为市场主流。 &n...
问题:flash掉电数据出错 为什么掉电会导致flash数据出错呢?因为在产品掉电时,对用户来说拔下插头是一瞬间,但对于板子上的各个器件来说,却是存在一个掉电过程,即电压从正常值掉到0的过程,这个不是瞬间的。而掉电时机是随机的无法预测的,也就是开始掉电的时候,主控可能正在读flash,写flash,擦除flash,SPI总线上还有很...
金属-氧化物-半导体(MOS)场效应管 N沟道增强型MOSFET 栅源加电压,在电场作用下产生沟道。产生沟道的门限开启电压VT。 漏源加电压,产生电压梯度,导致沟道夹断。预夹断的临界条件 输出特性 特性方程 可变电阻区 &...
提到响应式,就不得不提两个响应式框架——bootstrap和foundation。在标题上我已经说明白啦,今天给大家介绍的是foundation框架。 何为“尝鲜”?就是带大伙初步一下foundation的灵活和强大 何为“踩坑”?就是我把我使用的时候踩过的坑给标个记号,这样大伙用的时候就可以“绕道而...
word2vec 词向量 one hot Distributed representation CBOW&Skip-Gram CBOW Skip-Gram sigmoid函数 Huffman树 基于Hierarchical Softmax的模型 基于Negative Sampling的模型 本文基于word2vec原理CBOW与Skip-Gram模型基础 CBOW与Skip-Gram的模型...
官网:https://router.vuejs.org/zh/guide/essentials/navigation.html 一、安装路由 npm install vue-router --save-dev 在src目录下创建router目录 使用 vuecli3创建项目选择路由会自动创建route目录 在main.js引入router 二、配置路由 1、 hash: 使用 URL hash 值...
It keeps saying : ORA-00933: SQL command not properly ended Pls help me or give me a link to a solution You can use a correlated subquery instead:...
I'm doing an Json call to retrieve an a list of locations with information details for each location. longitude and latitude are included in this info. I am using Google's distance matrix api to get t...
Suppose you have a database which has an 'n' number of schemas with an 'n' number of tables each. Each of these contain an 'n' number of columns. How would I print all this data along with the data ty...
Could anyone please help how do I solve this error: I am using IDEA IDE as a first time, and have been using Resin_4.0.37 as a server to test my work. As soon as I start my lcoal server in debug mode ...
i am trying to develop a remote desktop apps with c#. so i have couple of question regarding mouse coordinate calculation based on picture box suppose i have picture box and i want to capture mouse co...