delphiliu 发表于 2014-5-3 10:43:49

目标程序超过RAM容量如何仿真

DSP仿真器是把程序下载到RAM中执行的。但是如果程序超过了RAM中的容量,那么程序是不是不能仿真了呢,为什么不把程序烧写到flash中进行仿真呢,最近在搞DSP,感觉这东西真的很麻烦,连程序的烧写都很复杂。

Ω囿圉Ω 发表于 2014-5-3 11:12:30

换个大容量的型号,一般都有功能相同,容量更大的

sun_sky 发表于 2014-5-3 11:49:15

换芯片或改程序,确保使用RAM在指定容量内

summarize 发表于 2014-5-3 23:19:13

我一直都是直接下载到flash访真的。前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可

wangfei1956 发表于 2014-5-5 21:10:01

关注,学习!

study_hardware 发表于 2014-5-5 22:21:15

也可以在外扩的ram里面仿真,flash应该也可以,速度肯定没有ram快,而且很影响寿命的

delphiliu 发表于 2014-5-11 11:18:11

summarize 发表于 2014-5-3 23:19
我一直都是直接下载到flash访真的。前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可 ...

“前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可。” 请问您说的ram cmd 和falsh cmd 都在哪里啊。我都没见到过啊

summarize 发表于 2014-5-11 11:58:40

delphiliu 发表于 2014-5-11 11:18
“前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可。” 请问您说的ram cmd 和falsh cmd ...

扩展名就是CMD.工程下找找

delphiliu 发表于 2014-5-11 12:34:46

本帖最后由 delphiliu 于 2014-5-11 12:36 编辑

我只看到一个link.cmd的文件啊。

delphiliu 发表于 2014-5-11 20:51:44

summarize 发表于 2014-5-11 11:58
扩展名就是CMD.工程下找找

大侠。只有一个link.cmd的文件

summarize 发表于 2014-5-11 21:15:01

delphiliu 发表于 2014-5-11 20:51
大侠。只有一个link.cmd的文件

DSP cmd配置
http://blog.sina.com.cn/s/blog_62a586980100upe5.html

具体的CMD文件在安装目录或例程的相关文件夹下会有。
看懂了什么是CMD文件,就知道怎么搞了。

delphiliu 发表于 2014-5-12 20:42:38

summarize 发表于 2014-5-11 21:15
DSP cmd配置
http://blog.sina.com.cn/s/blog_62a586980100upe5.html



我修改了cmd文件,但是出现了如下错误:File Loader: Data verification failed at address 0x00700DE0 Please verify target memory and memory map.
Error found during data verification.
Ensure the linker command file matches the memory map.

我参照6747的手蹙额修改的,不知道对不对
stack         0x00001000      /* Stack Size */
-heap            0x00001000      /* Heap Size */

MEMORY
{
    VECS:      o = 0x00700000l = 0x00000f00
    ARMRAM:      o = 0xFFFF0080l = 0x00001f80
    DSPRAM:      o = 0x11800000l = 0x00040000
    SHAREDRAM:   o = 0x80000f00l = 0x0001ffff
    SDRAM:       o = 0xC0000000l = 0x20000000
    ROM          o = 0x00700f00l = 0x000ff100

}

SECTIONS
{   ".vectors">   VECS
    .bss      >   SHAREDRAM
    .cinit      >   ROM
    .cio      >   SHAREDRAM
    .const      >   SHAREDRAM
    .stack      >   SHAREDRAM
    .sysmem   >   SHAREDRAM
    .text       >   ROM
    .switch   >   SHAREDRAM
    .far      >   SHAREDRAM

}

summarize 发表于 2014-5-13 07:42:47

delphiliu 发表于 2014-5-12 20:42
我修改了cmd文件,但是出现了如下错误:File Loader: Data verification failed at address 0x00700DE0 P ...

不用自己修改,先拿TI提供的样板用起来,熟悉了再试着修改。

下面是2803x的cmd样板,F开头的就是Flash了。

ispex13 发表于 2014-5-18 00:24:31

我的经验是:在程序开头采用宏定义,例如功能1定义为#define FUNC1 1, 在程序代码中要对功能1仿真,就使用#ifdef FUNC 的预编译条件语句,如果不需仿真功能1,就在程序开头将其#undef FUNC1。利用这种方式将不同代码分开来仿真,能大大减小RAM需求。当然,王道还是要优化代码!

delphiliu 发表于 2014-5-18 17:22:45

summarize 发表于 2014-5-13 07:42
不用自己修改,先拿TI提供的样板用起来,熟悉了再试着修改。

下面是2803x的cmd样板,F开头的就是Flash了 ...

谢谢您的帮助,我使用的是C6000系列的芯片,它需要bootloader从外部的FLASH加载程序,不能直接下载到内部的ROM,先用AISgen工具将编译生成的.out文件转换成.bin文件,在用引导程序加载到外部的flash中。这个问题我已经解决了,但是具体的实现方式和它的架构我还不太了解,我得系统的学习一下。

tkggsai2008 发表于 2014-6-24 21:33:57

先不要去想着修改cmd文件,你可以尝试下这么做
1、把生成。map文件打开,你可以看到存储器的存储清楚(用了多少,剩余多少)。
2、如果RAM真的是你说的不够的话,你可以再cmd文件中把rom分一部分过去。

steaven2000 发表于 2014-6-25 08:59:59

谁告诉你不能把程序烧到Flash中仿真?
页: [1]
查看完整版本: 目标程序超过RAM容量如何仿真