基于闪烁存储器的DSP并行引导装载方法

发布者:haoying最新更新时间:2009-11-04 来源: 机电之家关键字:TMS320VC5409  Am29AL400B  存储器 手机看文章 扫描二维码
随时随地手机看文章

     TMS320VC5409 是TI公司推出的第一代的高性能、低价位、低功耗数字信号处理器(DSP)。与现在流行的TMS320C5409相比,性能提高了60%,功耗效率提高了 50%。它的应用对象大多是要求能脱机运行的内嵌式系统,如机顶盒(STB)、个人数字助理(PDA)和数字无线通信等。闪烁存储器(FLASH MEMORY)是可以在线电擦写、掉电后信息不丢失的存储器。FLASH与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、擦写速度快、使用比较方便。因此,采用FLASH存储程序和固定数据是一种比较好的选择。AMD公司的Am29LV400B FLASH可以直接与DSP相接。

1 Am29LV400B的主要特点及编程方法

    Am29AL400B是AMD公司新推出的256K×16位产品,具有以下主要特点:

    (1)支持单电源操作,可分为满负荷电压供电(2.7V~3.6V)和电压范围可调节(3.0V~3.6V)和电压范围可调节(3.0V~3.6V)供电两种方式。满幅度电压供电压供电方式主要用于电池供电的应用中,而电压范围可调节供电方式直接与3.3V的高性能DSP接口,简化了系统的电源要求。

    (2)最快的存取速度高达55ns,CMOS工艺,具有100000次写入/擦写寿命。

    (3)低功耗(200nA的自动休眠电流,200nA的待命电流,7mA的读电流,15mA的编程/擦除电流)。

    (4)灵活的块结构支持整片擦除、块擦除。整片分为11个块(1块8K字、2块4K字、1块16K字、7块32K字)。

    (5)块保护功能,具有防止对任何区段进行编程或擦除的硬件保护机制。

    (6)与JEDEC标准兼容,引脚分布和命令集与单电源FLASH相兼容,具有优越的防止意外编程的保护功能。

    (7)数据查询位和数据切换位,可以通过软件方法检测编程/擦除操作的状态。

    (8)Ready/Busy#管脚,可以通过硬件方法检测编程/擦除操作的状态。

    (9)具有擦除暂停/擦除恢复功能。在暂停擦除操作过程中,支持读写不处于擦除状态的块。

    (10)内嵌的擦除/编程算法能自动对整个芯片或某几个块进行擦除编程操作。

    Am29LV400B编程和擦除算法的命令定义如表1所示。


表1 Am29LV400B命令定义

操作命令序列 周期

总    线    周    期

1 2 3 4 5 6
地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据

复位
片擦除
段擦除
字编程
1
1
6
6
4
RA
XXX
555
555
555
RD
F0
AA
AA
AA


2AA
2AA
2AA


55
55
55


555
555
555


80
80
A0


555
555
PA


AA
AA
PD

2AA
2AA

55
55

555
SA

10
30

    表中,RA为要读的存储器地址;RD为从存储器地址RA处读出的数据;SA为要擦除的段地址;PA为要写入数据的存储器地址;PD为要在地址PA处写入的数据。根据表中的命令定久可编制FLASH的“烧写”和“擦除”程序(用C语言和汇编语言混合编程实现)。根据需要,我们编制了“烧写”单字和“烧写”多字的程序。

2 硬件电路组成

    DSP 存储区硬件接口电路如图1所示。主要由5部分组成:DSP处理器-TMS320VC5409、系统逻辑控制电路(采用CPLD-EPM7128实现)、闪存FLASH-Am29LV400B(256K字的FLASH用来存储应用程序和初始化数据)、程序存储器SRAM1-IDT71V416S12PH(容量为256K字)、数据存储器SRAM2-IDT71V016S12PH(容量为64K字)。逻辑控制电路主要由3个模块组成:FLASH页选控制模块、读/写控制模块、程序空间/数据空间/FLASH切换控制模块。图中,CPLD的输出FMSEL为FLASH的片选脚;PMSEL为程序空间的片选脚; DMSEL为数据空间的片选脚。

    FLASH分为8页,每页32K,通过CPLD中的FLASH页选控制模块(Page0~Paeg2)实现FLASH翻页功能。为实现FLASH引导装载,FLASH物理空间的前32K映射到TMS320VC5409的数据空间0x8000h~0xFFFFh上,即TMS320VC5409的数据空间 0x8000h~0xFFFFh为FLASH的前32K空间。为了重点说明FLASH的引导装载过程,本文只谈及DSP片内程序存储空间以及FLASH前 32K字的使用情况。

3 TMS320VC5409 DSP的引导装载方式

    TMS320VC5409芯片具有两种引导方式:片内引导方式和片外执行方式。片内引导方式就是利用片内ROM中的引导程序将程序从外部加载到程序存储器中运行。由于FLASH的速度较低,难以与DSP相匹配,因此,本文采用片内引导方式。

    TMS320VC5409 片内掩模ROM中固化的引导装载(Bootloader)程序用于在上电复位时把用户程序从外部引导到高速RAM中,以保证其全速运行。 TMS320VC4509提供的片内引导方法有:有机口HPI方法、8位或16位并行EPROM方法、8位或16位并行I/O方法和8位或16位串行口方法等。TMS320VC5409片内引导装载源程序可以在TI网络下载得到,读者可以自行分析。下面通过图2所示的引导过程框图,阐述一下本文选用的并行引导方式过程。

    上电复位后,TMS320VC5409检测其MP/MC引脚,如果MP/MC="0",DSP从0xFF80h处开始执行片内引导装载程序。进入引导程序后,如有INT2请求中断,则进入HPI 引导方式;如有INT3请求中断,则进入EEPROM串行口引导方式;否则就进入并行引导方式。其详细引导过程如图3所示。

    片内并行引导方式前半部件是I/O空间并行引导方式,我们不采用此方式,程序继续运行直到从数据空间0xFFFFh地址读入一个地址数据,此数据为用户自举表的入口地址。这时片内引导程序就开始执行FLASH中的用户自举表,若自举表的第一个字是0x10AA,则表示是16位并行引导模式。


4 FLASH中自举表(Boottable)的存储格式

    为了实现DSP加电自举,FLASH的数据必须按照自举表的格式“烧写”。自举表的作用是:DSP运行此表时,首先根据自举表中前部分用户起始地址把后面的用户程序代码加载到DSP片内程序空间中相应的用户地址区域(由于FLASH与DSP时间不匹配,要设置好SWWR和BSCR寄存器),然后根据自举表中的程序入口址,在程序空间相应的地址开始运行程序。表2为16位并行自举的代码结构(自举表在空间允许的情况下可以放几个程序代码段,为便于说明,在此只说明一个程序代码段的情况)。

表2 并行自举表的代码结构

10AA(并行寻址格式)
SWWSR寄存器的初始值
BSCR寄存器的初始值
用户程序入口的XPC
用户程序入口的地址PC
用户程序的长度
用户程序起始地址XPC
用户程序起始地址PC
用户程序代码…
0000(表示自举表结束)

    下面结合一个实例,说明利用hex500命令生成二进制数据自举表的方法。

    (1)所编写的一个用户程序名为myblink.C,在编译链接成功后生成的输出文件名为myblink.out;程序空间的开始地址为0x1400h,程序执行的入口地址为0x144Fh。利用hex500工具,生成文件名为myblink.hex的二进制数据,hex500命令后添加如下条件:

    mybilink.out ;要转换的.out文件

    -a ;生成ASCII码的形式

    -e 0x144Fh ;程序空间中程序运行的开始

    地址

    -boot ;转换成自举表的形式

    -bootorg PARALLEL ;并行格式

    -byte ;按字节分配地址

    -memwidth 16 ;系统存储器字宽度为16位

    -romwidth 16 ;ROM物理宽度为16位

    -swwsr 0x7FFFh ;SWWSR设置软件等待周期

    -bscr 0xF800h ;BSCR设置段开关控制寄存器值0xF800

    -o myblink.hex ;输出的二进制数据文件名

    (2)生成的进制数据文件myblink.hex的数据为:

    0x10AA 0x7FFF 0xF800 0x0000 0x144F 0x00D1 0x0000 0x1400 …(用户程序代码)… 0x0000;

    前8个数据解释分别为:

    0x10AAh:16位并行寻址格式;

    0x7FFFh:SWWSR初始值为0x7FFFh,因为FLASH的运行速度比DSP慢,等待7个周期;

    0xF8000h:BSCR初始值为0xF800h;

    0x0000h:自举表程序入口的XPC=0;

    0x144Fh:自举表程序入口的地址=0x144Fh;

    0x00D1h:自举表程序的长度=0xD1h;

    0x0000h:自举表起始地址XPC=0;

    0x1400h:自举表的起始地址=0x1400h。

    (3)编写一个数据转换程序,把二进制数据文件myblink.hex转换为数组头文件myblink.h。在CCS环境下,FLASH的“烧写”主程序包含此头文件,编译链接后通过仿真器下载到DSP中,运行DSP,用户程序就被“烧入”FLASH中了。

    实际应用是:在数据空间地址0xFFFFh(也就是FLASH的空间0xFFFFh)中“烧写”数据0x9000h(FLASH中存放的自举表起始地址),在FLASH的地址0x9000h开始“烧入”用户自举表数据即myblink.h中的数组数据。

    DSP 运行情况是:依据第3节所述的引导装载过程,经过一系列的设置,使DSP寻址到数据空间地址0xFFFFh,得到自举表的起始地址0x9000h,PC指针指向0x9000h,执行自举表的数据,根据自举表写入信息,把后面的程序装载入程序空间起始地址0x1400h(XPC=0)(这时通过仿真器查看程序空间0x1400h开始的数据,与仿真器下载的myblink.out文件数据是一致的)。然后,DSP的PC指针指向程序入口地址0x144Fh (XPC=0)开始执行用户程序,从而完成了DSP利用FLASH实现16位并行引导装载的过程。

关键字:TMS320VC5409  Am29AL400B  存储器 引用地址:基于闪烁存储器的DSP并行引导装载方法

上一篇:基于FPGA的多通道数据采集系统设计
下一篇:基于MEMS和FPGA的移动硬盘数据加解密系统

推荐阅读最新更新时间:2024-05-02 20:54

汇编代码、机器码和存储器的关系以及数据的表示
即使使用C/C++或者其他高级语言编程,最后也会被编译工具转换为汇编代码,并最终作为机器码存储在内存、硬盘或者其他存储器上。在调试程序时,经常需要阅读它的汇编代码,以下面的汇编代码为例: 2023404: e5901000 ldr r1, 2023408: e3c110ff bic r1, r1, #255 ; 0xff 202340c: e3c11cff bic r1, r1, #65280 ; 0xff00 2023404、2023408、202340c是这些代码的运行地址,就是说运行前,这些指令必须位于内存中的这些地址上; e5901000、e3c110ff、e3c11
[单片机]
汇编代码、机器码和<font color='red'>存储器</font>的关系以及数据的表示
S3C2440的存储器映射(27根地址线如何寻找1G的地址)
查S3C2440的数据手册可知S3C2440可寻址1G的地址范围,但是S3C2440的地址线只有27根,理论上只能寻址2的27次方等于128M的地址范围。 通过细致的分析可知:S3C2440通过一个BANK来解决了这个问题。S3C2440有8个存储器BANK,引出了8根BANK线(对应nGCS0~ nGCS7),通过这个8根线来选通和关闭不同的存储器,这样S3C2440最多就可以连接8个128M的存储器。对某个BANK地址的访问实际上就是选通该BANK,于是ARM核只要发出一个地址,然后S3C2440的储存控制器把该地址解释成两部分:一部分是BANK地址,一部分是连接到该BANK存储器内部的地址就可以访问了
[单片机]
S3C2440的<font color='red'>存储器</font>映射(27根地址线如何寻找1G的地址)
IBM研发出最新多位相变存储器 提高了数据存储的可靠性
  IBM的科学家演示了最新的多位相变存储器,其每个存储格都能长时间可靠地存储多个字节的数据。最新技术让人们朝成本更低、速度更快、更耐用的存储技术前进了一大步,可广泛应用于包括手机在内的消费电子设备、云存储以及对性能要求更高的企业数据存储中。   相变存储器(PCM,Phase Change Memory)兼具速度快、耐用、非挥发性和高密度性等多种优势于一身,其读写数据和恢复数据的速度是现在应用最广泛的非挥发性存储技术闪存 的100倍;断电时,其仍拥有高超的存储能力,也不会造成数据丢失;而且,PCM能耐受1亿次写循环,而目前企业级闪存能耐受3万次写循环,消费级闪存仅 为3000次。   PCM利用材料(由各种不同元素
[家用电子]
嵌入式系统分析工具
能否及时高效地构建嵌入式系统,取决于软件开发人员在工作台上是否有合适工具来帮助完成开发工作。虽然预算通常受到限制,但有些工具是每位嵌入式软件工程师都必需的,这些工具可以帮助他们大幅减少构建、调试和验证其设计所需的时间。 选择调试器 开发人员的工作台上必备的第一种最重要工具是调试器。调试器的作用就如同包含应用代码的主机开发机与将要运行应用代码的目标嵌入式处理器之间的桥梁。调试器提供几种关键功能: 提取已编译和链接的应用,并将其加载到目标存储器中。 向目标处理器告知调试器已连接,并配置所有板载硬件调试模块和功能。 负责设置软件和硬件断点。 在调试过程中可用于读取寄存器和片上存储器。 接收实时应用程序跟踪信息以用于调试应用程序。 在很
[网络通信]
知名分析师预测2011年半导体市场增长6%
  Future Horizons 的创始人及分析师Malcolm Penn认为全球半导体业受2009年的金融危机的影响,到2010年耀眼的超过30%的增长,所以进入2011年将回归到正常年景,增长6%。   Penn在演讲会上说,明年产业将回顾到正常增长,据目前已有的各种预测是在增长1.5%至10.5%之间。Penn坚持现在谈明年的态势还不可能太精准,关键是看趋势。   Penn抛出它的预测数字2011年增长6%,但是仍认为有很大的上升空间。   因为在2010年7月时Penn曾作过2011年由增长28%,下调到14%,并声言这是重新校正。   Penn的6%增长预测是基于2011年的芯片平均售价,ASP可能增长1.5%
[半导体设计/制造]
技术文章—新型非易失性存储器内部详细解读
为了挑战现有的技术,新型非易失性存储器(NVMs)寻找仍在继续,但是任何技术被接受之前,它必须被证明是可靠的。 Fujitsu高级营销经理TongSwan Pang说,“每个人都在寻找一种通用的存储器。不同的技术有不同的可靠性挑战,并不是所有的技术都能在汽车0级应用中运行。” 这些新技术中的大多数都属于存储级内存(SCM)。它们适用于大容量存储技术(如NAND 闪存)和工作存储器(如DRAM)。至少有四种非易失性存储技术在竞争,其中一些已经取得了一些商业上的成功,而且似乎没有一种技术能够以牺牲其他技术为代价成为最终的赢家。与闪存相比,这些存储器的特点是读写操作更简单、速度更快,包括字节寻址能力。此外,读写趋向于对称(或几乎
[嵌入式]
技术文章—新型非易失性<font color='red'>存储器</font>内部详细解读
累加器A与片外数据存储器RAM传送指令(4条)举例——mcs51单
累加器A与片外数据存储器RAM传送 指令 (4条) 这4条指令的作用是累加器A与片外RAM间的数据传送。使用寄存器寻址方式: MOVX @DPTR,A ;(A)→((DPTR)) 累加器中的内容送到数据指针指向片外RAM地址中 MOVX A, @DPTR ;((DPTR))→(A) 数据指针指向片外RAM地址中的内容送到累加器A中 MOVX A, @Ri ;((Ri))→(A) 寄存器Ri指向片外RAM地址中的内容送到累加器A中 MOVX @Ri,A ;(A)→((Ri)) 累加器中的内容送到寄存器Ri指向片外RAM地址中 说明: 1、在89C51中,与外部存储器RAM打交道的只可以是累加器A,所有需要送入外部RA
[单片机]
STM32内部重要功能全记录
我们讲了内核、存储器和时钟,它们都是单片机核心功能的一部分,没有它们中的任何一个,单片机都不能正常工作。而核心功能还包括复位和电源管理两个部分,因为篇幅关系没有写完,这一期把它们补上。同时我还要继续介绍单片机的多个重要功能。之所以说“重要”,是因为单片机如果没有这些功能,虽然可以正常工作,但其性能和所发挥的作用会大大减弱。重要功能包括:低功耗模式、ADC、DMA、I/O端口、调试模式、定时器、看门狗定时器和嘀嗒定时器。因为我们现在是做入门的介绍,一开始不能讲得太深、太复杂,对于每个功能,我只介绍其表面上的功能与原理。大家只要看过,有一个基本的印象即可。待日后讲到编程设计时再深入讲解,你便会有温故知新的感觉。 【复位】 复位功能
[单片机]
STM32内部重要功能全记录
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved