搜索
bottom↓
回复: 16

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

[复制链接]

出0入0汤圆

发表于 2014-5-3 10:43:49 | 显示全部楼层 |阅读模式
DSP仿真器是把程序下载到RAM中执行的。但是如果程序超过了RAM中的容量,那么程序是不是不能仿真了呢,为什么不把程序烧写到flash中进行仿真呢,最近在搞DSP,感觉这东西真的很麻烦,连程序的烧写都很复杂。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-5-3 11:12:30 | 显示全部楼层
换个大容量的型号,一般都有功能相同,容量更大的

出0入0汤圆

发表于 2014-5-3 11:49:15 | 显示全部楼层
换芯片或改程序,确保使用RAM在指定容量内

出0入0汤圆

发表于 2014-5-3 23:19:13 | 显示全部楼层
我一直都是直接下载到flash访真的。前提是使用flash的cmd文件,lz将ram cmd文件改为flash cmd文件即可

出0入0汤圆

发表于 2014-5-5 21:10:01 | 显示全部楼层
关注,学习!

出0入0汤圆

发表于 2014-5-5 22:21:15 来自手机 | 显示全部楼层
也可以在外扩的ram里面仿真,flash应该也可以,速度肯定没有ram快,而且很影响寿命的

出0入0汤圆

 楼主| 发表于 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 都在哪里啊。我都没见到过啊

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2014-5-11 12:34:46 | 显示全部楼层
本帖最后由 delphiliu 于 2014-5-11 12:36 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-5-11 20:51:44 | 显示全部楼层
summarize 发表于 2014-5-11 11:58
扩展名就是CMD.工程下找找

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 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文件,就知道怎么搞了。

出0入0汤圆

 楼主| 发表于 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 = 0x00700000  l = 0x00000f00
    ARMRAM:      o = 0xFFFF0080  l = 0x00001f80
    DSPRAM:      o = 0x11800000  l = 0x00040000
    SHAREDRAM:   o = 0x80000f00  l = 0x0001ffff
    SDRAM:       o = 0xC0000000  l = 0x20000000
    ROM          o = 0x00700f00  l = 0x000ff100

}

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

}

出0入0汤圆

发表于 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了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

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

出0入0汤圆

 楼主| 发表于 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中。这个问题我已经解决了,但是具体的实现方式和它的架构我还不太了解,我得系统的学习一下。

出0入0汤圆

发表于 2014-6-24 21:33:57 | 显示全部楼层
先不要去想着修改cmd文件,你可以尝试下这么做
1、把生成。map文件打开,你可以看到存储器的存储清楚(用了多少,剩余多少)。
2、如果RAM真的是你说的不够的话,你可以再cmd文件中把rom分一部分过去。

出0入0汤圆

发表于 2014-6-25 08:59:59 | 显示全部楼层
谁告诉你不能把程序烧到Flash中仿真?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 08:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表