TMS320F206 DSP处理芯片的仿真与调试
TMS320F206(以下简称 F206)是 C2XX 系列 DSP 中的一个产品,其独有的片内 32KB 的闪速存储器 FLASH 使其仿真调试与众不同。 F206 带有程序、数据和 I/O 三个相互独立的存储空间,每个存储空间均为 64K×16 位,其中片内双访问 RAM 为 544 字(288 字用于数据,另 256 字可用于程序/数据),片内 FLASH 为 32K 字,片内单访问 RAM 为 4.5K 字,其具体分布如表 1 所示。
F206 的仿真调试 ● F206 仿真调试的特点 F206 的仿真调试器没有采用传统的插入仿真的方法,而是通过仿真器与 DSP 芯片上的几个仿真引脚间通信实现,F206 具有符合 IEEE1149.1 标准的 JTAG 逻辑扫描电路,扫描仿真不仅克服了因仿真电缆过长而引起的信号失真,而且克服了传统单片机“插入式仿真方式脱机运行时就出错的缺点。 利用闻亭公司生产的 EPP_XDS510 仿真器进行系统的在线仿真调试,其一端与计算机的并口相连,另一端通过一双列 14 脚的仿真插头与 F206 通信。
● 问题的提出如果所要进行仿真的硬件装置没有外部存储器,此种情况下如何实现仿真呢?若将程序完全定位至 8000H 开始的片上 SARAM 内,则与 F206 中断向量表应该定位至 0000H 相矛盾,从而中断进一步程序将不可能正确运行;若将程序完全定位至 0000H 开始的 FLASH 内,虽保证了中断进一步程序可以正确运行,但是由于在 FLASH 内无法设置断点。 所以此种情况下不能顺利进行仿真调试;若将中断向量表定位至 0000H 的 FLASH 内,将程序的其他部分定位至 8000H 内,可以保证中断进一步程序的正确执行,也可以在 SARAM 内设置断点,似乎是一种可行的方法,但是程序每改动一点,也就意味着中断向量表也要做相应的修改,即要再次将中断向量表烧写到 FLASH 内,不仅麻烦而且对 FLASH 也有损伤。
● 问题的解决针对以上种种方案存在的弊端,笔者提出了一种行之有效的解决办法,那就是将中断向量表和程序都定位至 8000H 开始的 SARAM 内,而在 0000H 烧写进一定的跳转语句,这样既保证了中断的正确执行,程序断点的调试,同时对 FLASH 也只要进行一次烧写即可。首先完成跳转语句的烧写。F206 的 FLASH 烧写必须具备如下几个前提:FLASH 烧写工作只能在 WIN98 操作系统下完成,在 WIN2000 操作系统下将会显示窗口初始化失败,被强行关闭;时钟频率必须为 20MHz。
相应的 CMD 文件为: MEMORY { PAGE 0: VECB :org= 0000h,length=40h …… PAGE 1: …… } SECTIONS { vectorb : {} > VECB PAGE 0 …… } 相应的 vectorb 的程序为如下。 *File: vectorb.h * *File defines Interrupt vectlabels * .global _c_int0 .global _c_int1 .global _c_int2 .global _c_int3 .sect ”vectorb“ b 8000h ;硬件复位 c_int0 b 8002h ;外部中断 1 /INT1 b 8004h ;外部中断 2 INT2/INT3 b 8006h ;定时器中断 nop nop b 8000h b 8000h ;保留 b 8000h ;保留 b 8000h ;保留 nop nop b 8000h b 8000h b 8000h b 8000h 假设烧写程序在 E:LOADEPP 目录下,则将上述工程编译并建立形成的 TZ.OUT 文件也复制到同样的 E:LOADEPP 目录下,然后执行如下烧写语句。
E:LOADEPP>PRG2XXPP -P 280 -M 0X0006 -S 0X4007 -W 6 -E SRCC2XX_SPX.OUT TZ.OUT 即可。 在跳转语句的烧写完成后,即可将中断向量表和程序都定位至 8000H 开始的 SARAM 内,pcb 抄板这样在 SARAM 内既可很方便设置断点,同时已经烧写进 FLASH 的跳转语句又能保证中断的正确执行,且每次对程序修改后无需再次对 FLASH 烧写,只要重新生成。
OUT 文件,然后执行 CCS 的 FILE 菜单下的 LOAD PROGRAM 即可。