DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 527|回复: 0
打印 上一主题 下一主题

Flash Memory作为数据存储器在E5中的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:19:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1. E5的特点及体系结构E5是位于美国硅谷的公司Triscend 推出的一款全新的CPU,它是基于8051的内核,但将微处理器的内核,ASCI及可重构逻辑阵列集成与一体,构成一款CSOC(可配置系统)芯片。Triscend E5的主要特点有:1.1 它的主控制器是一个增强型的8032,与工业标准的8051指令上完全兼容。1.2 它包含一个嵌入式的可重构系统逻辑矩阵(CSL)。共有2048 个可配置系统逻辑(CSL)单元(约40000 个逻辑门)。1.3 拥有一个高性能的系统总线(CSI),连接微处理器,存储器和可重构系统逻辑矩阵。1.4 增加了一个存储器接口单元(MIU),负责连接外部存储器。1.5 片上64k 字节的系统专用RAM(XDATA RAM)? 由此可知,E5的主要部件是:8032增强型CPU,可重构系统逻辑矩阵(CSL),内部系统总线(CSI),片上64KRAM,可编程I/O口以及一些专用外设。2. E5存储区的映射关系E5内部含有64K的SRAM供数据存取之用,但不含ROM。因此须接以External Memory供程序运行。在使用E5的系统中,E5可以从Internal RAM或External Memory中取得指令运行。一般情况下,E5从External Memory中取得运行指令,而External Memory一般为FLASH。E5使用增强型的8051内核,其逻辑寻址能力遵循8051的规则,即逻辑地址上CODE、XDATA区各64KByte。在传统的8051系统中,指针DPTR可利用指令MOVC、MOVX分别寻址CODE、XDATA的64KByte。但E5利用其MIU(Memory Interface Unit)将实际物理寻址范围作了极大的提升。在使用E5的系统中,合理利用TRISCEND提供的地址映射器CMAP、DMAP,使得寻址范围达到32位的物理地址空间。图1为逻辑地址空间与物理地址空间的映射关系。

从图中可知E5的物理地址划分如下:0000_0000"0000_FFFF? Primary Initialization Code ROM(初始化代码ROM空间)0001_0000"0001_FFFF? Internal RAM(内部RAM空间)0002_0000"0002_FFFF? Configuration Register Unit(可配制寄存器单元)0003_0000"0003_FFFF? CPU Debug Registers(CPU仿真寄存器)0004_0000"0007_FFFF? Initialization Memory(初始化存储器空间)0008_0000"0009_FFFF? Reserved(保留空间)0010_0000"007F_FFFF? CSL-based Soft Module Registers Decoded via Selectors(软件IP库寄存器空间)0080_0000"00FF_FFFF? External Memory(外部存储器空间)下面再分析实际使用中FLASH MEMORY的空间分配问题。在本文利用E5所设计的应用系统中,使用29LV800BA-90PFTN,作为External Memory程序存储器。它的容量是8M (1M * 8/512K * 16)BIT,并以64K分段(SECTORED)。它的段(SECTOR)空间与E5的物理地址的对应关系如图2所示。




                          
                       
                          
                                在实际应用中,FastChip自动将E5 CSL数据存放在FLASH的SA12,如果这部分数据需要占用的空间超过64KByte,则向后继续占用SA13,并依此类推;其余SA0"SA11作为程序代码存放区。实际上程序代码所需要的存储空间并不是总需要那么大,多数情况下甚至少于64KByte。因此我们可以将FLASH中的部分区域划做数据存储,用于保存需要在掉电或硬件复位后可再恢复的数据。3. FLASH 做DATA MEMORY的说明使用FLASH中的部分区域作数据存储,必然涉及到数据的改写。对FLASH而言,在进行数据改写时,必须先将该数据所在的SECTOR完全擦除(ERASE),然后再执行写(WRITE)操作。受FLASH操作的限制,在对FLASH进行EREASE、WRITE操作时,相应部分功能程序代码不可能从FLASH内取得,所以必须预先将它们转移到适当的位置(SRAM),以保证读、写FLASH的程序正常运转,完成这一部分操作完成后,可以恢复从FLASH内取得程序代码继续执行其他功能。在这些应用中,内部SRAM由CODE与XDATA地址空间共享。E5内部有一定容量(64K)的SRAM,故可以从SRAM取得程序代码完成规定的操作。但是这个RAM的容量有限(具体:E502-8KByte,E505-16KByte,E512-32KByte,E520-40KByte),而且SRAM本身还必须预留足够的空间作为中间数据的存放,所以转移到RAM的程序代码应该尽可能精简。要E5完成对FLASH中部分区间的数据改写,最少必须具有以下两个功能:将程序代码区的内容转移到内部RAM区;完成对FLASH的ERASE、WRITE。3.1 程序代码转移按照设计要求,被转移的程序代码所完成的功能是操作FLASH。为保证该部分代码转移至E5内部RAM后能正确运行,代码的绝对起始地址应该为0。这部分代码应该利用FastChip的CODE BANK存放在单独的BANK内。如一般功能应用程序占用BANK0"N,则这部分代码存放在BANKN+1。进行程序代码转移时,需要确定的参数包括:被转移程序代码的首地址、被转移程序代码的长度、被转入区间的首地址。在进行该项工作之前,确认改变地址映射器的设置不会导致程序运行的混乱。3.2 Internal RAM区块说明改写FLASH的功能代码必须在Internal RAM运行,而且起始地址必须是0000,因此,在设计时,Internal RAM的低段区域不要用来保存数据,我们设定该区域长度为4KByte,地址范围0001_0000"0001_0FFF。即其它数据的存取在0001_1000H之上。3.3 地址映射为将FLASH区域内的功能代码转移到Internal RAM指定的位置,我们设置地址映射器来分别指向:设置地址映射器DMAP2,使保存有改写FLASH的功能代码的FLASH之SECTOR的地址映射至XDATA区的0000"0FFF。映射器DMAP2各寄存器设置如下:DMAP2_TAR_0?0x00? ;源映射区的起始地址DMAP2_TAR_1?0x(80+BANK_No) ;源映射区的起始地址DMAP2_TAR_2?0x00? ;源映射区的起始地址DMAP2_ SRC?0x00? ;目的映射区的起始地址DMAP2_ CTL?0x2C? ;代码长度设置地址映射器DMAP4,将Internal RAM低4KByte的地址映射至XDATA区的1000"1FFF。映射器DMAP4各寄存器设置如下:DMAP4_TAR_0?0x00? ;源映射区的起始地址DMAP4_TAR_1?0x01? ;源映射区的起始地址DMAP4_TAR_2?0x00? ;源映射区的起始地址DMAP4_ SRC?0x10? ;目的映射区的起始地址DMAP4_ CTL?0x2C? ;代码长度完成上述存储器映射后,就可以将FLASM MEMORY的程序按BYTE TO BYTE的方式COPY到INTERNAL SRAM内执行。当然,这些都是在XDATA中处理的。4.对FLASH的操作在这个设计中,感兴趣的是FLASH作数据存储区使用,而不是作为程序存储区使用时的操作,所以,下面的描述是针对FLASH作数据存储区使用时的关注事项。在进行操作前,要事先进行地址映射器的配置,使DPTR能正确指向。读(READ)--类似于标准的RAM。可在任意时候进行。写(WRITE)--FLASH片内任一位都只能从1写为0,要从0写为1,必须使用擦除操作。擦除(ERASE)--擦除操作不能针对特定的字节,最少必须以扇区为单位进行,也可以选择将整个器件内的字节全部擦除。对FLASH的读、擦除操作,必须按照其Datasheet给定的步骤进行。如:擦除: xxAAA/AA-xx555/55-xxAAA/80-xxAAA/AA-xx555/55-xxAAA/10(整片擦除); xxAAA/AA-xx555/55-xxAAA/80-xxAAA/AA-xx555/55-ADDR/30(按扇区擦除)很显然,在我们的应用中,不能使用整片擦除操作,只能按需要将要改写的扇区进行擦除以保存我们的数据。写:xxAAA/AA-xx555/55-xxAAA/A0-PA/PD写FLASH时,每个命令序列只能写一个字节。其中PA是所要改写的字节的地址,PD是将要写入的内容。5.总结?在很多场合,如何将数据保护而不受掉电的影响是很重要的。本文作者创新点:说明了在E5微处理器中如何将FALSH MEMORY用与存取、保护数据,提供了FLASH与SRAM在XDATA空间中映射的方法,希望对使用E5 CPU的研发人员能有所帮助。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-12-25 18:14 , 耗时 0.095832 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表