藏刊网,职称文章发表、期刊投稿权威机构 咨询电话:13161763581

投稿咨询

13161763581

投稿在线咨询

专著咨询

合著&独著&编委

编辑在线咨询

专利咨询

专利申请&转让

编辑在线咨询

软著版权

软著版权

编辑在线咨询

在线沟通

论文&专著&专利

编辑在线咨询

微信聊

微信扫一扫

首页 > 计算机论文 > > DSP对AM29LV400BFlash存储器的烧写、擦除操作
DSP对AM29LV400BFlash存储器的烧写、擦除操作
>2024-03-29 09:00:00


1.引言

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

2.AMD公司AM29LV400B Flash存储器

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

本文中Flash的数据映射到DSP的0x0400000空间,Flash的一个字节对应一个DSP的低8位数据,高24位为无效数据,可以直接按字节进行读写操作。

3.Flash存储器的基本操作命令以及程序设计流程

Flash存储器AM29LV400B的基地址为0x400000,每个偏移地址乘以4是因为Flash字节仅占用DSP空间低8位,而DSP的地址是字节地址,所以地址增量为4。

3.1 Flash存储器的操作结束检测

Flash AM29LV400B内部的编程或擦除算法可自动完成相应操作,但必须了解其内部的操作检测机制,以便知道操作是否完成或正确。常用的检测方法有两种:跳变位\\(DQ6 \\)检测法、数据检测位\\(DQ7\\)检测法。本文中用的是第1种方法,即检测跳变位DQ6。DQ6指的是当前操作地址的D6位,在Flash写操作过程中,对相应地址的连续读均引起DQ6的“0”、“1”跳变,只有当写操作结束的时候,DQ6才会停止跳变,此时说明Flash内部操作成功结束,程序代码如下:

对读回的DQ6的数值做0x7fffff次比较,如果在所有的比较里该位都产生跳变,则说明Flash内部操作失败;如果DQ6停止跳变,flag标志写1,跳出while循环,Flash操作成功结束。

3.2 Flash存储器擦写操作命令

Flash存储器的擦写操作命令通常是启动Flash设备的存储器操作函数,由内嵌的算法完成具体的编程和擦除操作,所以向Flash的特定地址写入操作命令和数据,就可以对Flash存储器进行编程和擦除。表1介绍了Flash擦写命令的具体操作地址和命令代码。

在CC3000开发系统下,实现Flash擦写操作命令的C代码如下所示:

执行写上述操作时,应注意以下事项:计算要擦除扇区的开始地址时,默认为Flash的开始地址\\(第一个扇区\\)。由于编程指令不能使“0”写成“1”,只能使“1”写成“0”,而擦除指令可使“0”写成“1”,所以写数据之前要先擦除完成后再编程烧写。

4.烧写Flash存储器

一般情况下,Flash是通过编程器把以文件形式存储的数据\\(比如生成的DSP引导程序代码bin二进制文件\\)烧写到Flash中,但这种方法烧写速度慢,并且需要把Flash芯片放到编程器上,调试过程中频繁的插拔Flash芯片会降低芯片寿命,因此选择在开发系统下通过JTAG接口和仿真器将比较大的数据文件烧写到Flash的指定存储区域中。下面具体介绍在CC3000开发系统下实现软件打开文件并将文件数据烧写到Flash中的实现过程。

5.开发系统CC3000以及编译链接环境的设置

选用TI的CC3000作为DSP的集成开发工具,它支持标准C和C++语言,并且能够嵌入汇编语言。编译程序之前,应先对CC3000的编译链接选项进行设置,并编写命令链接文件\\(.cmd文件\\),为程序和数据分配存储空间。

5.1 命令链接文件\\(.cmd文件\\)的编写

命令链接文件定义了DSP存储空间分配情况,用于在程序链接加载过程中将编译生成的各个代码段定位到DSP程序和数据存储区上,以本文的项目为例,cmd文件如下:

MEMORY命令完成DSP存储空间的分配。本文中将DSP的存储空间分成九部分:ROM区域表示4K的内部ROM区;EXT0区域表示外部存储区;Flash表示的是Flash存储区;VECTOR区域表示存放中断向量表的存储区。

SECTIONS命令说明编译生成的各个输出段如何定位到存储器。由于在CC3000开发系统下烧写文件到Flash涉及对文件的打开与读写操作与动态存储分配操作,所以应该在SECTIONS里定义.sysmem和.cio两个段,而一般情况下这两个段在编译过程中是不产生的。.sysmem段是提供动态存储分配空间的数据区,主要由malloc、calloc和realloc等动态分配函数所使用,这些函数封装在CC3000提供的系统库函数rts30.lib中。.cio是有关文件IO操作的段,程序中涉及到对文件的打开读写等操作的时候编译才会生成该段。这两个段都是作为程序的数据定义到RAM数据存储器里。

5.2 烧写文件数据到Flash的实现

在CC3000下打开文件,读取文件数据,并将数据通过VC33写到Flash。下面以小于64K文件的烧写为例,说明在CC3000下烧写Flash的过程,程序代码如下:


在CC3000开发系统下,根据文件大小计算将文件数据分成多少个64K大小的块和最后一块小于64K块的长度,并对DSP进行初始化;然后以"rb"为参数调用fopen函数,即已只读的二进制文件格式打开制定的文件,如果fopen参数里没有写出文件的路径,系统默认为与CC3000生成的.out格式文件在同一个目录下,如果打开成功,获得文件句柄fp;按照块的顺序,依次以字节大小读取文件数据到0x0803000~0x0808000,并调用写Flash函数flash_write\\(\\),依次将数据写到Flash存储器\\(注意每次写操作结束后,Flash地址应该相应的增加\\);最后关闭文件,退出程序,操作完成。

6.结束语

用软件方式,在CC3000开发系统下,由VC33控制Flash写操作,从而实现了文件数据到Flash存储器的下载过程。与编程器写Flash的方式相比,其软件烧写Flash速度快,而且无需卸下Flash芯片放在编程器上,便于调试。通过上述方法可完成VC33对AM29LV400B的烧写。其他型号Flash芯片也可按此类方法烧写。

综合排序
投稿量
录用量
发行量
教育界

主管:广西壮族自治区新闻出版局

主办:广西出版杂志社

国际:ISSN 1674-9510

国内:CN 45-1376/G4

级别:省级期刊

中国报业

主管:中国报业协会

主办:中国报业协会

国际:ISSN 1671-0029

国内:CN 11-4629/G2

级别:国家级期刊

中国房地产业

主管:中华人民共和国住房部和...

主办:中国房地产业协会

国际:ISSN 1002-8536

国内:CN 11-5936/F

级别:国家级期刊

建筑与装饰

主管:天津出版传媒集团有限公司

主办:天津科学技术出版社有限...

国际:ISSN 1009-699X

国内:CN 12-1450/TS

级别:省级期刊

科学与信息化

主管:天津出版传媒集团有限公司

主办:天津科学技术出版社有限...

国际:ISSN 2096-2908

国内:CN 12-1451/N

级别:省级期刊

财经界

主管:国家发展和改革委员会

主办:国家信息中心

国际:ISSN 1009-2781

国内:CN 11-4098/F

级别:国家级期刊

期刊在线投稿系统
上传文件
支持上传.doc、.docx、.pdf文件
18年国内外学术服务,发表国际文献请认准藏刊网官网

资深编辑团队

专业设计投入方案

投稿成功率极高

企业信誉保障

对公交易更安全

人民群众口碑好

高效投稿流程

审稿快!出刊快!检索快!

正规刊物承诺

无假刊!无套刊!

投稿成功!

藏刊网提醒您

1.稿件将进入人工审稿阶段,审稿后会有编辑联系您,请保持手机畅通。

2.为避免一稿多投、重刊等现象影响您的发表,请勿再投他刊

确定

投稿失败!

藏刊网提醒您

由于网络问题,提交数据出现错误,请返回免费投稿页面重新投稿,谢谢!

确定

藏刊网收录400余种期刊,15年诚信发表服务。

发表职称文章,覆盖教育期刊、医学期刊、经济期刊、管理期刊、文学期刊等主流学术期刊。

投稿电话:13161763581(江编辑)   投稿邮箱:cangkan@163.com

本站少量资源属于网络共享如有侵权请您联系我们,将在第一时间删除。