flash芯片

STM32F103处理器内部存储器

◇◆丶佛笑我妖孽 提交于 2020-02-24 23:02:10
STM32F103处理器内部存储器结构及映射    STM32F103存储器映像为 预定义形式 ,严格规定了哪个位置使用哪条总线。    STM32F103的程序存储器、数据存储器、寄存器和IO端口被组织到一个4GB的线性地址空间。数据字节以小端模式存放在存储器中。地址空间分8块,每块512MB。 注: 小端模式 :与大端模式相对应,将数据的低字节保存在内存的低地址中,高字节保存在高地址中。 其中:      代码区 :(0x00000000 ~ 0x1FFFFFFF,512MB)      主要包括 : 启动空间 (0x00000000 ~ 0x07FFFFFF,128MB)                Flash (0x08000000 ~ 0x08xxxxxx,16KB~1MB)                系统存储区 (0x1FFFF000 ~ 0x1FFFF800,2KB)     Flash :用于存放用户编写的程序     系统存储区 :存放串口下载程序,当系统上电后,根据用户设定的启动配置,将Flash或系统存储区映射到启动空间,执行用户程序或串口下载程序。    内部 SRAM (0x20000000 ~ 0x200xxxxx,6~96KB):保护程序运行时产生的临时数据的随机存储器。     外设区 :外设寄存器地址空间,用于调试组件等私有外设。例如:FPB

Atmel studio注意事项

微笑、不失礼 提交于 2020-02-24 13:40:17
注意事项整理如下: 1) MCU必须的头文件 Atmel Studio 6 (以下简称AS6)中统一用 #include <avr/io.h> 。这点很重要,AS6把atmel 所有的单片机头文件全都集成在一起了,以后不必再去分具体的每种芯片的头文件了 2) 汇编嵌入 在AS6 中,你可以直接使用 asm("xxx") 格式.或者用小写的 sei(); 这个其实是很爽的, 最常用的就是中断控制,使用比较方便。 3) 延时函数 在AS6中,只需要加载一个头文件 #include <util/delay.h> ,就可以使用两个标准的延时函数,分别是 _delay_ms(double __ms) 和 _delay_us(double __us),虽然参数为double型, 但可赋整型值。 注意在调用前在 delay.h 前面 定义 #define F_CPU 8000000UL(这里以8000000UL为例,实际系统频率为准),如下图, 这样延时10ms 的函数写为_delay_ms(10),经过试用,只要晶振填写准确,这两个延时函数很准确。 但是不建议修改头文件,而是在项目属性里面去定义这个宏!但是不建议修改头文件,而是在项目属性里面去定义这个宏!但是不建议修改头文件,而是在项目属性里面去定义这个宏! 4) 中断函数 在AS6中,需加载头文件 #include <avr

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

青春壹個敷衍的年華 提交于 2020-02-23 03:33:02
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

SPI学习(SPI总线读写FLASH)

前提是你 提交于 2020-02-21 18:20:57
总体概述: (1)W25X16/32/64:256-bytes/页(Page),4K-bytes/扇区(Sector),64K-bytes/块(block) W25X16:16M-bit(2M-byte) | W25X32:32M-bit(4M-byte) | W25X64:64M-bit(8M-byte) (2)SPI支持单一或双重输出:四个引脚 clock、chip select、data I/O、data out (3)数据传输速率的支持:最大150M-bits/S clock只能到75MHZ (4)支持3中擦除方式:扇区擦除、块擦出、整个芯片擦除 (5)256 bytes/页的编程 <2ms 可重复使用100000个擦除/写周期 (6)写保护: • Device resets when VCC is below threshold.设备复位 • Time delay write disable after Power-up. 上电后延时时间 • Write enable/disable instructions. 指令 • Automatic write disable after program and erase. 在编程或者擦除之后 • Software write protection using Status Register. 通过状态寄存器软件设置 •

路由器硬件的提取

笑着哭i 提交于 2020-02-04 06:36:38
1、硬件基础知识 1.1、路由器FLASH   FLASH也叫闪存,是路由器中常用的一种内存类型。它是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。FLASH中存放着当前正在使用的路由器操作系统等信息。   路由器的FLASH就像计算机的硬盘。我们的硬盘通常会被格式化成多个分区。同样的原理,FLASH也会被格式化为多个分区。通常情况下,FLASH分为4个区块,其作用如下:    bootloader :主要功能时对硬件环境进行初始化、更新固件及认识操作系统的文件格式并将内核加载到内存中去执行。    Kernel :操作系统的内核。    Root Filesystem :操作系统的根文件系统,如squashfs、rootfs等。    NVRAM :作用是保存路由器中的配置文件。路由器在启动之后会从NVRAM中读取配置文件,对路由器进行设置。用户修改路由器设置后,系统会将修改后的参数写回NVRAM中。   路由器的FLASH中存储的数据对于我们进行路由器安全研究具有十分重要的意义。我们可以读取NVRAM中的配置信息,以了解当前路由器中的敏感信息,还可以从FLASH中提取固件。 1.2、硬件提取数据的思路   通过接触硬件进行数据提取的方法很多,通常情况可以考虑以下三种方案:   1、通过路由器主板上的JTAG接口提取FLASH、NVRAM等

标准SPI、DUAL SPI、Quad SPI;NorFlash、NandFlash、eMMC闪存的比较与区别

泪湿孤枕 提交于 2020-01-29 01:04:49
标准SPI 标准SPI通常就称SPI,它是一种串行外设接口规范,有4根引脚信号:clk , cs, mosi, miso Dual SPI 它只是针对SPI Flash而言,不是针对所有SPI外设。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样mosi变成SIO0(serial io 0),mosi变成SIO1(serial io 1),这样一个时钟周期内就能传输2个bit数据,加倍了数据传输 Qual SPI 与Dual SPI类似,也是针对SPI Flash,Qual SPI Flash增加了两根I/O线(SIO2,SIO3),目的是一个时钟内传输4个bit 所以对于SPI Flash,有标准spi flash,dual spi , qual spi 三种类型,分别对应3-wire, 4-wire, 6-wire,在相同clock下,线数越多,传输速率越高。 btw:spi flash一般为NOR Flash 快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存卡与U盘

Nand flash和Nor flash

限于喜欢 提交于 2020-01-26 11:29:07
NOR 和 NAND 是现在市场上两种主要的非易失闪存技术 。 flash 按照内部存储结构不同,分为两种: nor flash 和 nand flash 。 1、Nand Flash   在工艺制程方面分 NAND flash 有两种类型: MLC 和 SLC 。 MLC 和 SLC 属于两种不同类型的 NAND FLASH 存储器。 SLC 全称是 Single-Level Cell ,即单层单元闪存,而 MLC 全称则是 Multi-Level Cell ,即为多层单元闪存。 它们之间的区别,在于 SLC 每一个单元,只能存储一位数据, MLC 每一个单元可以存储两位数据, MLC 的数据密度要比 SLC 大一倍。在页面容量方面分 NAND 也有两种类型:大页面 NAND flash (如: HY27UF082G2B )和小页面 NAND flash (如 :K9F1G08U0A )。 这两种类型在页面容量,命令序列、地址序列、页内访问、坏块标识方面都有很大的不同,并遵循不同的约定所以在移植驱动时要特别注意。 2、Nor Flash    在通信方式上 Nor Flash 分为两种类型: CFI Flash 和 SPI Flash 。 CFI Flash   CFI Flash 英文全称是 common flash interface, 也就是公共闪存接口

区分单片机RAM、ROM、Flash

≡放荡痞女 提交于 2020-01-13 07:17:56
最近搞毕设,又一次接触到51单片机系列了,但是由于之前学习单片机的时间过去的有点久,我对单片机的有些硬件知识记得有点模糊了,现在重新翻旧账出来复习复习。 单片机的RAM,学名叫随机存储器,就是一个可读可写而且速度还比较快的存储器,缺点是断电数据会丢失,在单片机中用作程序运行时所产生的中间变量的数据存储器。 ROM,只读存储器,从名字就可以看出ROM生产完成后就不能再写数据,只能读取数据。后来技术发展,出现了EPROM,EEPROM等可擦除重写的存储器,但是成本高,而且寿命限制大,所以一般用作存储不会频繁改动的程序指令和数据。 Flash,又称Flash EEPROM、Flash Memory,是一种新的存储结构,成本低、寿命大。 以下内容转载自 https://www.cnblogs.com/renchong/p/6594229.html 传送门: 为什么单片机中既有Flash又有EEPROM 单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。 插播一段:ROM最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了PROM,可以自己写入一次,要是写错了,只能换一片。随着不断改进,终于出现了可多次擦除写入的EPROM

Linux 文件系统

江枫思渺然 提交于 2020-01-11 04:05:57
下面主要讨论 基于Flash的文件系统 : 在嵌入式Linux应用中,主要的存储设备为RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。 FLASH重要特性:写操作 只能 把对应位置1变0,而删除 才能 0变1, 并且 是整块(block)的删。(期待进一步分析工作原理)。 闪存主要就是NAND和NOR。FLASH擦写次数 有限 ,NAND闪存还有 特殊的硬件接口和读写时序 ,所以要针对FLASH的硬件特性进行文件系统的设计,传统的ext2等用在Flash会有诸多弊端(具体是?。。) 如图,MTD是一主要设备,为上下提供抽象接口。So: Flash文件系统基于MTD驱动层。 使用MTD驱动程序的主要优点在于,它是专门针对各种非易失性存储器(以闪存为主)而设计的,因而它对Flash有更好的支持、管理和基于扇区的擦除、读/写操作接口。 有意思的特性:FLASH芯片既可以一分多(分区),分别用不同的文件系统;也可以多合一(分区),采用一个文件系统。 即文件系统是针对于存储器分区而言的,而非存储芯片。 JFFS2:Journalling Flash File System v2 ,第二版的JFFS,也可能有JFFS3,blabla..

Nand Flash

自古美人都是妖i 提交于 2020-01-07 16:25:48
Nand Flash 硬件以及初始化 请看Nand Flash 硬件图: nand flash 拥有DATA0~DATA7 1个字节的传输宽度,在此 DATA和地址线是共用的 当ALE为高电平的时候Data线会变成地址总线 下面介绍各个引脚的用处: 1. Rnb : READY/BUSY OUTPUT 当为低电平的时候表示正在nandflash 忙状态 2. CLE 命令/数据标志引脚 当为高电平 的时候是写命令 低电平的时候是写数据 3. nFCE: 选择芯片引脚 Chip select 4. ALE: 当ALE为高电平的时候DATA线会变成地址线 5. nFWE 当这个引脚是低电平的时候 写使能 6.nFRE:当为低电平的时候读使能。 此外 在写使能和读使能都是在上升沿的时候读取和写入有效的数值 我们的S2C2440拥有Nandflash控制器所以只要合理的配置控制器的参数就可以读写其中的数据 首先我们先要实现nandflash 的初始化工作: 上图描述的是nand flash 写命令和写地址的时序 名词解释如下: 1. TACLS: CLE & ALE duration setting value 命令或者地址线建立的时间 2. TWRPH0: 写地址或者命令的时间 2. TWRPH1:写使能无效到CLE或者ALE无效的时间 这三个是我们需要初始化的时钟 注意