DSP烧写错误原因

更新时间:2024-04-26 09:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.DSP程序烧写后,带仿真器程序能正常运行,通信测试是对的,但拔下仿真器后就出错了,请问是什么原因?

答:串口通信连着仿真器说明有硬件电气连接。使用无源rs232转485接口跟dsp通信的,

接着仿真器就行,不接仿真器通信异常。然后把485的地和dsp电源的地共起来,就好了。

2. DSP使用仿真器很正常工作,但是通过烧写到ROM后,load代码到DSP RAM中后无法正常运行.

答:首先检查你的烧写程序可有问题。有些烧写程序指定.test代码长度。

其次在代码上找问题,可以锁定在在线与烧写cmd文件的变化。烧写原理是什么?代码编译为二进制或十六进制数,搬移进rom,存储起始地址、长度确定没有问题。假设正确,检查能否在线对rom进行正常的擦除与读写?

假如还是正确,检查硬件电路,这个就比较麻烦了。确定启动模式设置的正确?自举启动要dsp外围电路的电压、时钟、模式选择、默认态确认正确? 还有问题就是芯片自启动有问题了

3.我也出现过能仿真,但不能烧写的情况!

解决方法:降低时钟频率。点击FLASH插件上的“View Config File”,打开VAR.h文件。将该文件中的“PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。再重新启动CCS及FLASH插件。 最大可能是DSP的FLASH烧掉了,这个烧掉不影响程序的仿真;我之前也是烧不进去,后来换了块芯片就好了,芯片的来源很重要。

第二个问题是你在烧写程序时将CMD修改了没有,要跳过密保单元;你的memory map设置是否正确? 还有如果烧写flash 评估办上跳线是否正确? 我用的时候 好几块评估板都是可以load programme 。可以加载到ram 中进行仿真,但是不能烧写道flash 进行自动运行。

4. 我也遇到这样的问题,同样郁闷。一个以前跑过的好好的程序,因为改了仿真器的配置,就出现了楼主所述问题,反复尝试,都是如楼主所述。

后来我是通过以下方法解决的:打开Setup CCStudio v3.3-选择F2407 XDS510 Emulator-设置F2407 XDS510 Emulator的属性-再设置TMS320C24xx_0的属性

5我以前也遇到过,用如下的方法解决的:

首先,\;然后, 电路上硬件复位,即reset引脚处的复位。

6.error: Data verification failed at address 0xxxxxx

前一段时间,Load Program时总是出错: data verification failed at address 0x81021FF4, Please verify target memory and memory map

有时多下载几次却又可以了,这个问题困扰了我好几天,后来才知道是DSP板子上的SDRAM坏了。

从网上搜到的别人对这个错误的原因的解释:

1. The RAM chip is damaged. In this case, the board has to be replaced. 2. The access to the external memory is secure if CSM (code security module) is enabled. To unlock CSM if not password protected, go to the GEL menu in Code Composer Studio under:

\

This will give you access to the external RAM, and allow CCS to load your code. As a workaround, use the Internal_memory_map option to load the executable code into the internal RAM.

7.:在调试硬件时,程序无法下载到存储器中,出现错误,data verification failed at address 0x40,please verify target memory and

答:1. 确定CMD文件没有问题,到底是Flash的CMD还是Ram的? 2. 用TI的历程尝试,判断是否是硬件问题。

8. 仿真器在线仿真正常,写入片子后工作不正常的问题

1、复位电路是否正常 2、晶振是否正常

3、最小系统电路是否正确 4、是否片子坏了

总结:1.程序肯定是对的。

2.硬件方面 rom和FLASH是否损坏,其次检查配置,电源、引脚配置 3.软件CCS的设置上

4.人为因素:烧写方法,cmd修改,密保单元是否跳过。

在TI DSP开发板中烧写Flash程序

实现在FLASH存储器烧写程序一般有以下三种方法:一是通过编程器下载烧写;二是通过开发商提供的专门软件工具+在线仿真器烧写;三是自己编程通过DSP烧写。个人使用的是合众达电子SEED-VPM642开发板,在最新版本例程中提供了专用的烧写软件SeedConvertTool.exe;但为了实现通用的FLASHBURN烧写,我进行了一些尝试以便了解程序烧录过程及运行情况。

实现Bootloader自引导功能,除了需要生成可执行文件(.out),还需要进行如下步骤: 1、合理配置工程文件(.pjt):需要添加一个boot.asm文件(做搬移时一些初始化和跳转工作),另外工程中.cmd文件也需要为bootloader保留空间。

2、将添加了boot.asm和修改cmd后重新生成的.out文件转化为.hex文件,这时需要一个转换.cmd文件(这个.cmd文件与工程文件中.cmd完全不同,前者是为了指明flash的属性(大小,数据宽度,起始地址和产生文件名)以实现转换.out文件为flash兼容的.hex文件,不能混淆)。

3、最后通过Flashburn工具将.hex文件写入Flash,这时需要转换.cmd文件、.hex文件和FBTC642.out文件。

介绍下各烧录中用到的文件(Flashburn、FBTC.out、hex6x.exe,.cdd和.cmd文件)作用:

1、FBTC.out文件:负责对flash的操作,比如flash的擦除、读、写等。这里主要看个人板子上flash的型号,因为不同型号的flash,它们的操作命令不一样。这样你就必须对FBTC工程进行修改,然后重新编译生成.out文件。如DM642开发板使用的FBTC文件在安装ccs的根目录下(boards\\evmdm642\\flashburn\\FBTC642)。

2、hex6x.exe:将用户工程生成的.out文件转换为二进制文件的工具,这样Flashburn就可以将.out文件以二进制方式烧进flash中。

3、Flashburn:TI的第三方软件公司 Software Design Sloutions 为TI的DSP用户编写的Flash烧写软件,给软件以CCS为基础,通过运行仿真程序FBTC,将用户程序写入Flash中。

4、.cdd文件:保存Flashburn的设置的。

5、.cmd文件:指明flash属性(大小,数据宽度,起始地址和产生文件名),按照flash要求实现将.out文件到二进制文件的转换。 具体步骤:

1。用户程序中添加boot.asm文件,修改.cmd文件中的MEMORY和SECTION部分(DSP/BIOS环境中直接通过配置CDB或者TCF文件中的System->MEM->ISRAM即可;非DSP/BIOS在cmd文件中添加一个名为BOOT的section,位置为0x000,长度为0x400),在连接仿真器环境下编译生成可执行的.out格式的COFF文件。

2。使用HEx6.exe工具,将工程文件生成的.out文件转换成为HEX的ascii格式的二进制文件。

a.编写一个.cmd文件用于设置hex6x.exe的参数 如果例程中存在,则可用记事本打开如下: SeedH264loopback.out -a

-memwidth 8 -boot

-bootorg 0x90000400

-bootsection .boot_load 0x90000000 ROMS {

FLASH: org = 0x90000000, len = 0x400000, romwidth = 8, files = {SeedH264Loopback.hex} }

b.生成二进制文件:

两种方法:

i)将.cmd文件和.out文件放在同一目录下,双击convert.bat。具体操作是将三个文件复制到一起分别是:hex6x.exe和.cmd以及.bat在编辑修改其中的内容(改文件名),最后运行批处理文件即可;

ii)通过windows命令窗口键入命令进行转换。将.out文件,cmd文件,和hex6x.exe文件放在同一个文件夹内。如C:\\DSP_BURN。在dos窗口中键入cd C:\\DSP_BURN将路径改为“C:DSP_BURN>”,再键入“hex6x.exe XX.cmd”结果生成“XX.hex”文件 在DOS下进入程序保存的目录,直接运行(hex6x.exe)如

D:\\ti\\myprojects\\a_video_process_XY>hex6x hex6x.cmd文件得到二进制文件(可以从DOS状态看到),此时就得到了seedvpm642_vedioloop_ahex.hex(文件名可能不同)用于烧写的文件。

注意:hex6x.exe的版本,如果版本太低,在转换过程中会出现问题。

二、改写FBTC工程,这个CCS工程编译而成的文件主要是对flash的操作,其作用相当于一个搬运工具,将hex文件由PC搬入Flash中。这里要注意自己的CCS版本和flash的型号,编译完成会得到一个FBTC642.out文件。对于不同的DSP系统板,TBTC工程主要修改DM642teb.h、FBCmd.c、FBTC_DM642.c和FBurnCmd.c等文件。 三、打开开发板上电,启动ccs软件,加载gel文件并连接(connect)硬件仿真器。 四、打开FlashBurn软件,重新对主界面中“Conversion Cmd”、“File to burn”、“Fbtc program file”的三个文件的路径重新设置,分别点击“Browser”按钮,找到事先创建的相应目录下的三个文件“.cmd”、“.hex”、“FBTC642.out”;然后保存关闭cdd文件。

五、点击 flashburn软件中的“Program”依次“download FBTC”(下载),“Erase Flash”(擦除),“show memory”(查看),“Program flash”(编程)。完毕后拔出仿真器,关电源重启即可成功实现烧写。

更多介绍请见:http://blog.sina.com.cn/s/blog_48fc29af0100n4ye.html 烧写过程中遇到的问题

使用合众达电子SEED-VPM642例程中flashburn程序需要用到的FBTC文件会出现提示:

## 06/29/06 11:35:02

Attempt to create Code Composer Studio... CCS created OK.

Either I cannot load FBTC, or the FBTC is not compatible with this version of FlashBurn. Verify that the FBTC file is compatible with target and this version of FlashBurn. 这是由于烧写所需要的文件存放路径不同引起的,因为合众达的工程师在开发这个例程的时候保存配置文件是按照他自己的存放来保存的(F:改为你存放的例程文件夹目录地址),所以你需要修改。最方便的办法就是重新浏览各个配置文件的地址。然后利用flashburn打开CDD配置文件又会提示: ## 06/30/06 12:53:44

Attempt to create Code Composer Studio... CCS created OK. Req. FBTC Load. FBTC Download OK.

Failed to get msg storage addr Cannot load FBTC Program

这是由于该例程提供的FBTC642文件(大概22k)应该只能用于CCS3.0以下;而个人安装的是CCS3.3版本的,因此提示flashburn和FBTC不兼容。 解决方法有2种:重新安装低版本的CCS软件;使用兼容的FBTC。

个人经过认真的分析和查阅网上资料,用一下午的时间终于解决这个问题了,最后实现了利用flashburn烧写将工程的可执行文件生成的二进制文件

## 06/29/06 11:35:02

Attempt to create Code Composer Studio... CCS created OK.

Either I cannot load FBTC, or the FBTC is not compatible with this version of FlashBurn. Verify that the FBTC file is compatible with target and this version of FlashBurn. 这是由于烧写所需要的文件存放路径不同引起的,因为合众达的工程师在开发这个例程的时候保存配置文件是按照他自己的存放来保存的(F:改为你存放的例程文件夹目录地址),所以你需要修改。最方便的办法就是重新浏览各个配置文件的地址。然后利用flashburn打开CDD配置文件又会提示: ## 06/30/06 12:53:44

Attempt to create Code Composer Studio... CCS created OK. Req. FBTC Load. FBTC Download OK.

Failed to get msg storage addr Cannot load FBTC Program

这是由于该例程提供的FBTC642文件(大概22k)应该只能用于CCS3.0以下;而个人安装的是CCS3.3版本的,因此提示flashburn和FBTC不兼容。 解决方法有2种:重新安装低版本的CCS软件;使用兼容的FBTC。

个人经过认真的分析和查阅网上资料,用一下午的时间终于解决这个问题了,最后实现了利用flashburn烧写将工程的可执行文件生成的二进制文件

本文来源:https://www.bwwdw.com/article/8i3p.html

Top