nand

SRAM和DRAM的区别

核能气质少年 提交于 2019-12-23 10:55:04
一、浅谈关于SRAM和DRAM的区别: https://www.cnblogs.com/nano94/p/4014082.html 。 二、ROM、RAM、DRAM、SRAM和FLASH的区别,转自: http://www.eepw.com.cn/article/275436.htm 。   ROM 和 RAM 指的都是半导体存储器, ROM 是Read Only Memory的缩写, RAM 是Random Access Memory的缩写。   ROM 在系统停止供电的时候仍然可以保持数据,而 RAM 通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。  RAM   有两大类,一种称为静态RAM(StaticRAM/ SRAM ), SRAM 速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比 SRAM 慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。   DDR RAM

NandFlash系列之一:NorFlash与NandFlash对比

亡梦爱人 提交于 2019-12-19 11:44:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> NandFlash系列之一:NorFlash与NandFlash对比 作者:刘洪涛, 华清远见嵌入式学院 高级讲师。 FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。 1、接口对比 NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。如uboot中的ro段可以直接在NorFlash上运行,只需要把rw和zi段拷贝到RAM中运行即可。 NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NAND控制器。另外由于NandFlash没有挂接在地址总线上,所以如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中。如果CPU不具备这种特殊功能

linux nand flash常用命令

孤街浪徒 提交于 2019-12-16 11:43:25
使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd* #cat /proc/mtd dev: size erasesize name mtd0: 00c00000 00020000 “ROOTFS” mtd1: 00200000 00020000 “BOOTLOADER” mtd2: 00200000 00020000 “KERNEL” mtd3: 03200000 00020000 “NAND ROOTFS partition” mtd4: 04b00000 00020000 “NAND DATAFS partition” 为了更详细了解分区信息用mtd_debug命令 #mtd_debug info /dev/mtdX (不能使用mtdblockX, mtdblockX 只是提供用來 mount 而已) mtd.type = MTD_NORFLASH mtd.flags = mtd.size = 12582912 (12M) mtd.erasesize = 131072 (128K) mtd.oobblock = 1 mtd.oobsize = 0 mtd.ecctype = (unknown ECC type – new MTD API maybe?) regions = 0 命令:flash_erase 作用

SSD固态硬盘的结构和基本工作原理概述

∥☆過路亽.° 提交于 2019-12-16 07:08:55
展开 我们都知道,早期的电脑CPU是可以直接从硬盘上面读取数据进行处理的,随着科技的进步,时代的发展,计算机硬件的发展速度也是极其迅猛。CPU主频的不断提升,从单核到双核,再到多核;CPU的处理速度越来越快,而硬盘的的读写速度已经远远跟不上CPU的读写速度,后来增加了内存这个读写速度相对较快的缓存,而内存也是蓬勃到发展,从SDRAM到DDR,从DDR到DDR2再到DDR3,但是无论怎样,内存缓存速度还是跟不上CPU的运算处理速度,后来便在CPU中增加了快速缓存机制!而硬盘这个持久化存储器呢?之前的文章,聊到了机械硬盘的结构和工作原理,今天就来聊一聊SSD固态硬盘的结构和基本工作原理,如理解有所变差,或文章有所不足,皆因水平所限! 硬盘的发展在不断的科技进步中快速提升,从容量以及速度再到接口方面。从早期的PATA变成SATA,SCSI变到SAS,以及垂直记录技术在容量上的突破,但这些进步亦未能改变磁盘的记录方式。随着人们对数据需求增多,存储系统的瓶颈越来越明显。而在嵌入式领域移动设备和工业自动化控制等恶劣环境下,传统硬盘机械结构已经无法满足要求,而所有这一切随着固态存储(SSD)的到来而发生了改变。 传统的机械硬盘(HDD)运行主要是靠机械驱动头,包括马达、盘片、磁头摇臂等必需的机械部件,它必须在快速旋转的磁盘上移动至访问位置,至少95%的时间都消耗在机械部件的动作上

nand flash 擦除指定的区域

旧巷老猫 提交于 2019-12-05 19:51:56
Nand falsh 在 u-boot 里面,是可以执行擦除操作的。 擦除整个 Nand 的命令: nand erase.chip 擦除部分区域 nand erase.spread 0x0 0x780000 意思是 擦除从 0x0 地址开始, 0x780000 长度 的数据。 来源: https://www.cnblogs.com/chenfulin5/p/11942884.html

韦东山嵌入式Linux学习笔记07--Nandflash

ぃ、小莉子 提交于 2019-12-05 15:45:57
jz2440 v3上面用的nandflash是 K9F2G08U0C, 大小为256MB. 一个页的大小为(2k+64)byte,一个块的大小为(128k+4k)byte,原理图如下: nand的命令集: 那应该如何访问nand里面的数据呢?只要读写s32440的相关寄存器,就可以驱动nand的一些引脚. Makefile objs := head.o init.o nand.o main.o #依赖于这些文件 nand.bin : $(objs) arm-linux-ld -Tnand.lds -o nand_elf $^ #链接nand.lds $^表示所有依赖目标的集合 arm-linux-objcopy -O binary -S nand_elf $@ #规则中的目标文件集 arm-linux-objdump -D -m arm nand_elf > nand.dis %.o:%.c arm-linux-gcc -Wall -c -O2 -o $@ $< %.o:%.S arm-linux-gcc -Wall -c -O2 -o $@ $< clean: rm -f nand.dis nand.bin nand_elf *.o nand.lds SECTIONS { firtst 0x00000000 : { head.o init.o nand.o} /

mini2440基于uboot的TFTP下载教程

这一生的挚爱 提交于 2019-12-05 09:45:52
由于mini2440在WIN7上下载,USB驱动无法兼容,总是出现蓝屏重启的现象,导致不得不想其他方式来下载,首先就考虑了使用U-Boot来下载,因为它支持多种下载方式: 1. 使用串口下载,它支持kermit/xmodem/ymodem等模式,但是下载速度比较慢。 2. 使用U盘/SD卡加载程序,需要先将程序拷贝到U盘/SD卡中,然后再通过相应的命令读取到内存中。 3. 使用TFTP/NFS网络服务加载程序,配置好终端和服务器,使用起来比较方便,而且速度很快。 在这里我讲一下TFTP方式的配置过程,以及使用方式。首先需要将U-boot下载到Nand Flash中,但是由于友善之臂提供的USB驱动在WIN7及其不稳定,所以我费了九牛二虎之力才将其使用DNW下载进去。使用的是由 Tekkaman Ninja 移植的U-boot,可以通过git来下载源代码,下载方式是:git clone https://github.com/tekkamanninja/u-boot-2010.03-tekkaman.git 。关于GIT的用法,参考 http://www.arm9home.net/read.php?tid-5266.html 。下载完成之后需要重新编译,编译步骤如下: $cd u-boot-2010.03-tekkaman $export PATH=$PATH:/opt

移植 linux kernel 2.6.32 至 mini2440 板

橙三吉。 提交于 2019-12-04 09:54:19
1. 移植准备 1.1 获取Linux内核源代码(linux-2.6.32.tar.gz) $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz 1.2 解压内核源代码 $ tar xvzf linux-2.6.32.tar.gz 得linux-2.6.32源代码目录 1.3 指定交叉编译变量 修改总目录下的 Makefile 原 export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 改为: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux- 其中,ARCH 是指定目标平台为 arm,CROSS_COMPILE 是指定交叉编译器 接下来,要测试一下 linux 的编译是否能正常通过。 执行: $ make s3c2410_defconfig 使用缺省内核配置文件,s3c2410_defconfig 是 SMDK2440 的 缺省配置文件 $ make 编译时间较长 编译通过,在此我们先不必烧写到开发板验证它的正确性。 2. 开始移植 2.1

Linux下Nand Flash 驱动代码分析

半腔热情 提交于 2019-12-04 04:59:26
随着越来越多的平台支持从Nand Flash 中启动,掌握Nand Flash 的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对Nand Flash 驱动只是简单的修改。 下面分析一下Nand Flash 的代码流程: 学习Nand Flash 之前,需要对块设备中下面2点有个认识: 1, gendisk: 描述块设备实体(一整个Nand Flash 芯片)的结构体,整个块设备的注册过程都是围绕gendisk 来开展的; 2, add_disk(): 将一个分区信息(如:/dev/mtdblock3)注册到内核列表中 下面分析具体的驱动: 1, s3c2410 nandflash 控制器初始化步骤 s3c2410_nand_init(&s3c2410_nand_driver) ->driver_register->bus_add_driver()->driver_attach->bus_for_each_dev(_driver_attach)->driver_probe_device()->dev->probe() /*最后这个函数实质是 s3c2410_nand_probe() */ ->s3c2410_nand_probe() ->s3c24xx_nand_probe() ->s3c2410_nand_inithw() /*

什么是ROM、RAM、DRAM、SRAM和FLASH的区别

陌路散爱 提交于 2019-12-03 11:12:00
ROM 和 RAM 区别: ROM : Read Only Memory RAM : Random Access Memory ROM在系统停止供电的时候仍然可以保持数据, RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类: 一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态。 RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。 DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽