搜索
bottom↓
回复: 17

请教熟悉dsp里把flahs里面的程序调到ram里运行的高人

[复制链接]

出0入0汤圆

发表于 2011-3-10 08:33:09 | 显示全部楼层 |阅读模式
我现在的程序在flash里跑的太慢,时间不够用,想调入到ram里面运行,不知道如何写程序

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-3-10 09:00:44 | 显示全部楼层
CMD文件里面定义
SECTIONS
{
.....
   ramfuncs            : LOAD = FLASHA,
                         RUN = RAML0,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0
...........

程序里面做

// These are defined by the linker (see F2808.cmd)
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;

        MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);


#pragma CODE_SECTION(dft, "ramfuncs");
void dft(Uint16 index,int16 u_data,int16 i_data)
{
....
}

出0入0汤圆

 楼主| 发表于 2011-3-10 09:57:54 | 显示全部楼层
高人能否给解释一下,小弟不懂,不知道怎么修改您写的程序

出0入0汤圆

发表于 2011-3-10 10:33:55 | 显示全部楼层
我记得F2812的flash初始化那段需要拷贝到SRAM里执行,道理是一样的,我找找那代码。

出0入0汤圆

发表于 2011-3-10 12:39:31 | 显示全部楼层
给个2812的工程你参考下,里面有拷贝的过程。
CCS2.2的2812工程ourdev_621368SMBNAJ.rar(文件大小:528K) (原文件名:board_all.rar)

出0入0汤圆

发表于 2011-3-13 23:41:05 | 显示全部楼层
这个是把某个函数从FLASHA的地址中拷贝到RAM中。

如果有外部的RAM片子,可以把整个FLASH的资料拷贝到外部RAM中运行。

出0入0汤圆

 楼主| 发表于 2011-3-16 10:05:23 | 显示全部楼层
回复【5楼】lylatyou 张伯伦
这个是把某个函数从flasha的地址中拷贝到ram中。
如果有外部的ram片子,可以把整个flash的资料拷贝到外部ram中运行。
-----------------------------------------------------------------------

麻烦大哥能不能把您说的这个过程再描述仔细点,或者发个资料,多谢

出0入0汤圆

发表于 2011-3-16 12:29:11 | 显示全部楼层
看链接
http://www.go-gddq.com/html/DSP/2011-03/570926.htm
另外1楼的方法是有效的,处理快速关键还是变量定义位置影响最大

出0入0汤圆

 楼主| 发表于 2011-3-16 17:29:14 | 显示全部楼层
多谢888888888,我去看看,不明白再请教

出0入0汤圆

发表于 2011-3-16 21:08:27 | 显示全部楼层
mark了

出0入0汤圆

发表于 2011-3-16 22:12:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-17 08:12:49 | 显示全部楼层
学习!

出0入0汤圆

发表于 2011-3-17 09:02:41 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-3-21 11:05:56 | 显示全部楼层
回复【1楼】tidsp  
-----------------------------------------------------------------------

ccs4 的page0 和page1 的地址重复了为什么还不提示错误呢

cmd文件:
MEMORY
{
        PAGE 0:
          IPRAM : o=0x0100,l=0x2000
        PAGE 1:
          IDRAM : o=0x0000,l=0x2000
}


map 文件:
MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
PAGE 0:
  IPRAM                 00000100   00002000  00000126  00001eda  RWIX

PAGE 1:
  IDRAM                 00000000   00002000  00000404  00001bfc  RWIX

出0入0汤圆

 楼主| 发表于 2011-3-21 19:39:25 | 显示全部楼层
搞定了,如果是浮点的dsp,还需要把lib设成ftu32再去下载,速度大幅度提高

出0入0汤圆

发表于 2011-12-23 14:40:03 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-12-25 22:19:55 | 显示全部楼层
回复【楼主位】yilaozhuang
-----------------------------------------------------------------------

如果对加载时要求比较灵活,还是自己搞bootloader比较合适。

设置启动方式为Flash启动,bootloader烧写在Flash起始地址,上电后先从bootloader运行,慢点没关系,主要作用是拷贝真正的用户代码(预先也已经烧写到Flash某个区间了,根据bootloader而定)到RAM中。拷贝的过程中,bootloader如果比较完善,你也可以搞些校验之类,防止拷贝错误。这里RAM也支持各种类型随机存取存储器,比如SDRAM,DDR2等,当然bootloader需要在拷贝前初始化这些RAM。

拷贝完成后,跳转到真正的用户代码入口,开始执行用户程序。

以上方法适合最终产品代码固化。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-25 23:03

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

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