TMS320VC5402外部并行引导装载方法

发布者:大泉人家最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章

  所谓引导方式就是指单片机(MCU)系统复位时,其系统软件代码所取得的方式。对于单片机来说,它使用复位矢量方式从程序空间的固定地址处开始取得指令代码。如果所需代码来自程序空间外部,则引导过程无法进行。TMS320VC5402 DSP内部ROM中的引导装载程序Bootloader使系统上电后能自动将程序代码从外部如Flash、Eprom、主机引导装载到DSP内部或者外部程序存储器中脱机运行。这样的设计有三个突出点:一是程序代码可以存储在片外相对慢速、非易失性器件中,而装载运行于高速器件;二是提供多种装载方式,使得DSP可以灵活应用到不同系统;三是省去对DSP片内ROM进行掩膜编程操作,节省大量费用。 引导装载程序根据不同的系统要求提供了多种装载模式,主要包括并行I/O口引导装载、串行口引导装载、HPI引导装载、外部并行引导装载等模式,并且兼容8位和16位字引导装载方式。

  1 引导装载程序分析

  TMS320VC5402内部4K字的ROM程序位于0xF000~0xFFFF程序空间,包括引导装载程序、μ律和A律扩充表、正弦对照表、工厂测试码和中断向量表。其中,引导装载程序位于0xF800~0xFBFF空间。复位时,如果TMS320VC5402处在微计算机方式MP/MC=0,则片内ROM中的引导装载程序就会被执行。引导装载程序在决定采用何种装载模式之前,首先对CPU状态寄存器进行初始化。初始化工作包括:禁止可屏蔽中断INTM=1,内部DARAM映射到程序/数据区OVLY=1,对程序和数据区均设置为7个等待状态。初始化完成后,引导装载程序执行装载模式判断。判断的顺序是:HPI模式、SPI模式、外部并行模式、标准串口模式、并行I/O模式。图1说明了整个装载模式的判断流程。

  图1 引导装载模式选择流程

  2 外部并行装载电路的设计

  由图1可知,外部并行装载时引导装载程序先读I/O空间FFFFh,判断是否是有效的并行装载模式;如果FFFFh处为非有效值,则读数据空间FFFFh,判断是否是有效的并行装载模式。对于外部并行装载,要求装载时Flash位于数据空间。下面给出两种实际应用过的并行装载电路,如图2所示。

  图2(a)适用于程序运行时不要求大数据空间的系统。若对DS(数据空间选择)信号与A15地址线译码,Flash占用数据空间的8000h~FFFFh共32K空间,因此程序代码的存储区大小不能超过32K。当然,若对A15、A14与DS译码,Flash也可将整个片外48K的数据空间作为程序代码的存放区。

  图2(b)将Flash分为16页,每页64K,Flash的片选信号CE利用DSP的A16~A19、通用I/O引脚XF以及程序/数据空间选择DS/PS信号译码获得。图2b所示系统上电后,XF=1,译码后Flash的0页映射到数据空间,此时引导装载程序可利用它正确装载;装载完毕后,DSP从程序代码的入口地址开始执行,此时DSP设置XF=1,DSP利用内部DARAM或者外部SRAM作为程序和数据空间存储器,Flash的0页被屏蔽而无法再操作,Flash的1~15页作为DSP扩展程序存储器使用。这样设计系统电路有如下好处:由于装载时与系统程序运行时数据空间的物理存储器分离,系统程序可利用全部64K的数据空间;程序运行时程序代码存储器被屏蔽,保证了装载程序的安全性;扩展程序空间可作为数据暂存或永久存储空间,满足了数据处理系统的要求。当然,也可使用单片64K的Flash作为程序代码存储器,以SRAM作为程序扩展空间存储器。

  图2 外部并行装载典型电路 3 外部并行装载的仿真器在线编程 DSP引导装载程序从外部数据存储器(Flash)中读取引导装载表,并且装载程序代码到DSP片内或片外程序存储器。Flash中存储的是引导装载表。它的结构如表1所示。要使用TMS320VC5402的引导装载功能,必须利用Hex转换工具生成一个如表1所示结构的包含引导装载操作所需的全部数据项的引导装载表。表中第一个字08AAh/10AAh代表8/16位并行装载模式。 表1 引导装载表结构 08AAh或者10AAh SWWSR寄存器初始化值 BSCR寄存初始化值 程序入口地址XPC 程序入口地址指(PC) 第一程序块大小 第一个程序块目标地址XPC 第一个程序块目标地址指针 程序代码1 …… 程序代码N 最后程序块大小 最后程序块目标地址XPC 最后程序块目标地址指针 程序代码1 …… 程序代码N 代码结束标志0000h 通常的DSP独立系统都需要利用Flash烧写器将引导装载表写入Flash中,对于采用表贴封装的Flash器件,烧写器无法写入数据。为了解决这个问题,采用仿真器在线编程方式将引导装载表数据写入Flash,它具有节约开发成本、减小器件尺寸、编程灵活的特点。

  对于图2a所示的系统,在仿真器仿真状态下,将引导装载表读入DSP数据区的0000h~7FFFh空间,然后使用Flash在线编程方法将数据写入Flash中,最后在Flash的FFFFh处写入引导装载表在Flash中的起始地址。编程完毕,复位系统即可实现装载过程。

  对于图2(b)所示的系统,仿真器在线编程则要复杂得多。由于在仿真状态下,程序空间与Flash的0页空间重叠,Flash的0页被屏蔽,程序无法操作到Flash的存储空间。为此,程序将Flash的0页空间作为“虚拟扩展程序空间”,以便程序写入引导装载表。具体实现过程是:设置外部控制信号=1,此时译码电路将A18地址线信号取反,虚拟扩展程序空间开放。Flash的0页空间虚拟成为扩展程序空间的040000h~04FFFFh空间。这样,仿真器在线编程040000h~04FFFFh空间即相当于对Flash的0页编程。编程完毕后,设置外部控制信号=0,复位系统后即可实现装载过程。

  本文分析了TMS320VC5402的引导装载程序的装载过程,给出了两个经常使用的外部并行装载典型电路。针对两个典型电路设计了仿真器在线编程装载方法。利用此方法实现了一个以128 16bit的SRAM作为程序和数据空间,以1M 16bit的Flash作为扩展程序空间和系统程序代码存储器的系统。该系统无需Flash烧写器进行Flash数据写入,并且完全利用了TMS320VC5402的全部存储空间,充分发挥了DSP的效能。

引用地址:TMS320VC5402外部并行引导装载方法

上一篇:基于PPP的TMS320C6x嵌入式网络接口设计
下一篇:多制式语音编码及其DSP实现

小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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