目标程序超过RAM容量如何仿真
DSP仿真器是把程序下载到RAM中执行的。但是如果程序超过了RAM中的容量,那么程序是不是不能仿真了呢,为什么不把程序烧写到flash中进行仿真呢,最近在搞DSP,感觉这东西真的很麻烦,连程序的烧写都很复杂。 换个大容量的型号,一般都有功能相同,容量更大的 换芯片或改程序,确保使用RAM在指定容量内 我一直都是直接下载到flash访真的。前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可 关注,学习! 也可以在外扩的ram里面仿真,flash应该也可以,速度肯定没有ram快,而且很影响寿命的 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 都在哪里啊。我都没见到过啊 delphiliu 发表于 2014-5-11 11:18
“前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可。” 请问您说的ram cmd 和falsh cmd ...
扩展名就是CMD.工程下找找 本帖最后由 delphiliu 于 2014-5-11 12:36 编辑
我只看到一个link.cmd的文件啊。 summarize 发表于 2014-5-11 11:58
扩展名就是CMD.工程下找找
大侠。只有一个link.cmd的文件 delphiliu 发表于 2014-5-11 20:51
大侠。只有一个link.cmd的文件
DSP cmd配置
http://blog.sina.com.cn/s/blog_62a586980100upe5.html
具体的CMD文件在安装目录或例程的相关文件夹下会有。
看懂了什么是CMD文件,就知道怎么搞了。 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
}
delphiliu 发表于 2014-5-12 20:42
我修改了cmd文件,但是出现了如下错误:File Loader: Data verification failed at address 0x00700DE0 P ...
不用自己修改,先拿TI提供的样板用起来,熟悉了再试着修改。
下面是2803x的cmd样板,F开头的就是Flash了。
我的经验是:在程序开头采用宏定义,例如功能1定义为#define FUNC1 1, 在程序代码中要对功能1仿真,就使用#ifdef FUNC 的预编译条件语句,如果不需仿真功能1,就在程序开头将其#undef FUNC1。利用这种方式将不同代码分开来仿真,能大大减小RAM需求。当然,王道还是要优化代码! summarize 发表于 2014-5-13 07:42
不用自己修改,先拿TI提供的样板用起来,熟悉了再试着修改。
下面是2803x的cmd样板,F开头的就是Flash了 ...
谢谢您的帮助,我使用的是C6000系列的芯片,它需要bootloader从外部的FLASH加载程序,不能直接下载到内部的ROM,先用AISgen工具将编译生成的.out文件转换成.bin文件,在用引导程序加载到外部的flash中。这个问题我已经解决了,但是具体的实现方式和它的架构我还不太了解,我得系统的学习一下。 先不要去想着修改cmd文件,你可以尝试下这么做
1、把生成。map文件打开,你可以看到存储器的存储清楚(用了多少,剩余多少)。
2、如果RAM真的是你说的不够的话,你可以再cmd文件中把rom分一部分过去。 谁告诉你不能把程序烧到Flash中仿真?
页:
[1]