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所示。