
摘 要: 德州仪器公司(TI)推出的八核DSP芯片TMS320C6678是基于Keystone架构的高性能DSP器件,在高性能信号处理市场中得到了广泛应用。主要研究了TMS320C6678程序的加载,把TMS320C6678提供的几种加载模式按照实际应用和方便理解分成一次加载和二次加载,分别对一次加载和二次加载进行了研究和比对,最终为不同需求的加载提供了有效的参考。
关键词: TMS320CC6678 DSP;加载;二级加载
0 引言
DSP芯片自从问世以来,以其低成本、低功耗、高性能的优点得到了广泛应用。作为TI最新推出的八核DSP芯片TMS320C6678[1-2],更是在高性能信号处理市场中占据大量市场份额[3]。为了适应市场的需求,其发展方向也在不断地发生变化。嵌入式系统的迅猛发展,使得TI公司在其开发软件CCS中开发DSP芯片的文件格式也在向兼容嵌入式系统的方向发展。在较新的CCS5.2版本中调试DSP6000系列程序生成的可执行文件格式最终过渡到了完全兼容Linux嵌入式系统的ELF文件格式[4]。由于DSP内部存储器比外部存储器的存取速度要快得多,但是内部存储器RAM中的数据是掉电易失的,因此DSP一般会在上电时通过固化到内部的ROM中的一段代码把外部存储器中的程序拷贝到内部RAM(具体到TMS320C6678是L2SRAM)中并运行,这段固化到ROM中的代码就叫RBL(ROM Bootloader)。外部存储器一般使用Flash、EEPROM等掉电非易失的材质。Flash存储容量大、价格便宜,在工程项目中得到了的广泛应用。因此,研究DSP的加载[5-6],研究怎样快捷方便地把ELF文件格式的调试程序代码烧写到外部存储器中,并在DSP上电时使用Bootloader把程序代码拷贝到内部存储器中被DSP正确识别并运行,这是很有意义的。
1 一次加载
目前关于TMS320C6678加载的文档资料较少而且讲得很凌乱,在经过研读其各种手册并且经过实际项目的检验,把TMS320C6678所提供的加载模式按照以下文章中提供的分类方法将各种模式分类会更容易理解。TMS320C6678的加载模式主要可以分为一次加载和二次加载。其中一次加载主要是兼容以前版本的DSP加载方式,主要特点是占用存储空间小,转换过程复杂;二次加载是较新的加载方式,主要特点是占用存储空间稍大一些,但是整体操作流程简单。
本文所使用的硬件是TI公司生产的DSP6678EVM开发板[7-8],所使用的软件是TI公司提供的CCS、MCSDK开发套件中的IBL(Intermediate Bootloader)和Flash烧写工具[9]。本文中定义一次加载为在DSP开机加载时使用RBL搬移外部存储器中的代码。因为IBL比RBL最主要的一个优势是搬移代码时不需要提前进行格式转换,可以自动识别和搬移ELF文件的格式。DSP TMS320C6678的一次加载同TI公司的较前期的产品6000系列和5000系列类似,主要是因为固化到核内部ROM中的Bootloader都大同小异,但是TMS320C6678 PG1.0的锁相环在ROM Bootloader中不能被锁定[10],因此在EVM6678开发板上FPGA首先会强制DSP TMS320C6678 boot时先把I2C EEPROM的0X51中的IBL拷贝到L2SRAM并运行IBL,配置好锁相环,然后再执行一次加载。IBL主要包含了参数的配置部分和不同存储器的代码搬移部分。也就是说一次加载运行了IBL代码的前一部分,配置完参数就重新跳转到RBL进行代码搬移的工作。所以烧写到外部存储器中的代码应该能让RBL识别,因此需要有一个格式转换的过程,然后再烧写到外部存储器中。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-36967-1.html
因为穷人在今后中国的发展过程中根本不能多生
这位后生人不是这么骗的钱不是这么赚的脸可是这么丢的
已经做了n次作战方案