TMS320C6000系列与TMS320C54系列的引导方法有很大不同。在开发运用TMS320C6000系列DSP时,许多开发者,尤其是初触及者对DSP ROM引导的完结有些困难,花费许多时刻和精力探索。笔者结合开发实例,介绍了完结外部存储器引导的详细方法。
DSP的引导进程
DSP体系的引导(BOOT)是指体系加电或复位时,DSP将一段存储在外部的非易失性存储器的程序代码经过DMA方法复制到内部的高速内存中运转。这样既能扩展DSP有限的存储空间,又能充分发挥DSP内部资源的效能。用户的代码也能够经过掩膜方法写入到DSP内部ROM中,但这样受容量和价格的约束,且不便于扩展和晋级。
DSP的引导进程如下:
1) DSP复位后,经过DMA方法将外部CE1空间的数据读入到内部程序空间地址0处,读入数据的多少因芯片而异(TMS320C6712一次只复制1KB)。
2) DSP推出复位状况,开端履行内部程序空间地址0处的程序,这段程序先将外部主程序数据读入到DSP内部程序空间相应地址,然后跳转到主程序运转。
第一步是由芯片主动完结,关键是第二步:用户需求编写相应的汇编程序,完结二次引导,即用户主程序的装载。
引导失利的原因剖析
(1)链接指令文件(.cmd)文件
链接指令文件界说了链接的参数,描绘体系生成的可履行代码各段的段名及映射到方针板的物理空间。当这些段的开端地址或段的长度编写过错时,引导程序就可能产生过错。
(2)可履行代码的二进制文件格局
用户的程序在CCS开发环境下编译生成COFF文件格局,仿真进程中能够直接加载COFF文件运转。但当调试仿真经往后,方针板要脱离CCS环境独立运转时,可履行代码就需求转化为二进制文件格局,保存在方针板的外部存储器上。转化时需求运用正确的配置文件。
(3)方针板的硬件电路(引导形式,体系时钟)
方针板的硬件电路也会影响引导程序的正常运转,如设置的引导形式与实践的外部存储器不符,体系时钟电路不作业,复位信号恒有用等。
下面结合TMS320C6212的开发实例,详细介绍外部存储器引导的完结。
ROM引导实例
TMS320C6212是TMS320C6201的简化版芯片,内部资源相对较少,作业频率相对较低,但其价格低廉,具有很高的性能价格比。TMS320C6212的作业频率可达150MHz,最高处理才能为900MIPS,很合适中小型体系开发。
因为FLASH是一种高密度、非易失的电擦写存储器,体系选用FLASH作为外部存储器。除了专用的硬件编程器能够把二进制代码写入FLASH中,还能够运用DSP的调试体系,经过软件编程写入。DSP与FLASH的接口衔接如图1所示。
体系工程在CCS开发环境下运用C言语编程,这样能够缩短开发周期,进步作业效率,并具有移植性好的长处。引导工程的文件流程如图2所示。
(1) 中止向量表 vectors.asm
中止向量表缺省保存在DSP芯片内部RAM的0地址开端的0x200字节空间,上电或复位后,芯片主动运转复位中止。因而,复位中止向量设置为引导程序(_boot)的进口地址,引导程序的主体在boot.asm中界说。部分程序如下:
.ref _boot ;调用引导程序
.sect “.vectors” ;段声明
RESET_RST: ;复位中止向量
mvkl .S2 _boot, B0 ;装载引导程序地址
mvkh .S2 _boot, B0
B .S2 B0 ;跳转到引导程序履行
NOP 5