虫虫首页|资源下载|资源专辑|精品软件
登录|注册

Flash-ROM

  • 旺宏并行串行NOR Flash对比参考指南

    并行NOR Flash每次传输多个bit位的数据,而串行NOR Flash每次传输一个bit位的数据。并行NOR Flash比串行NOR Flash具有更快的传输速度。

    标签: Flash NOR 旺宏 并行

    上传时间: 2013-11-01

    上传用户:liu123

  • at91rm9200启动过程教程

    at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了UBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uboot结构与使用uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uboot,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uboot.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。

    标签: 9200 at 91 rm

    上传时间: 2013-10-27

    上传用户:wsf950131

  • C8051F35X单片机内部Flash存储器的擦写方法

    为避免在程序运行时向单片机内置的Flash写入数据导致复位,采用调用锁定与关键码的操作方法对C8051F35X型单片机的Flash进行擦除、写入和读取操作,并提供程序范例。该方法无需任何接口电路,使用方便,成本低且安全可靠。此方法已应用于包装机控制器,实现包装参数的保存和修改,效果良好。

    标签: C8051F35X Flash 单片机 存储器

    上传时间: 2014-12-27

    上传用户:363186

  • LPC900 Flash单片机键盘中断

    键盘是单片机系统中重要的人机交互方式之一。电梯、遥控器、电话、门禁系统都需要用到单片机所构成的键盘。当采用键盘扫描方式时,MCU在效率上存在着一定的浪费,而且由于程序的不停循环扫描,另一方面也相对地增加了系统的功耗。LPC900系列单片机提供了节电模式和键盘中断激活,有效地解决了以上问题。本文将以LPC900 Flash 单片机为准,和大家一起探讨键盘电路的构建及程序的设计。

    标签: Flash LPC 900 单片机

    上传时间: 2013-11-16

    上传用户:tangsiyun

  • 利用SPMC75本身的Flash做数据备份

    利用SPMC75本身的Flash做数据备份:SPMC75F2413A 32k字的内嵌Flash(embedded Flash)分为两区:信息区和通用区,在同一时间只能访问其中的一区。信息区包含64个字,寻址空间为0x8000 ~ 0x803F。地址0x8000为系统选项寄存器P_System_Option。其它地址空间可由用户自定义重要信息比如:版本控制,日期,版权名称,项目名称等等。信息区的内容只有在仿真或烧录的状态下才能改变。32k字Flash被划分为16个页,每页2K字,每页可分为8帧,这样32K的Flash就可以分成128个帧。只有位于00F000 ~00F7FF区域的页面在自由运行模式下可以设置为只读或可读可写,其它页面均为只读.也就说片内FLASH数据备份区为是0xF000~0xF7FF,备份区为Bank14,最多存储的数据为2K字。SPMC75F2413A的32K字的内嵌式闪存结构入下图2-1,图2-2。

    标签: Flash SPMC 75 数据备份

    上传时间: 2013-11-08

    上传用户:6546544

  • SPCE061A单片机硬件结构

    SPCE061A单片机硬件结构 从第一章中SPCE061A的结构图可以看出SPCE061A的结构比较简单,在芯片内部集成了ICE仿真电路接口、FLASH程序存储器、SRAM数据存储器、通用IO端口、定时器计数器、中断控制、CPU时钟、模-数转换器AD、DAC输出、通用异步串行输入输出接口、串行输入输出接口、低电压监测低电压复位等若干部分。各个部分之间存在着直接或间接的联系,在本章中我们将详细的介绍每个部分结构及应用。2.1 μ’nSP™的内核结构μ’nSP™的内核如0所示其结构。它由总线、算术逻辑运算单元、寄存器组、中断系统及堆栈等部分组成,右边文字为各部分简要说明。算术逻辑运算单元ALUμ’nSP™的ALU在运算能力上很有特色,它不仅能做16位基本的算术逻辑运算,也能做带移位操作的16位算术逻辑运算,同时还能做用于数字信号处理的16位×16位的乘法运算和内积运算。1. 16位算术逻辑运算不失一般性,μ’nSP™与大多数CPU类似,提供了基本的算术运算与逻辑操作指令,加、减、比较、取补、异或、或、与、测试、写入、读出等16位算术逻辑运算及数据传送操作。2. 带移位操作的16位算逻运算对图2.1稍加留意,就会发现μ’nSP™的ALU前面串接有一个移位器SHIFTER,也就是说,操作数在经过ALU的算逻操作前可先进行移位处理,然后再经ALU完成算逻运算操作。移位包括:算术右移、逻辑左移、逻辑右移、循环左移以及循环右移。所以,μ’nSP™的指令系统里专有一组复合式的‘移位算逻操作’指令;此一条指令完成移位和算术逻辑操作两项功能。程序设计者可利用这些复合式的指令,撰写更精简的程序代码,进而增加程序代码密集度 (Code Density)。在微控制器应用中,如何增加程序代码密集度是非常重要的议题;提高程序代码密集度意味着:减少程序代码的大小,进而减少ROM或FLASH的需求,以此降低系统成本与增加执行效能。

    标签: SPCE 061A 061 单片机

    上传时间: 2013-10-10

    上传用户:星仔

  • 自制ATMEL 89系列FLASH单片机编程器

    自制一台ATMEL 89系列FLASH单片机编程器学习单片机最有用的恐怕是编程器和仿真机,一台商品化的编程器至少要几百元,仿真机价格更高,往往让初学者难以选择。这里介绍的一款国外电子网站推出的廉价51编程器,能够读写最常用的12种51单片机,自己动手装配一台,既能锻炼自己的动手能力,又能廉价地装备一台多用编程器,无论是学习单片机或业余时间搞开发,都是一个非常好的选择。笔者按照资料自制了一台,十分好用,不敢独享。特编译了全部制作资料介绍给大家。这个编程器硬件使用标准的TTL系列器件而没有使用特殊元件。它连接在计算机的并行端口,对PC的并口没有特殊要求,所以配置很低的计算机也能用这个编程器。Atmel Flash 系列单片机是当前最流行的单片机,易于擦写,不象OTP芯片容易造成浪费。特别是89系列单片机与大家熟悉的INTEL51系列单片机完全兼容,这个编程器支持的单片机主要是Atmel flash系列。支持的器件:  这个编程器支持以下ATMEL单片机AT89C51,AT89C52,AT89C55,AT89S51,AT89S52,AT89S53,AT89C51RC,AT89C55WD,AT89S8252,AT89C1051U,AT89C2051,AT89C4051注意:20脚的单片机需要一个简单的适配器。(图 2 ) 硬件:  图1显示了这个FLASH 编程器的电路图,编程器和标准的计算机并口连接。电路图中的U2是用于控制计算机和控制器之间的数据流,U4 锁存低位地址字节 ,U5 锁存高位地址字节  ,U3用于产生控制信号给被编程的单片机。IC U1用于产生编程脉冲给单片机.当U7提供编程电压给控制器时,电源部分用U8产生逻辑5v供给。IC U6用于产生5V或6.5V VDD 电源电压给单片机。

    标签: ATMEL FLASH 单片机编程器

    上传时间: 2013-10-18

    上传用户:bakdesec

  • 存储器技术.doc

    存储器技术.doc 计算机的主存储器(Main Memory),又称为内部存储器,简称为内存。内存实质上是一组或多组具备数据输入输出和数据存储功能的集成电路。内存的主要作用是用来存放计算机系统执行时所需要的数据,存放各种输入、输出数据和中间计算结果,以及与外部存储器交换信息时作为缓冲用。由于CPU只能直接处理内存中的数据 ,所以内存是计算机系统中不可缺少的部件。内存的品质直接关系到计算机系统的速度、稳定性和兼容性。 4.1 存储器类型计算机内部存储器有两种类型,一种称为只读存储器ROM(Read Only Memiry),另一种称为随机存储器RAM(Random Access Memiry)。 4.1.1 只读存储器只读存储器ROM主要用于存放计算机固化的控制程序,如主板的BIOS程序、显卡BIOS控制程序、硬盘控制程序等。ROM的典型特点是:一旦将数据写入ROM中后,即使在断电的情况下也能够永久的保存数据。从使用上讲,一般用户能从ROM中读取数据,而不能改写其中的数据。但现在为了做一日和尚撞一天钟于软件或硬件程序升级,普通用户使用所谓的闪存(Flash Memiry)也可以有条件地改变ROM中的数据。有关只读存储器ROM的内容将在第11章中介绍,本章主要介绍随机存储器。4.1.2 随机存取存储器随机存取存储器RAM的最大特点是计算机可以随时改变RAM中的数据,并且一旦断电,TAM中数据就会立即丢失,也就是说,RAM中的数据在断电后是不能保留的。从用于制造随机存取存储器的材料上看,RAM又可分为静态随机存储器SRAM(Static RAM)和动态随机存储器DRAM(Dymamic RAM)两种。1. 动态随机存储器在DRAM中数据是以电荷的形式存储在电容上的,充电后电容上的电压被认为是逻辑上的“1”,而放电后的电容上的电压被认为是逻辑上的“0”认。为了减少存储器的引脚数,就反存储器芯片的每个基本单元按行、列矩阵形式连接起来,使每个存储单元位于行、列的交叉点。这样每个存储单元的地址做一日和尚撞一天钟可以用位数较少的行地址和列地址两个部分表示,在对每个单元进行读写操作时,就可以采用分行、列寻址方式写入或读出相应的数据,如图4-1所示。  由于电容充电后,电容会缓慢放电,电容 上的电荷会逐渐

    标签: 存储器

    上传时间: 2014-01-10

    上传用户:18752787361

  • MC68HC908GP32 MCU的Flash存储器在线编程

    MC68HC908GP32 MCU的Flash存储器在线编程技术.doc

    标签: Flash 908 MCU MC

    上传时间: 2013-11-24

    上传用户:许小华

  • XAPP483 - 利用 Platform Flash PROM 实现多重启动功能

      一些应用利用 Xilinx FPGA 在每次启动时可改变配置的能力,根据所需来改变 FPGA 的功能。Xilinx Platform Flash XCFxxP PROM 的设计修订 (Design Revisioning) 功能,允许用户在单个PROM 中将多种配置存储为不同的修订版本,从而简化了 FPGA 配置更改。在 FPGA 内部加入少量的逻辑,用户就能在 PROM 中存储的多达四个不同的修订版本之间进行动态切换。多重启动或从多个设计修订进行动态重新配置的能力,与 Spartan™-3E FPGA 和第三方并行 flashPROM 一起使用时所提供的 MultiBoot 选项相似。本应用指南将进一步说明 Platform Flash PROM 如何提供附加选项来增强配置失败时的安全性,以及如何减少引脚数量和板面积。此外,Platform Flash PROM 还为用户提供其他优势:iMPACT 编程支持、单一供应商解决方案、低成本板设计和更快速的配置加载。本应用指南还详细地介绍了一个包含 VHDL 源代码的参考设计。

    标签: Platform Flash XAPP PROM

    上传时间: 2013-10-10

    上传用户:jackgao