首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏QB杂货铺

    nor flash之频率限制

    背景 支持一款nor flash时,出于性能考虑,一般会查看其nor支持的最高频率以及主控端spi控制器的最高频率,以选择一个合适的运行频率。 主控端的最高频率,可以查看主控的规格书,本文主要说下nor的频率限制。 让我们带着问题出发,假设我们的主控端最高spi clk为100M,那该怎么识别nor的限制,驱动又可以怎么处理? 正确识别频率限制 让我们打开nor的规格书,搜索 "freq", 很容易看到104M, 133M之类的字样 。 看来我应该把标题取成 “震惊,nor flash最慢的一条命令竟然是...” 那下面的fT和fQ标注的84M又是什么意思? 多看几款规格书,我们就可以发现,READ并不孤单,有些nor flash,不止READ跑不到100M,读ID之类的命令也跑不到100M。

    1.8K10发布于 2020-01-02
  • 来自专栏QB杂货铺

    nor flash之擦除和写入

    最近研究了下nor flash的掉电问题,对nor的掉电有了更多的认识。总结分享如下 擦除从0变1,写入从1变0 nor flash的物理特性是,写入之前需要先进行擦除。 多次写入的例子 在uboot中就有一个利用nor这个特性的例子。当使用了冗余env功能时,flash上会维护两份env,我们记为envA和envB吧。 对此uboot支持几种策略,其中一种可适用于nor的策略FLAG_BOOLEAN,uboot会在env的头部结构中,使用了一个字节flags来表示其是否有效。 写入过程掉电 对于nor来说,一次写入可以连续写256 bytes,那如果在中途发生了掉电,再次上电后读出来的数据会是什么样的呢? 当写入一笔数据时,nor就是按顺序写入的,掉电后的数据特征为前面部分数据是正确数据,后面部分数据是0xFF。前后的交界点并未对齐到256 bytes。

    5.4K20发布于 2020-02-18
  • 来自专栏QB杂货铺

    nor flash之写保护

    下主面要介绍下nor flash写保护,这个是可以在驱动层面做的。 nor写保护 写保护是nor提供的功能,即可以通过配置一些寄存器,将某些区域保护起来。 BP保护 大多数nor flash支持使用BP位来配置写保护,这种保护的特点是其保护的数据是成片的,一般是从flash头部开始的一片数据,或者从flash尾部开始的一片数据。 不同厂家的保护bit设置都不太一样,涉及到BP bit,SEC bit, CMP bit等,每适配一款新的nor,都得重新查下规格书才行。

    3K10发布于 2020-02-12
  • 来自专栏嵌入式与Linux那些事

    17.NOR FLASH驱动

    设置: 物理基地址(phys), 大小(size), 位宽(bankwidth), 虚拟基地址(virt) */ s3c_nor_map->name = "s3c_nor"; s3c_nor_map ->phys = 0; s3c_nor_map->size = 0x1000000; /* >= NOR的真正大小 */ s3c_nor_map->bankwidth = 2; s3c_nor_map ->virt = ioremap(s3c_nor_map->phys, s3c_nor_map->size); simple_map_init(s3c_nor_map); /* 3. s3c_nor_mtd) { printk("use jedec_probe\n"); s3c_nor_mtd = do_map_probe("jedec_probe", s3c_nor_map */ add_mtd_partitions(s3c_nor_mtd, s3c_nor_parts, 2); return 0; } static void s3c_nor_exit(void

    1K20发布于 2021-05-20
  • 来自专栏韦东山嵌入式

    Linux NOR 开发指南

    Linux NOR 开发指南 1 简介 编写目的 此文档描述Sunxi NOR 模块的使用方法,为相关人员调试提供指导 适用范围 boot0: 适用于brandy-2.0 u-boot: 适用于 Framework:这层主要是处理不同厂家的NOR 物理特色差异,初始化SPINOR的工作状态,如工作线宽(1 线、2 线、4 线、8 线)、有效地址位(16M 以上的NOR 需要使用4 地址模式), 对应代码目录:drivers/mtd/spi-nor/spi-nor.c M25P80(generic SPI NOR controller driver):这层主要对SPI NOR Framework //配置根据需求选择 All available flash: //flash类型,只区分nor和非nor方案,Android方案无此选项,默认非nor 0. default 1. nor Choice ├─spi-nor.c ---spi nor驱动代码 └──其他 ├── spi --spi的接口代码 └── makefile ---编译文件 版 3 接口描述 3.1 驱动物理层接口 3.1.1

    1.6K20编辑于 2023-02-24
  • 来自专栏nginx

    NAND NOR FLASH闪存产品概述

    NAND NOR FLASH闪存产品概述 随着国内对集成电路,特别是存储芯片的重视,前来咨询我们关于NOR Flash,NAND Flash,SD NAND, eMMC, Raw NAND的客户越来越多了 擦写寿命长;5,耐高低温冲击;6,容量适宜(128MB~4GB) 具体可以可以看链接:http://www.longsto.com/product/31.html 我们把存储产品大概分为E2PROM,NOR 二,NOR Flash 是目前应用领域最广泛的一种存储芯片了.基本上主流的电子产品里都有使用。甚至我们手机摄像头内部,屏幕驱动电路板上都会用到。主要用来存储代码和一些比较小的数据文件。 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。

    22810编辑于 2025-11-14
  • 来自专栏QB杂货铺

    nor flash之写保护开销

    之前有介绍过写保护,这里就不赘述了,可参考:https://www.cnblogs.com/zqb-all/p/12182920.html 但没有谈到开销,今天有同事问起,便记录一下 性能 不考虑写保护的nor

    1K20发布于 2020-02-18
  • 带你了解NAND NOR FLASH闪存

    擦写寿命长;5,耐高低温冲击;6,容量适宜(128MB~4GB) 具体可以可以看链接:http://www.longsto.com/product/31.html 我们把存储产品大概分为E2PROM,NOR 二,NOR Flash 是目前应用领域最广泛的一种存储芯片了.基本上主流的电子产品里都有使用。甚至我们手机摄像头内部,屏幕驱动电路板上都会用到。主要用来存储代码和一些比较小的数据文件。 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。 二,NOR Flash 是目前应用领域最广泛的一种存储芯片了.基本上主流的电子产品里都有使用。甚至我们手机摄像头内部,屏幕驱动电路板上都会用到。主要用来存储代码和一些比较小的数据文件。 主流是SPI NOR接口; 主流容量:1Mbit~128Mbit; 封装:SOP-8居多,也有更小的;尺寸也都比较小。 NOR Flash架构决定了它的容量不能做大,而且读取速度比较慢。

    73601编辑于 2025-06-27
  • 来自专栏嵌入式开发圈

    NAND FLASH 和NOR FLASH的区别

    NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。 NOR闪存是随机存储介质,用于数据量较小的场合;NAND闪存是连续存储介质,适合存放大的数据。 由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。 由于NOR的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用。而NAND共用地址和数据总线,需要额外联结一些控制的输入输出,所以直接将NAND芯片做启动芯片比较难. NOR闪存的可靠性要高于NAND闪存,这主要是因为NOR型闪存的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,因而一般用在对可靠性要求高的地方。

    3.8K10发布于 2019-07-04
  • 来自专栏软件开发-青出于蓝

    Hadoop ha之Journal Storage Directory nor formatted

        情况是这样的,Hadoop ha下,集群QJM的数据丢了,之后启动namenode后报Journal Storage Directory nor formatted,导致namenode启动失败

    2.6K50发布于 2020-01-08
  • 来自专栏小雪

    为什么闪存被叫做NAND闪存(还有NOR闪存)?它跟与非门NAND(或非门NOR)有何关联?

    NAND FLASH,NAND为NOT AND(与非)之意,而NOR为NOT OR(或非)之意,该名称的命名是与两种FLAHS的架构有关的,如图所示: 两种Flash的架构对比 NAND FLASH 是把存储单元串行连在位线上,而 NOR FLASH 则是把存储单元并行的连到位线上。 所以 NOR 型的闪存存储器实现按位随机访问,而NAND 只能同时对多个存储单元同时访问。 对于 NOR FLASH,如果任意一个存储单元被相应的字线选中打开,那么对应的位线将变为 0,正是由于这种和 NOR 门电路相似的逻辑关系,使得这种结构的闪存被称为 NOR 型闪存,而 NAND FLASH

    3.7K10编辑于 2022-01-11
  • 来自专栏Linux驱动

    3.移植uboot-使板卡支持nor、nand

    在上一章,我们添加了nor,nand启动后,uboot启动出如下图所示: ? print_size(flash_size, "\n"); //打印nor_flash的大小   }   else   {     puts(failed); //初始化nand_flah ... ... } 从上面代码看出, board_init_r()会来初始化nor ,由于新的uboot不支持nor,所以flash_init()初始失败,然后打印一串错误代码后,等待复位. 由于2440在nand启动时,会自动装载nand的前4k内容,所以不支持norflash,因为nor的前4k内容被nand占用.

    1.2K20发布于 2019-05-24
  • 来自专栏QB杂货铺

    nor flash之4字节地址模式

    背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 驱动修改 新的 uboot, kernel 驱动中都是支持的,配置下就可以了,如配置上 SPI_NOR_4B_OPCODES 。 但软件退出的缺点是,只能解决正常重启的情况,无法处理硬件 reset 主芯片的操作,因为 reset 主芯片并不会让 nor 也 reset,那么 nor 就仍处于 4 字节地址模式,不响应 boot 另一种更好的处理方式是,硬件设计上支持让主芯片和 nor 同步 reset。 其他 nor 在 16M 这个容量是个分界点,不仅驱动上因为 4 字节地址模式的引入而更加复杂,价格上也是差别巨大,32M nor 远不止 16M nor 价格的两倍。

    2.4K30发布于 2020-03-19
  • 来自专栏韦东山嵌入式

    第015课 NOR Flash操作原理及裸机程序分析

    #第001节_Nor Flash原理及硬件操作 # Nor Flash的连接线有地址线,数据线,片选信号读写信号等,Nor Flash的接口属于内存类接口,Nor Flash可以向内存一样读,但是不能像内存一样写 Nor Flash的操作## 下面我们使用u-boot来体验Nor Flash的操作(开发板设置Nor启动,进入u-boot)。 Nor Flash的测试 nor_flash_test函数通过switch语句,分别处理识别NOR Flash,擦除NOR Flash某个扇区,编写某个地址,读某个地址。 写NOR Flash do_write_nor_flash的代码如下所示,开发板上的NOR Flash的位宽是16bit,所以可以把要写的数据构造出16bit然后在写进NOR Flash中。 读NOR Flash do_read_nor_flash函数代码如下,由于NOR Flash是内存类接口,可以像内存一样读取。

    2.8K20发布于 2020-09-30
  • 来自专栏QB杂货铺

    记一次nor flash固件烧录速度优化

    优化点 初步分析,从流程上看没什么问题,最大的耗时在擦除上,但毕竟nor的物理特性就是需要先擦除再写入的。 但仔细分析,其实还是有优化空间的,这个空间还就在于nor的擦除上。 nor拥有多条擦除的命令,可以擦除4k,32k,64k或者整片擦除。这些命令的耗时是不同的。 方案上由于分区规划设置了最小为4k的分区,所以nor就被配置为4k sector,则nor驱动使用的擦除命令就是对应的4k擦除的命令。而这是效率最低的一种擦除方式。 nor的几种擦除命令 这几种擦除方式,差异到底有多大呢? 找两款16M的norflash规格书看看。 ?

    1.8K10发布于 2020-03-24
  • 来自专栏IT杂谈学习

    深入了解NOR Flash与NAND Flash存储技术

    前言 随着国内对集成电路,特别是存储芯片的重视,越来越多的客户开始咨询关于NOR Flash、NAND Flash、SD NAND、eMMC、Raw NAND等存储产品的相关信息。 一、存储产品分类 我们将存储产品大致分为E2PROM、NOR Flash、NAND Flash三类,下面是具体分类介绍。 1.2 NOR Flash NOR Flash是目前应用最为广泛的存储芯片之一,几乎存在于所有主流电子产品中,如手机摄像头、屏幕驱动电路板等。它主要用于存储代码和小型数据文件。 主流NOR Flash多采用SPI接口,容量范围从1Mbit到128Mbit,封装形式多为SOP-8,且尺寸相对较小。 由于其架构限制,NOR Flash的存储容量无法做大,读取速度也相对较慢。

    97410编辑于 2025-05-24
  • 来自专栏全志嵌入式那些事

    全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

    另外,在spinor 存储介质下,通过 u-boot-sun8iw21p1.bin 进行烧录,u-boot-spinor-sun8iw21p1.bin 启动,使用sys_partition_nor.fex 更具体的,nand分为并口nand和spinand,mmc分emmc和sd卡 主要需要区分的是nor和其他介质,因为需要打包的部分有所不同。 即,emmc和nand,sd卡一般可共用一份固件,而nor则需使用另一份固件 sys_config配置 在sys_config中有一个配置项,storage_type,取值及含义如下 ;-------- 的方案,必须配置为 storage_type = 3 对于其他介质,storage_type则不能配置为3 spinand切换为spinor sys_config 设置介质为nor [target] storage_type = 3 配置所用nor的大小 [norflash] size = 16 内核配置 make kernel_menuconfig ---> Device Drivers

    1.6K10编辑于 2024-02-02
  • 来自专栏软件测试学习

    MongoDB-查询语句中$exists以及结合$ne、$nin、$nor、$not使用介绍

    user").find({age:{$exists:0}}) db.getCollection("user").find({age:{$exists:false}}) 2、将exists配合ne、nin、nor 下面来看一下将exists配合ne、nin、nor、 查询user表name字段等于“测试小博”,并且name字段存在的记录: db.getCollection("user").find({name:{ :{$nin:[18,45,70],$exists:true}}) 查询user表age大于等于45或者是sex字段为空的记录: db.getCollection("user").find({ $nor

    2.8K30编辑于 2022-12-02
  • 来自专栏Linux驱动

    2.移植uboot-添加2440单板,并实现NOR、NAND启动

    上章分析了uboot启动流程后,接下来便来配置新的单板,实现nor、nand启动 ---- 1.首先在uboot里新建单板2440 1.1将2410的单板文件夹拷贝成2440: cd board/samsung 上,测试 烧写测试时,由于新的uboot较大,可以使用nor上的旧uboot,通过DNW烧写新的uboot到nor上面. 的写保护 erase 0 +7FFFF //擦除nor上的 0~7FFFF地址内容, +7FFF=擦除长度=512kb,要大于新的uboot.bin才行 cp.b 30000000 发现无乱码了,表示nor启动成功,其中Flash: *** failed ***表示不支持norflash,因为我们只实现了重定位,并没有对nor实现写擦除等命令。 uboot支持nor flash、nand flash.

    77120发布于 2019-05-24
  • 来自专栏软件测试学习

    MongoDB-查询语句中逻辑运算符not、and、or、nor用法介绍

    or:[{name:{$eq:'小博'}},{name:{$eq:'测试小博'}}]}) db.user.find({$or:[{name:'小博'},{name:'测试小博'}]}) 4、逻辑运算符$nor 针对前面的$and、$or、$not的用法,大家可能见到过,但对于$nor操作,可能见的少一点,$nor简单的理解就是:多个条件中不满足其中的某一个。 比如查询name不为“小博”或者“测试小博”的数据: db.user.find({name:{$nin:['小博','测试小博']}}) db.user.find({$nor:[{name:'小博'}

    2.1K10编辑于 2022-12-02
领券