DSP BIOS 出错原因

[复制链接]
1724|15
 楼主| sunmeat 发表于 2015-10-28 14:50 | 显示全部楼层 |阅读模式
1.DSP/BIOS应用程序调试

在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插件(安装时已装入)。

 楼主| sunmeat 发表于 2015-10-28 14:50 | 显示全部楼层
2.RTDX应用程序调试(10.22)

RTDX测试DSP Target传输数据到PC机:

a)创建工程,编辑源代码(.c/。asm),加入头文件(.h),库文件(.lib)以及链接命令文件(.cmd)

b)添加修改具有实时数据传输的RTDX语句

包括:#include <rtdx.h>;  RTDX头文件(rtdx.h)

      RTDX_CreateOutputChannel( ochan );   定义一个全局的PC机数据输出通道,通道名可以任取

      TARGET——INITIALIZE();    初始化DSP目标系统;

      RTDX_enableOutput( &ochan );  使能输出通道写数据;

      status=RTDX_write( &ochan,&data,sizeof(data) );  传送数据至PC;

      RTDX_disableOutput( &ochan );  禁止输出通道传输数据。

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,  Cannot set/verify breakpoint at 0x80007958
Breakpoint Manager: An error was encountered attempting to set a breakpoint used
for end of program detection.
Can't Set Breakpoint: Error 0x00000008/-1076 Error during: Break Point,  Cannot set/verify breakpoint at 0x800081B4

分析:根据CMD文件确认你的地址分配是否在DSP可分配的RAM中;如果给程序分配的地址不在片内的RAM段肯定是会出错的。可能CMD地址空间实际上不属于RAM映射地址范畴,导致不能正常读写。
另外如果DSP片内有程序正在运行,在下载新程序的时候也会出错。出现这种情况,可以在DSP启动前与CCS进行连接。

解决:更改cmd文件中的地址分配使之与OPTION中的Memory Map映射地址空间一致。
 楼主| sunmeat 发表于 2015-10-28 14:50 | 显示全部楼层
3.DSP硬件仿真环境问题汇总

a)无论是在硬件仿真环境还是软件仿真环境中都无法创建DSP项目,可能是安装时在以前安装过CCS的软件,导致冲突;链接文件.dll未注册,或者与系统文件不兼容,解决方法:建议备份文件后重装C盘



b)打开STEP后,无法初始化硬件仿真器



可能的原因是





CCS STEP中的硬件配置USB驱动安装或者I/O口出现错误(如1仿真器连接是否正常? 2仿真器的I/O设置是否正确? 3XDS仿真器的电源及仿真头是否正确? 4目标系统型号是否正确? 5仿真器是否正常?);

USB驱动程序未安装(从“我的电脑-管理”中可以查到是否安装成功驱动)

c)关于gel文件,memory map一致性问题
 楼主| sunmeat 发表于 2015-10-28 14:50 | 显示全部楼层
memory map的作用

1. 内存映射以页面为单位,将文件内容映射到内存中。
    2. 使用内存映射可以创建内存映射文件。内存映射文件的优点是我们不需要调用 read 、write 之类的I/O函数,只需用从内存映射区取、存数据,实际的 I/O 操作是由内核执行的,可以简化代码。

3. 使用内存映射可以实现进程间共享内存。

选择有效的存储器空间映射关系

设计原则:CCS下的存储器空间设置应该与目标板的硬件实际配置一致,没有的存储器不要有效。这样便于调试,CCS会发现你调入程序时或程序运行时,是否访问了无效地址。

配置存储器空间映射的方法:

1)在GEL文件中设置;

2)在Option菜单下,选择Memory Map选项,根据你的硬件设置。注意一定要将Enable Memory Mapping置为使能。

常出现的相关情形:
zhuotuzi 发表于 2015-10-29 14:53 | 显示全部楼层
编译链接完成后载入.out文件。在TOOLS-RTDX-Configration中设置RTDX使能,运行debug-run
天灵灵地灵灵 发表于 2015-10-29 15:18 | 显示全部楼层
选择有效的存储器空间映射关系
lwsn 发表于 2015-10-31 11:04 | 显示全部楼层
实际开发DSP/BIOS时,SimulatorEmulator和DSP/BIOS插件都要用的
734774645 发表于 2015-10-31 16:37 | 显示全部楼层
TARGET——INITIALIZE();    初始化DSP目标系统;
公孙璇娟 发表于 2015-10-31 17:25 | 显示全部楼层
收藏了,都是实际的经验哇,好多错误的总结!
米尔豪斯 发表于 2015-10-31 19:14 | 显示全部楼层
CCS下的存储器空间设置应该与目标板的硬件实际配置一致
尤彼卡 发表于 2015-10-31 20:19 | 显示全部楼层
DSP片内有程序正在运行,再下载新程序的时候会出错
捉虫天师 发表于 2015-10-31 20:38 | 显示全部楼层
编译链接完成后载入.out文件
Roderman_z 发表于 2015-10-31 20:41 | 显示全部楼层
RTXD可以在DSP/BIOS中使用,也可以脱离DSP/BIOS使用
chenci2013 发表于 2015-10-31 21:46 | 显示全部楼层
这个真没用过的。
spark周 发表于 2015-10-31 21:52 | 显示全部楼层
这个datasheet里都有吧
wangdezhi 发表于 2015-10-31 22:24 | 显示全部楼层
没写过bios
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部