微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 单片机的FLASH引导装载系统设计

单片机的FLASH引导装载系统设计

时间:09-25 来源:互联网 点击:
1 前言

DSP系统的引导装载是指在系统加电时,由DSP将一段存储在外部非易失性存储器中的代码移植到内部高速存储器单元并执行的过程。这种方式即可利用外部存储单元扩展DSP本身有限的ROM资源,又能充分发挥DSP内部资源的高速效能。因此,引导装载系统的性能直接关系到整个DSP系统的可靠性和处理速度,是DSP系统设计中必不可少的重要环节。在装载系统中,外部非易失性存储器和DSP的性能尤为重要。FLASH是一种高密度、非易失性的电可擦写存储器,而且单位存储比特的价格比传统EPROM要低。为此,本文介绍了TMS320C6713浮点DSP芯片和SST公司提供的SST39VF400A FLASH存储器的基本特点,给出了使用该FLASH存储器设计和实现完整的TMS320C6713 DSP引导装载系统的具体方法。

2 硬件设计

2.1 主要芯片介绍

DSP自动引导装载系统主要使用DSP芯片(TMS320C6713)和外扩存储器(SST39VF400A)两种芯片来实现。其中TMS320C6713是一款高性能的32位浮点DSP,适用于专业音频信号处理。该芯片的内部结构是在TMS320C62XX的基础上加以改进制成的,其内部集成了多个功能单元,并采用了先进的VLIW体系结构及流水线技术;它采用3.3 V的I/O电压和1.8 V的内核电压供电方式,并具有两级cache缓存结构。除此之外,它还有以下两个主要特点: 第一是运行速度快。德州仪器公司(TI)推出的这一款300 MHz的TMS320C6713数字信号处理器(DSP)的处理速度高达1800 MFLOPS。TMS320C6713可以使用的工作时钟和对应指令周期表如表1所列。


其次是精度高。TMS320C6713有三个因素影响着浮点格式的内在高精度。首先,浮点DSP的24位I/O字长在整数与实数值方面可实现比定点器件中常用的16位字长更高的精确度。第二.取幂大幅提高了应用可用的动态范围,较大的动态范围对处理极大数据集以及难以方便预计数据集范围的情况相当重要。第三,硬件内部的浮点数据表示法比定点器件更为精确,这就保证了最终结果的更高精确度。

SST39VF400A是SST公司推出的FLASH存储器。该器件十分适合用作外扩存储器,它的存储容量为4 MB,采用3.3 V单电源供电,因而无需额外提供高电压即可通过一些特殊的命令字序列来实现对各个子模块的读写和擦除。并可重复十万次以上,此外,还可通过DSP编程来实现对它的读写操作,十分适合于系统的调试和开发。

2.2 系统硬件接口设计

DSP访问片外存储器主要通过外部存储器接口(EMIF)完成。它不仅具有很强的接口能力(可以和各种存储器直接接口),而且具有很高的数据吞吐能力(高达1 200 MB/s)。TMS320C6713的EMIF能支持8位、16位和32位宽的所有存储器,当从这些窄位宽的存储空间读写数据时,EMIF会将多个数据打包成一个32位的值,而不必增加额外电路。TMS320C6713与SST39VF400的接口电路设计如图1所示。该电路主要通过DSP的相关输出管脚来控制FLASH的擦除和读写。其中,A0~A19为地址线,DQ0~DQ15为数据线,OE和WE分别为输出使能和写使能,CE1为片使能。由于TMS320C6713默认的引导模式是从外部CE1空间的16位FLASH来引导装载,所以,TMS320C6713的CE1和FLASH的片选CE相连。


3 软件设计

本引导装载系统主要由用户应用程序和FBTC (the FlashBurn Target Component)程序两部分构成,图2所示是基于CCS的Flash存储器烧写系统框图。其中,用户程序除了要完成用户设计要求外,还要对DSP板上的EMIF寄存器进行设置;FBTC程序则包括FLASH存储器烧写算法、初始化操作、地址映射等。



3.1 用户程序设计

用户可根据设计要求及实际算法编写用户主程序。除此之外,用户还要根据自己的目标板上存储器分配进行配置。TMS320C6713芯片上电后,若选择从EMIF引导程序,DSP则自动将位于地址空间CE1(0x90000000~0x9FFFFFFF)开头的1KB代码传输到地址空间0处。它的数据传输采用默认时序,用户可以选择外部程序存储器的宽度(8位/16位/32位),然后由EMIF自动将几次读人的数据合成为32位数据。传输由DSP中的ED-MA通道以单帧形式自动进行。传输完成后,程序从地址0处开始运行。因此,要在TMS320C6713中实现基于FLASH的自引导功能,必须将FLASH配置在DSP的CE1地址空间中。

在这里,用户要编写的EMIF配置文件是c6713 emif.s62,其程序设计代码如下:

                             

事实上,除了要对EMIF进行配置外,用户还必须在链接文件中为某些段制定两个不同的地址:一个是导入地址,一个是运行地址。导入地址用来决定装载器把段的原始数据放在何处,而运行地址就是该段代码运行的地址。制定两个地址的目的是为了加快代码执行速度。它们的链接可由*.cmd文件来实现。对存储器的设置如下:

IRAM:origin=00000000h length="0000FA00h" (内部RAM)

FLASH_BOOT:origin=0x90000000 length="00000400h" (存储自举代码)

FLASH_REST:origin=0x90000400 length="0001fc00h" (存储主程序代码等)

在完成用户主程序、EMIF配置文件、链接命令文件后,就可利用TI公司的DSP集成开发环境CCS进行编译、调试及链接,以生成用户应用程序的目标文件*.out。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top