微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于HPI方式自举在TMS320VC5402 DSP芯片上实现

基于HPI方式自举在TMS320VC5402 DSP芯片上实现

时间:05-29 来源:3721RD 点击:

-8。和TMS320C54x系列前几款芯片中的标准HPI相比,HPI-8在几个方面有所不同,见表1。

表1 HPI-8和标准HPI的主要差别

增强型HPI(HPI-8) 标准HPI
可访问所有片内RAM空间 可访问所有片内2K的RAM空间
HOST访问总是与TMS32054x时钟同步 HOST-Only模式下HOST访问与TMS320C54x时钟同步
HOST和TMS320C54x都可访问片内RAM HOST-Only模式,HOST具有独占的访问权

HPI-8的使用是通过对HPIA、HPIC和HPID三个寄存器赋值实现的。HPIA是地址寄存器,HPIC是控制寄存器,而HPID是数据寄存器。简单地说,HOST通过外部引脚HCNTL0和HCNTL1选中不同的寄存器,则当前发送的8位数据就送到该寄存器。在使用上,由于HPIC是16位寄存器,而HPI-8是8位的数据宽度,所以在HOST向HPIC写数据时,需要发送两个一样的8位数据。而地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的功能,在每写入一个数据前和每写入一个数据后,HPIA会自动加1。这样,如果使能了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出。数据寄存器HPID,严格说应该叫做数据缓冲寄存器,因为最终数据是要写到片内RAM的。只是在实现上,数据首先从HOST发到HPID中,然后根据HPIA指定的地址,HPID中的数据再写到片内RAM的地址中。不过对用户而言,该过程是透明的。

3 使用HPI对DSP进行自举

HPI是作为多机数据交换而出现的,但是由于其功能特性,又产生了一种新的应用--使用HPI对DSP进行自举。实际上,TMS320VC5x系列DSP在片内固化的Bootloader程序中对HPI自举提供了全面的支持。笔者在VOIP系统的开发中,实现了使用HPI对DSP TMS320VC5402的自举,从而省掉了DSP的EPROM,使DSP只使用SRAM,提高了处理速度,并使HOST CPU具有更大的控制权,很适合多处理器系统。对于计算机插卡式的DSP系统,程序可以从PC机的硬盘上获取,从而减小了插卡版面空间占用,提高了处理速度。

在实现上,需要解决以下几个问题。

3.1 DSP片内固化的Bootloader程序对HPI自举的支持

自举从本质上说就是在DSP启动后通过某种方式获取运行代码并开始运行,这个过程是在固化在DSP片内的Bootloader程序辅助下完成的。在DSP上电以后,Bootloader程序按照一定的顺序依次检验何种自举方式可用,自举方式包括HPI方式、Serial EEPROM方式、标准Serial Port方式、Parallel方式和I/O方式。

Bootloader查询HPI方式是否可用是这样进行的:在启动以后,DSP片内0x7f地址的值被置为0,Bootloader不断检验0x7f地址处是否出现了可用的程序指针的跳转地址。当其发现该地址内的值不为0时,即判定为DSP已由外部HOST CPU进行了HPI自举程序加载,并按照该值跳转PC指针,开始运行,从而完成HPI方式自举。

3.2 突破4K的空间限制

由于HPI-8的特性,HOST能够访问所有的片内RAM空间,对于TMS320VC5402来说,其片内RAM地址空间从0000H到3fffH,一共4K。这已经大大超过了标准HPI的2K的大小,但是对于大多数DSP应用程序来说,片内RAM除了放置程序代码以外,很可能还需要留出一部分供数据空间使用。实际上,大部分代码都可能放置在片外的程序空间,而这部分空间并不是HOST通过HPI-8所能够访问得到的。所以需要使用某种技术突破4K的片内RAM空间限制。由于DSP程序本身是能够访问到所有DSP程序、数据空间的,所以HOST可以首先放置一个体积不大于4K的程序到DSP内,再由该程序和HOST协作完成超出片内RAM的代码的放置工作。

一般将上述的首先放入DSP的程序称为kernel程序,其功能比较简单,本身不超过4K,可以由HOST全部放入到TMS320VC5402的片内RAM中,并被启动。

基于此种思路的流程图如图1所示。

3.3 程序代码的定位

编程序的时侯使用符号作为地址,经编译、链接后,符号所表示的相对地址已经转化为绝对地址。要使程序能够正常运行,需要将程序代码写到指定的位置--绝对地址。在 HOST→Kernel→DSP应用的HPI自举方式中,HOST和Kernel需先后完成Kernel代码和DSP应用程序代码的定位工作。

因此,在HOST CPU的外存储器中,至少需要保存DSP程序代码和相应的地址信息。这些数据在由自举程序写到DSP后,被拼接成正确的可执行代码、已初始化数据等,并被正确定位。一般来说,HOST CPU的外存储器中的DSP自举数据是HEX格式的。虽然HEX格式有很多种,但任何一种包含有地址等信息的16进制HEX格式文件都是适用的。

常见的HEX格式有ASCII、Intel、TI-Tagged等格式,如图2所示。

在各种HEX格式中,Intel格式相对来说比较适宜,因为在Intel格式的HEX文件中,代码被分为每

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

网站地图

Top