dsp对am29lv400bflash存储器的烧写、擦除操作

dsp对am29lv400bflash存储器的烧写、擦除操作

ID:24202065

大小:50.50 KB

页数:4页

时间:2018-11-13

dsp对am29lv400bflash存储器的烧写、擦除操作_第1页
dsp对am29lv400bflash存储器的烧写、擦除操作_第2页
dsp对am29lv400bflash存储器的烧写、擦除操作_第3页
dsp对am29lv400bflash存储器的烧写、擦除操作_第4页
资源描述:

《dsp对am29lv400bflash存储器的烧写、擦除操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、DSP对AM29LV400BFlash存储器的烧写、擦除操作  1.引言  Flash是一种可在线进行电擦写,掉电后数据不丢失的EEPROM存储器。它具有功耗低、容量大、烧写和擦除速度快等优点,并且内部嵌入算法完成对芯片的操作,简化了软件的工作量,因而在数字信号处理系统中得到了广泛的应用。DSP是一种高速数字信号处理器。它具有高稳定性、可重复性、可大规模集成,特别是易编程性和易于实现自处理等特点,使得信号处理手段更灵活、功能更复杂、运算速度更快,在数字信号处理领域得到广泛地应用。本文通过完整的实例,介绍以TMS320VC33(简称VC33)为嵌入式系统对AM29

2、LV400BFlash存储器进行烧写和擦除的实现方法。  2.AMD公司AM29LV400BFlash存储器  AM29LV400B是AMD公司推出的Flash存储器,它是4兆位(8512K/16256K位)的CMOS工艺扇区擦除、字节编程的电可擦除只读存储器EEPROM。它的主要特点包括如下几个方面:3.3V单电压供电;内部嵌入编程、擦除操作算法,只需向命令寄存器写入标准的微处理器指令,并且可通过查询特定的引脚或数据线来监控操作是否完成;对任一扇区进行烧写擦除操作时不影响其它的扇区数据;可进行100000次的烧写擦除操作,数据保存10年以上。  本文中Flas

3、h的数据映射到DSP的0x0400000空间,Flash的一个字节对应一个DSP的低8位数据,高24位为无效数据,可以直接按字节进行读写操作。  3.Flash存储器的基本操作命令以及程序设计流程  Flash存储器AM29LV400B的基地址为0x400000,每个偏移地址乘以4是因为Flash字节仅占用DSP空间低8位,而DSP的地址是字节地址,所以地址增量为4。  3.1Flash存储器的操作结束检测  FlashAM29LV400B内部的编程或擦除算法可自动完成相应操作,但必须了解其内部的操作检测机制,以便知道操作是否完成或正确。常用的检测方法有两种:跳

4、变位(DQ6)检测法、数据检测位(DQ7)检测法。本文中用的是第1种方法,即检测跳变位DQ6。DQ6指的是当前操作地址的D6位,在Flash写操作过程中,对相应地址的连续读均引起DQ6的0、1跳变,只有当写操作结束的时候,DQ6才会停止跳变,此时说明Flash内部操作成功结束,程序代码如下:   对读回的DQ6的数值做0x7fffff次比较,如果在所有的比较里该位都产生跳变,则说明Flash内部操作失败;如果DQ6停止跳变,flag标志写1,跳出d文件),为程序和数据分配存储空间。  5.1命令链接文件(.cmd文件)的编写  命令链接文件定义了DSP存储空间分

5、配情况,用于在程序链接加载过程中将编译生成的各个代码段定位到DSP程序和数据存储区上,以本文的项目为例,cmd文件如下:   MEMORY命令完成DSP存储空间的分配。本文中将DSP的存储空间分成九部分:ROM区域表示4K的内部ROM区;EXT0区域表示外部存储区;Flash表示的是Flash存储区;VECTOR区域表示存放中断向量表的存储区。  SECTIONS命令说明编译生成的各个输出段如何定位到存储器。由于在CC3000开发系统下烧写文件到Flash涉及对文件的打开与读写操作与动态存储分配操作,所以应该在SECTIONS里定义.sysmem和.cio两个段

6、,而一般情况下这两个段在编译过程中是不产生的。.sysmem段是提供动态存储分配空间的数据区,主要由malloc、calloc和realloc等动态分配函数所使用,这些函数封装在CC3000提供的系统库函数rts30.lib中。.cio是有关文件IO操作的段,程序中涉及到对文件的打开读写等操作的时候编译才会生成该段。这两个段都是作为程序的数据定义到RAM数据存储器里。  5.2烧写文件数据到Flash的实现  在CC3000下打开文件,读取文件数据,并将数据通过VC33写到Flash。下面以小于64K文件的烧写为例,说明在CC3000下烧写Flash的过程,程序

7、代码如下:   在CC3000开发系统下,根据文件大小计算将文件数据分成多少个64K大小的块和最后一块小于64K块的长度,并对DSP进行初始化;然后以rb为参数调用fopen函数,即已只读的二进制文件格式打开制定的文件,如果fopen参数里没有写出文件的路径,系统默认为与CC3000生成的.out格式文件在同一个目录下,如果打开成功,获得文件句柄fp;按照块的顺序,依次以字节大小读取文件数据到0x0803000~0x0808000,并调用写Flash函数flash_29LV400B的烧写。其他型号Flash芯片也可按此类方法烧写。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。