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

发布者:PositiveEnergy最新更新时间:2007-09-24 来源: 电子产品世界关键字:存储  音频  速度  模块 手机看文章 扫描二维码
随时随地手机看文章
前言

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

1 硬件设计

1.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编程来实现对它的读写操作,十分适合于系统的调试和开发。

1.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相连。

2 软件设计

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


2.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。

2.2 FBTC程序的设计

FBTC程序主要是针对DSP目标板上的FLASH存储器进行操作。即通过一定的编程命令序列来控制FLASH的工作方式。这些命令序列是一些特定字符的组合,只要向FLASH中的特定寄存器以特定的顺序输入这些字符,即可进入相应的编程模式。SST39VF400中的主要命令和写入地址如表2所列。FBTC程序主函数的状态图如图3所示。

图3中的信息处理函数可依据FlashBurn编程协议提供的信息格式来设计;命令处理函数主要包括FLASH的擦除、读取和烧写。同样的,FBTC程序设计完成后,也可利用TI公司的DSP集成开发环境CCS进行编译、调试及链接,从而生成FBTC程序的目标文件*.out。

3 FLASH的烧写

对FLASH存储器进行烧写一般有以下几种方法:一是通过编程器烧写;二是通过开发商提供的专门烧写软件工具进行烧写;三是自己编写烧写程序通过DSP烧写。本文是通过TI公司提供的FlashBurn软件来对FLASH存储器进行烧写。将FlashBurn与CCS、HEX文件转换工具以及FBTC配合使用,可以方便快捷地将用户数据与程序写入FLASH存储器。FlashBurn采用图形化界面,使用方便,用户只要简单配置几个操作参数,即可实现对FLASH存储器进行擦除、烧写和查看内存内容等多项功能操作。其具体步骤如下:

(1) 编写用户程序,通过CCS编译、链接生成目标文件user.out;
(2) 编写FBTC程序,通过CCS编译、链接以生成目标文件FBTC.out;
(3) 编写hex6x命令文件(*.cmd),并利用hex6x来执行这个文件,然后将用户目标文件user.out转换为十六进制格式user.hex。

hex6x命令文件如下:



(4) 打开FLASHBurn软件,新建一个*.cdd文件并设置,其设置示意图如图4所示;

(5) 装载FBTC.out,然后再擦除和烧写FLASH;
(6) 去掉仿真器并复位DSP目标板,以使程序自动加载运行。

4 结束语

按照上述步骤 将用户应用程序成功下载到FLASH后,再将DSP目标板脱离仿真器并重新上电复位,其用户应用程序便可正常运行,而且FLASH擦除和烧写速度比较快。该方法成功解决DSP程序的脱机引导加载问题。事实上,根据不同的应用,也可以参考本设计中实现方法,以求简单、有效地解决FLASH存储器的自举问题。

关键字:存储  音频  速度  模块 引用地址:单片机的FLASH引导装载系统设计

上一篇:单片机的FLASH引导装载系统设计
下一篇:飞思卡尔推全球Flexis微控制器系列研讨班 现已开始注册

推荐阅读最新更新时间:2024-03-16 12:22

带SD/MMC存储卡接口的MP3和弦芯片ft1780
随着MP3手机的兴起,用户不仅对手机音乐的音量、音质要求越来越高,而且对手机的存储容量的要求也越来越大,总希望能多存些歌,可以省去频繁换歌的烦恼。但目前一般手机自带的内存远远不能满足这些要求,而且很多手机平台也无法支持外接存储卡,为了解决这一问题,就需要有配套的存储管理芯片。 方泰电子的ft1780可以帮手机设计工程师很好的解决这个难题。它不仅可以提供专业的MP3音乐,而且集成了SD/MMC存储卡接口,由于内置文件管理系统,可以方便地升级原有的手机产品,使之具有可更换外接SD/MMC存储卡的功能。本文介绍了ft1780音频处理芯片的功能特点,并详细叙述了其在手机上的应用实例。 ft1780芯片内部结构和特点 图1是
[手机便携]
“北斗一号”GPS汶川地震起重要作用
  汶川县的位置示意图,汶川距离成都约200公里   “北斗一号”在通信中断情况下发挥重要作用   中国自主研制的“北斗一号”系统在通信中断的情况下发挥重要作用,救灾部队携带的北斗系统正在陆续发回各种灾情和救援信息。   “北斗一号”卫星导航定位系统监测到,一支携带了“北斗一号”终端机的部队,从中午12时开始,沿着马尔康、黑水、理县到汶川的317国道,以每小时6公里左右的速度一路急进,6个小时前进了近40公里,已经进入汶川县境内,离县城还有40公里左右的路程。   由于通信受阻碍,位于北京的卫星导航定位指控中心初步判断该部队隶属四川武警总队。指控中心正在进一步了解情况。   2003年5月25日零
[焦点新闻]
基于FPGA的UART控制器的多模块设计与实现
异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。实现串口通信主要需要完成两部分工作:   将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/CMOS电平的转换;   接收并且检验串行的数据,将数据变成并行的并提供给处理器处理。   实现RS-232电平和TTL/CMOS电平转换可以用接口芯片来实现,实现数据的串行到并行转换用的是UART,它们是实现串行通信必不可少的两个部分。虽然目前大部分处理器芯片中都集成了UART,但是一般FPGA芯片却没有这个特点,所以使用FPGA作为处理器可以有两个选择,第一个选择是使用UART芯片进行串并转换,第二个选择是在FPGA内部实现
[工业控制]
存储芯片出货量下降,三星Q2季度利润再跌60%
数据显示,随着三星电子面向华为的存储芯片出货量下降加剧了价格挤压导致的供应过剩情况,当三星在周五发布第二季度初步业绩时,该公司很可能预计第二季度营业利润下降50%以上。三星第二季度营业利润将创下该公司近三年来的最低水平。分析师称,随着供应过剩阶段在整体科技市场增长放缓的情况下难以得到缓解,三星的营业利润仍需要几个季度时间才能复苏。 29位分析师平均预计,三星第二季度营业利润将达到6万亿韩元(约合51.4亿美元),较上年同期的14.9万亿韩元下降60%。三星将于本月晚些时候发布第二季度详细业绩,该公司股价在三个月内已经上涨了5.3%。 不过,芯片销售为三星贡献了逾三分之二的利润。智能机市场的饱和与数据中心需求的下滑已经
[嵌入式]
<font color='red'>存储</font>芯片出货量下降,三星Q2季度利润再跌60%
STM32学习 存储器和总线构架
主系统由以下部分构成: 1.四个驱动单元: Cortex-M3内核,DCode总线和系统总线(S-Bus),通用DMA1和通用DMA2 2四个被动单元 内部SRAM,内部闪存存储器,FSMC,AHB到APB的桥,它链接所有的APB设备。 程序存储器,数据存储器,寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。 可访问的存储器空间被分成8个主要块,每一个块为512M。 STM32F10XX内置64K字节的静态SRAM,它可以以字节,半字,或字访问。 SRAM的起始地址是0x2000000 Cortex-M3存储器映像包括两个位段区。这两个位段区将别外存储区中的每个字映
[单片机]
西数告东芝案美法院判决:未禁售东芝存储器出售案
集微网消息,据海外媒体报道,为了东芝存储器公司的出售案,日本东芝企业与合作伙伴美国西部数据(Western Digital)间展开的法律战,终于在7月29日这一天在美国法院暂时告一段落。 日前,西数提诉要求禁止出售东芝存储器,美国法院在 29 日命令东芝须在完成出售前两周通知西部数据,并没有禁止东芝进行出售协商。由于东芝并未被法院禁止出售,将与日美韩联盟继续协商。 西部数据声称这个价值达到180亿美元内存芯片业务的出售牵涉到它与东芝之间的合资企业股份,因此这一出售应该获得西部数据的同意。 东芝给西部数据的通知,将让西部数据提供机会回到法庭或仲裁小组,获得叫停止该交易的机会。此外,该协议还对有关加州的该法庭对东芝是否拥有司法管辖权疑
[手机便携]
基于S3C2410的RTC模块应用设计
引言 本文在介绍S3C2410的基础上,对RTC内部结构及工作机理进行了分析,最后给出了专用于RTC功能的应用开发。 硬件结构 S3C2410处理器简介 S3C2410是三星公司推出的16/32位RISC微处理器,它是为应用于小型掌上设备和高性价比、低功耗、高性能的嵌入式系统应用而提供的微控制解决方案。S3C2410使用了ARM920T内核。 javascript:if(this.width 690)this.width=690;if(this.height 690)this.height=690; 图1 S3C2410内部RTC模块结构图 硬件构架 RTC模块能够在系统断电的情况下由后备电池供电继续工作,
[单片机]
基于S3C2410的RTC<font color='red'>模块</font>应用设计
如何在两部SDR接收器之间远程遥控切换天线和音频
远程天线切换 我有两根YouLoop天线并一直把它们放在彼此的直角斜对面上。我会把其中一个放在AirSpy软件定义无线电接收器上。但手动从一个天线切换到另一个天线确实很痛苦。要是有办法在两根天线之间进行电切换就好了。 最好将天线放置在远离接收机和电脑的地方,然后有某种远程开关来选择天线,然后有一条馈线到接收机。 YouLoop和Airspy都使用SMA连接器。需要SMA开关。经过一些研究,我发现了以下可以在两个SMA天线之间切换的小板: 亚马逊描述:50欧姆射频开关模块,3-5V远程无线射频开关,单极双掷板输入输出阻抗,用于DIY电动门(HMC349) 这个板是完美的只接收项目。给单板加5V,然后给VCC(控制引脚)加5V,从
[嵌入式]
如何在两部SDR接收器之间远程遥控切换天线和<font color='red'>音频</font>?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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