微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C6000系列DSP Flash二次加载技术研究

C6000系列DSP Flash二次加载技术研究

时间:07-29 来源:互联网 点击:

引言
TI公司C6000系列DSP具有强大的处理能力,在嵌入式系统中有着广泛的应用。由于程序在DSP内部存储器的运行速度远大于片外存储器的运行速度,通常需要将程序从外部加载到DSP内部运行。由于C6000系列DSP均没有片上非易失性存储器,而最常用的方式为采用非易失Flash存储器进行程序的存储和加载。然而,该系列DSP的推出是一个渐进的过程,其芯片内部结构随着上市时间的先后有着较大的不同,而TI公司没有给出统一的加载方式。针对该问题,本文全面研究了不同DSP芯片的加载方法与差异,并根据这些特点提出了通用的二次加载方法。

1 TI公司提供的二次加载方法
TI公司的DSP芯片二次加载的原理是一致的,加载步骤如下:
①通过一次加载将二次加载程序载入DSP片内或片外存储器;
②运行二次加载程序加载剩余的程序与数据来完成后续加载;
③跳转到主程序入口,完成加载。
但是由于芯片内部结构不同,TI公司提供了不同的加载方法。根据程序与数据空间存储映射的不同,主要分为两类:分离存储映射的加载方式和混合存储映射的加载方式。
1.1 分离存储映射的加载方式
在TI公司最初推出的C6000 DSP中,程序与数据空间采用分离的存储映射方式,代表芯片为C6201和C6701。在这种方式下,程序空间与数据空间是分离的,片内程序空间只能在第一次加载时被写入;而在二次加载的过程中,只能对片内数据空间或外部存储空间进行访问。而且运行第一次加载程序时,就要将存放在Flash中首64 KB的数据全部搬入DSP程序空间中,而数据空间就需要二次加载来完成。二次加载的流程如图1所示。

从图1中可知,采用这种加载方式存在如下问题:
①对程序大小有限制,二次加载程序与主程序总和不能大于64 KB,无法完成正确的加载。
②加载方式较不灵活,DSP内部的程序空间在第一加载后就无法更改,二次加载一般只能加载数据。
1.2 混合存储映射的加载方式
继推出C6201和C6701后,TI公司又推出了程序与数据空间混合存储映射的DSP芯片。这种映射方式是当前C6000 DSP的主流,典型的芯片包括C6211、C6711、DM642、C6455等。在这些芯片中,程序空间与数据空间是统一编址的,程序与数据可以混放。在加载时,不论一次加载还是二次加载,均能访问DSP片内任意的存储空间。第一次加载程序首先将存放在Flash中首1 KB的数据搬入DSP内部存储器,然后运行二次加载程序,将后续的程序或数据搬入DSP片上存储器。加载的流程如图2所示。

在该模式下,二次加载程序能够访问任意的DSP内部地址,突破了被加载程序长度的限制,具有更高的灵活性,因此TI公司后续的C6000芯片中均采用了该加载方式。

2 通用的二次加载方法
由于内部存储映射方式的不同,C6201、C6701与其他C6000系列DSP芯片的二次加载方式有各自的特点,这在工程应用中带来了很多不便,因此需要将这些特点统一起来,建立通用的加载方法。下面介绍两种通用的二次加载方法:非结构化的加载方式和结构化的加载方式,分别对应于不同的应用场合。
2.1 非结构化的加载方式
非结构化的加载方式是指在加载时直接将Flash中的数据搬运到DSP中,而不对这些数据进行解析。该方法非常简单,适合程序空间不大于DSP内部存储空间的应用场合。
在生成可烧写到Flash中的文件时,首先将可执行文件通过调试接口下载到DSP内部(包括二次加载程序),然后将DSP内部存储器中的数据完全导出(内部存储器大小)。如果是C6201或C6701芯片,需要分别导出程序空间与数据空间的数据(分别为64 KB);如果是其他C6000芯片,则不用区分,导出连续的存储空间即可。然后采用转换软件将导出的数据转换为二进制可烧写文件,最后将数据文件按照固定的地址烧写到Flash中。生成流程如图3所示。


加载时,二次加载程序不解析任何数据包结构,只将固定地址、固定长度的数据段加载到DSP内部空间。具体的加载流程如图4所示。

该方法通用于两种不同存储映射的DSP芯片,使用前提是程序规模不超过片上存储器的大小(如C6701为64 KB,C6455为2 MB)。非结构化加载方式在生成烧写文件时,首先直接将DSP内部存储器的内容完全导出为数据文件,然后对该数据文件进行处理转换为二进制文件,最后将数据文件按照固定的地址烧写到Flash中。
需要注意的是,对于C6201或C6701芯片,二次加载时仅加载数据文件,而其他C6000芯片则加载程序与数据混合的文件。非结构化的加载方式浪费了大量的空间,例如当程序与数据并没有使用DSP所有的内部空间时,仍然使用最大程序空间来生成烧写文件。
2.2 结构化的加载方式
结构化加载方式是指在生成烧写文件的过程中对程序中的各种数据进行分类并添加结构,形成多个数据段,然后通过分析这些结构化的数据段进行加载。具体方法为:在生成烧写文件时采用TI公司提供的烧写文件生成工具hex6x.exe,将程序编译后生成的.out文件转换为相
应的结构化可烧写文件。生成过程如图5所示。在生成的结构化文件中主要包含了主程序入口、每个程序段的目标地址、长度以及结束标志等内容。加载流程如下:

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

网站地图

Top