基于SkyEye的MPC5554 片上Flash实现

目录

01.Flash存储器介绍

02.MPC5554 Flash

03.MPC5554 Flash 相关操作

04.SkyEye平台上实现MPC5554 Flash 


01.Flash存储器介绍

NORNAND是现在市场上两种主要的非易失闪存技术。两种 FLASH 具有相同的存储单元,工作原理也一样,为了缩短存取时间并不是对每个单元行单独的存取操作,而是对一定数量的存取单元进行集体操作, NAND 型 FLASH 各存储单元之间是串联的,而 NOR 型 FLASH 各单元之间是并联的;为了对全部的存储单元有效管理,必须对存储单元进行统一编址。

NAND 的全部存储单元分为若干个块,每个块又分为若干个页,每个页是 512byte,就是 512 个 8 位数,就是说每个页有 512 条位线,每条位线下有8个存储单元;那么每页存储的数 据正好跟硬盘的一个扇区存储的数据相同,这是设计时为了方便与磁盘进行数据交换而特意安排的,那么块就类似硬盘的簇;容量不同,块的数量不同,组成块的页的数量也不同。在读取数据时,当字线和位线锁定某个晶体管时,该晶体管的控制极不加偏置电压,其它的 7个都加上偏置电压而导通,如果这个晶体管的浮栅中有电荷就会导通使位线为低电平,读出的数就是 0,反之就是 1。NOR Flash的每个存储单元以并联的方式连接到位线,方便对每一位进行随机存取;具有专用的地址线,可以实现一次性的直接寻址;缩短了FLASH对处理器指令的执行时间。NAND Flash和NOR Flash的各自特点如下图所示:

▲图 1.1  NAND Flash和NOR Flash对比图

02.MPC5554 Flash

MPC5554 Flash 属于Nor Flash。MPC5544 Flash 总容量为2M,划分为64KB页,每页256位。有20个独立的块,每个块的空间设定为15~128KB。硬件支持边读边写,可以在一个块进行擦除的时候读取另外的块。编程模式为并行,支持快速行结束编程。

Flash存储器按照物理实现分割成3个段,低地址段,中地址段和高地址段。每个段可以分割成区,每个区包含了至少两个块。当对分区中的任意一个块进行擦除或写入操作时,该分区所有块都不能进行读取。MPC5554 Flash 存储空间划分图如下所示:

▲图 2.1 MPC5554 Flash分布图

03.MPC5554 Flash 相关操作

1.擦除操作

1) FLASH_MCR寄存器的ERS位置1。

2) 根据所要擦除的FLASH块,设置FLASH_LMSR寄存器和FLASH_HSR寄存器。

3) 向被擦除的FLASH块所在地址空间的任意地址执行写操作,为擦除锁定写操作。

4) FLASH_MCR寄存器的EHV位置1,启动内部的硬件擦除流程。

5) 等待FLASH_MCR的DONE位置1,DONE位置1表示擦除成功。

2.编程操作

1) FLASH_MCR寄存器的PGM位置1。

2) 向这个FLASH块中第一个待写入的地址写入一个字或一个长字,为编程写锁定。

3) 将后续的编程内容写入到这个FLASH块

4) FLASH_MCR寄存器的EHV位置1,启动内部的硬件编程流程。

5) 等待FLASH_MCR的DONE位置1,DONE位置1表示编程成功。

04.SkyEye平台上实现MPC5554 Flash 

SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。

SkyEye目前支持主流的嵌入式硬件平台,可以运行主流的操作系统,此外还能适配国内自主研发的操作系统天脉。通过利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。

实现MPC5554 Flash FLASH_MCR等寄存器的读写操作,如下图所示:

▲图 4.1 写FLASH_MCR 寄存器实现图

实现Flash 的擦除,编程操作,如下图所示:

▲图 4.2  Flash擦除实现图

SkyEye中Flash实现gp模型图

▲图 4.3  Flash实现gp模型图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值