1.Flash存储器介绍
#Flah存储器概述 Flash存储器,又称闪存,是一种非易失性存储器,能够在电源关闭后保持数据不丢失。它结合了ROM(Read-Only Memory,只读存储器)和RAM(Random Access Memory,随机存取存储器)的特点,具备电子可擦除可编程(EEPROM)的性能,并且具有快速读取数据的能力。Flash存储器广泛应用于移动存储、数码相机、MP3播放器、个人数码助理(PDA)等领域,并且在现代计算机系统中扮演着重要的角色,比如用作USB闪存驱动器、固态硬盘(SSD)等。
#Flah存储器的种类 Flash存储器主要分为两大类:NOR Flash和NAND Flash。NOR Flash以英特尔公司在1988年开发的NOR Flash技术为基础,而NAND Flash则源自东芝公司在1989年的发明。 NOR Flash具有随机访问的能力,就像SRAM一样,可以直接寻址存储单元,因此它适合于存储程序代码,常被用作存储系统的引导存储器(如BIOS)。然而,由于其写入操作较慢,不适合于大容量数据存储。 NAND Flash相较于NOR Flash,具有更高的数据存储密度和更快的写入速度,这是因为其存储单元是以页面为单位进行读写,而不是单个比特。NAND Flash因此更适合于大容量数据存储和高速写入的需求,广泛应用于移动存储设备、数码相机、MP3播放器等。 Flash存储器件的接口设计对其性能至关重要。NOR Flash通常具有独立的地址线和数据线,支持随机访问;NAND Flash则采用串行接口,通过I/O线传输数据,以页为单位进行读写。
#Flah存储器的基本原理 Flash存储器的工作原理涉及到电荷的存储和释放。在NOR Flash中,存储单元由一个浮动栅和一个控制栅组成。当需要在浮动栅上存储电荷时,会在控制栅上施加高电压,使得电子通过氧化物层迁移到浮动栅上,从而改变存储单元的状态。擦除操作则是通过将控制栅上的电压变为负电压,使得浮动栅上的电荷释放到源极或漏极中,清除存储单元的状态。 NAND Flash的存储单元则采用串行结构,存储单元的读写是以页和块为单位进行的。这种结构使得NAND Flash可以拥有更大的存储容量,但其读写速度相对较慢,且由于I/O端口较少,数据传输速率不如NOR Flash。 Flash存储器件的读写操作涉及复杂的电化学过程。在写入数据时,需要在控制栅上施加高电压,使得电子从源极迁移到浮动栅上,形成电荷储存。擦除数据则是通过反向电压,使得浮动栅上的电荷释放,恢复到高阻态。
2.内置Flash和外置Flash
#内置Flash的定义和功能 内置Flash存储器,通常指将Flash存储器集成在芯片内部的存储器,它与芯片的处理电路紧密耦合,形成完整的系统解决方案。内置Flash存储器的优点在于其紧凑性和集成度高,可以减少外围电路的复杂性和成本。同时,由于其与处理器核心的距离近,能够实现数据的快速读取和写入,提高系统的性能和效率。 内置Flash存储器通常用于存储程序代码、关键数据等,在断电后数据不丢失,因此在许多应用场景中,尤其是在对小型化和低成本要求较高的领域,如智能家居的小型设备、玩具等,内置Flash存储器有着广泛的应用优势。
#外置Flash的定义和功能 外置Flash存储器则是指将Flash存储器作为独立的组件连接到芯片外部,与芯片共同构成完整的系统。外置Flash存储器的优点在于其大容量和可靠性。由于它可以独立于芯片生产和使用,因此可以提供更大的存储空间,且具有更高的数据完整性保护能力。 外置Flash存储器适用于需要大量数据存储和高可靠性的应用场景,例如智能家居中,对于需要存储大量数据和确保数据完整性的应用,外置Flash存储器是非常适合的选择。
#内置Flash与外置Flash的比较 内置Flash和外置Flash的主要区别在于集成度和功能。内置Flash存储器通常与芯片的其他部分集成在一起,减少了外围电路的要求,降低了系统的复杂性和成本。而外置Flash存储器则提供了更大的灵活性和扩展性,尤其适用于需要大容量数据存储的场景。 内置Flash存储器因为与处理电路的紧密结合,通常具有更快的访问速度,适合存储代码和关键数据。相比之下,外置Flash存储器虽然也可以存储代码,但其访问速度相对较慢,可能不适合要求高速执行的代码。 此外,内置Flash存储器的容量通常较小,可能无法满足某些应用对存储空间的需求。而外置Flash存储器则可以提供更大的存储空间,适应更多的应用需求。 在选择内置Flash还是外置Flash时,需要综合考虑访问速度、存储容量、系统复杂性、安全性和成本等因素。
3.Flash的配置
在实际项目中,内置flash不需要额外配置,外置flash才需要配置,MT6261平台就是内置flash,MT6260平台为外置flash。需要注意,若flash没有配置好会导致软件无法下载。
以MT6260平台MA2810_it5626N项目为例配置flash。
(1)确定flash型号,找到flash芯片的datasheet。flash型号在项目的硬件配置表中获取,若没有可找PM提供,datasheet也可通过PM或者硬件的同事获取。
(2)查看11BW1308MP_SAGETEL60A_6464_11B_V40_GPRS_MMI_ITEL_3CARD\tools\MemoryDeviceList\MemoryDeviceList_MT6260_Since11BW1308.xls文件中是否有对应型号的flash,主要关注flash ID,若flash ID一样,名称不一样,实际还是同一个flash。
在识别Flash型号时,我们可以从以下几个方面着手: 1. 制造商:不同的Flash存储器可能由不同的制造商生产,每个制造商可能有自己特定的产品线和型号命名规则。 2.容量:Flash存储器的容量是区分不同型号的重要指标,常见的有32MB、64MB、128MB等。 3.接口类型:不同的Flash存储器可能支持不同的接口类型,如SPI、CFI/JEDEC等。 4.电性能:包括读写速度、耐用性(即擦写次数)等也是区分不同Flash型号的重要指标。
(3)若MemoryDeviceList\MemoryDeviceList_MT6260_Since11BW1308.xls文件中没有项目中需要得flash,需要到MTK网站上去下载最新的Excel表格。
MTK网址:QVL Home (mediatek.com)
选择需要的flash,下载Excel表格,添加到MemoryDeviceList\MemoryDeviceList_MT6260_Since11BW1308.xls文件中,若MTK网站上没有找到,可能是平台不兼容这个flash,可咨询MTK添加。
(4)在custom_MemoryDevice.h文件中添加相应的falsh。
**************************************************************************** Step 1: Specify memory device type and its complete part number Possible memory device type: NOR_RAM_MCP, LPSDRAM, NOR_LPSDRAM_MCP, SERIAL_FLASH **************************************************************************** */ #define MEMORY_DEVICE_TYPE SERIAL_FLASH #define CS0_PART_NUMBER GD25LQ64CVIG #define CS1_PART_NUMBER GD25LQ64CVIG //#define CS0_PART_NUMBER MTKSIP_6250_SF_32_01 //#define CS1_PART_NUMBER MTKSIP_6250_SF_32_01 /* **************************************************************************** Step 2: Specify part number for each device chosen when COMBO_MEMORY_SUPPORT is enabled Please note that this section will only be used when COMBO_MEMORY_SUPPORT is enabled, and will be ignored if COMBO_MEMORY_SUPPORT is disabled **************************************************************************** */ #define COMBO_MEM_ENTRY_COUNT 4 #define COMBO_MEM01_CS0_PART_NUMBER GD25LQ64CVIG #define COMBO_MEM01_CS1_PART_NUMBER GD25LQ64CVIG #define COMBO_MEM02_CS0_PART_NUMBER FM25M64C_1AIB4 #define COMBO_MEM02_CS1_PART_NUMBER FM25M64C_1AIB4 #define COMBO_MEM03_CS0_PART_NUMBER W25Q64JW #define COMBO_MEM03_CS1_PART_NUMBER W25Q64JW #define COMBO_MEM04_CS0_PART_NUMBER W25Q64FWZPIM #define COMBO_MEM04_CS1_PART_NUMBER W25Q64FWZPIM
文件路径:11BW1308MP_SAGETEL60A_6464_11B_V40_GPRS_MMI_ITEL_3CARD\custom\system\SAGETEL60A_MA2810_BB\MA2810_IT5626N
(5)MA2810_it5626N_GPRS.mak文件中添加对应代码,然后编译,验证能否正常下载软件。
FLASH_CUSTOM = MA2810_IT5626N