1.DSP/BIOS应用程序调试(2009.10.20) 在CCS2.0 的emulator写dsp/bios 的程序,编译链接无错误,而点击LOAD Program下载xxx.out完成时弹出如下对话框: RTDX target application does not match emulation protocol! Loaded program was created with an rtdx library which does not match the target device 这将导致RTDX(实时数据交换)不能使用 分析: RTXD可以在DSP/BIOS中使用,也可以脱离DSP/BIOS使用;目前CCS Simulator不支持RTDX,故RTDX必须在Emulator下使用,即还需要硬件仿真器和DSP目标板。 故这是由于下载BIOS/DSP程序时RTDX设置错误导致的; 问题解决如下: 把DSP/BIOS配置窗口中的input/output-->RTDX -real-Time Exchange settings的RTDX mode 改为JTAG(原来是simulator),重新编译后LOAD,上述警告消除,可以在模拟的情况下进行BIOS调试了。 PS:虽然simulator能编译运行DSP/BIOS程序,并能提供实时查询程序运行情况(主要是CPU负荷,时序,日志以及线程等)。但实际开发DSP/BIOS应用程序时为了真实的了解目标板的各种信息,仅有Simulator(软件仿真器)是不行的,还需要使用Emulator(硬件仿真器)和DSP/BIOS插件(安装时已装入)。 2.RTDX应用程序调试(10.22) RTDX测试DSP Target传输数据到PC机: a)创建工程,编辑源代码(.c/。asm),加入头文件(.h),库文件(.lib)以及链接命令文件(.cmd) b)添加修改具有实时数据传输的RTDX语句 包括:#include <rtdx.h>; c)进行数据处理,测试应用程序 编译链接完成后载入.out文件。在TOOLS-RTDX-Configration中设置RTDX使能,运行debug-run。 出现问题:下载可执行文件时提示 “Data verification failed at address 0x(某地址)Please verify target memory and memory map.” 按跳过提示下载完成后messages栏提示: Can't Set Breakpoint: Error 0x00000008/-1076 Error during: Break Point, 分析:根据CMD文件确认你的地址分配是否在DSP可分配的RAM中;如果给程序分配的地址不在片内的RAM段肯定是会出错的。可能CMD地址空间实际上不属于RAM映射地址范畴,导致不能正常读写。 解决:更改cmd文件中的地址分配使之与OPTION中的Memory Map映射地址空间一致。 3.DSP硬件仿真环境问题汇总 a)无论是在硬件仿真环境还是软件仿真环境中都无法创建DSP项目,可能是安装时在以前安装过CCS的软件,导致冲突;链接文件.dll未注册,或者与系统文件不兼容,解决方法:建议备份文件后重装C盘 b)打开STEP后,无法初始化硬件仿真器 可能的原因是 CCS STEP中的硬件配置USB驱动安装或者I/O口出现错误(如1仿真器连接是否正常? USB驱动程序未安装(从“我的电脑-管理”中可以查到是否安装成功驱动) c)关于gel文件,memory map一致性问题 memory map的作用 1. 内存映射以页面为单位,将文件内容映射到内存中。 3. 使用内存映射可以实现进程间共享内存。 选择有效的存储器空间映射关系 设计原则:CCS下的存储器空间设置应该与目标板的硬件实际配置一致,没有的存储器不要有效。这样便于调试,CCS会发现你调入程序时或程序运行时,是否访问了无效地址。 配置存储器空间映射的方法: 常出现的相关情形: 出现以上情况均是由于内存单元设置不一致导致的。前图是由于点击option-memory map-Enable 解决方法:更改gel文件重新合理分配内存单元。 OUT文件加载时提示“Data 解决方法: 2)调整存储器设置,使得RAM区有效。 引申: 补充概念: cmd文件 用于DSP代码的定位。由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。 cmd文件由3部分组成: 什么是CSL? 为什么要设计CSL? CSL的特点 boot DSP的速度尽快,EPROM或flash的速度较慢,而DSP片内的RAM很快,片外的RAM也较快。为了使DSP充分发挥它的能力,必须将程序代码放在RAM中运行。为了方便的将代码从ROM中搬到RAM中,在不带flash的DSP中,TI在出厂时固化了一段程序,在上电后完成从ROM或外设将代码搬到用户指定的RAM中。此段程序称为“boot 初始化 DSP在RESET后,许多的寄存器的初值一般同用户的要求不一致,例如:等待寄存器,SP,中断定位寄存器等,需要通过初始化程序设置为用户要求的数值。 |
|