sxmengjing 发表于 2013-8-26 12:56

dsp28335 向片外RAM烧写程序

我想通过XINTF接口外扩一片256k x16的RAM,烧写程序时向片外RAM中烧写,而不烧写到片内RAM中,以前没做过这方面的东西,请问我都需要做什么?听说CMD文件是一定要修改的,不知道要怎么改呢,有没有人做过这方面?请求帮助!!!(分数不多,只能给这么多了).

zhangmangui 发表于 2013-8-26 16:17

首先程序烧写不可能烧写到RAM中   
外扩RAM你要确定被映射到了那个区
然后以这个区为基地址去操作外扩RAM
参与活动送28335书
https://bbs.21ic.com/icview-603842-1-1.html

sxmengjing 发表于 2013-8-27 14:20

zhangmangui 发表于 2013-8-26 16:17 static/image/common/back.gif
首先程序烧写不可能烧写到RAM中   
外扩RAM你要确定被映射到了那个区
然后以这个区为基地址去操作外扩RA ...

我说的不准确,我是想在外扩RAM中下载调试程序,调试成功了再往Flash中烧写,比如说RAM映射到区域7,我做了三步:1. 在CMD文件中定义了区域7的数据空间和程序空间;2. 在主函数中初始化了XINTF 区域7寄存器;3. 将程序用了MemCopy()函数,将程序从片内RAM拷贝到区域7的程序段了,这样就可以了吗?

zhangmangui 发表于 2013-8-27 16:17

sxmengjing 发表于 2013-8-27 14:20 static/image/common/back.gif
我说的不准确,我是想在外扩RAM中下载调试程序,调试成功了再往Flash中烧写,比如说RAM映射到区域7,我 ...

那你为什么不在自带的RAM中调试呢外扩的话肯定要改CMD   修改引到代码

sxmengjing 发表于 2013-8-28 13:02

zhangmangui 发表于 2013-8-27 16:17 static/image/common/back.gif
那你为什么不在自带的RAM中调试呢外扩的话肯定要改CMD   修改引到代码

片内RAM只有34K,老大要求在外扩的RAM中调试,所以外扩了256kx16的RAM,你做过类似的工程吗

zhangmangui 发表于 2013-8-28 13:05

sxmengjing 发表于 2013-8-28 13:02 static/image/common/back.gif
片内RAM只有34K,老大要求在外扩的RAM中调试,所以外扩了256kx16的RAM,你做过类似的工程吗 ...

程序一般运行的时候我都是将flash中的代码调到RAM中运行
这样的话你根据映射的区改一下地址就可以了

zhangmangui 发表于 2013-8-28 13:06

zhangmangui 发表于 2013-8-28 13:05 static/image/common/back.gif
程序一般运行的时候我都是将flash中的代码调到RAM中运行
这样的话你根据映射的区改一下地址就可以了...


小代码你可以看看

sxmengjing 发表于 2013-8-28 14:36

zhangmangui 发表于 2013-8-28 13:06 static/image/common/back.gif
小代码你可以看看

好的,太感谢了

sxmengjing 发表于 2013-9-3 15:18

zhangmangui 发表于 2013-8-28 13:06 static/image/common/back.gif
小代码你可以看看

我试了一下,更改CMD文件,把程序段映射到XINTF区域的区域6,程序可以下载到芯片中,可以全速运行,但是不能加断点了,然后把程序段又改为映射到片内RAM,将数据段映射到区域6,程序正常运行,我定义的全局变量存在区域6的地址里。我的疑问是我怎么样做才能把.text段映射到区域6呢?因为当代码很长的时候,.text段也很大,片内RAM放不下.text段。

yangmiao0223 发表于 2013-9-3 19:33

sxmengjing 发表于 2013-9-3 15:18 static/image/common/back.gif
我试了一下,更改CMD文件,把程序段映射到XINTF区域的区域6,程序可以下载到芯片中,可以全速运行,但是 ...
先将memory中定义地址如:
page 0 :sxmengjing : origin = 0x100000, length = 0x40000
然后在SECTIONS中将text段以及其他代码段 映射到 sxmengjing段中 如:
   .text            : > sxmengjing ,      PAGE = 0
   .cinit         : > sxmengjing ,      PAGE = 0

yangmiao0223 发表于 2013-9-3 19:37

sxmengjing 发表于 2013-8-27 14:20 static/image/common/back.gif
我说的不准确,我是想在外扩RAM中下载调试程序,调试成功了再往Flash中烧写,比如说RAM映射到区域7,我 ...

前两步都对了,第三步不对,你应该是片内RAM放不下,你才会放到外部RAM中呀。直接定义到片外RAM中运行,不要Memcopy()

sxmengjing 发表于 2013-9-11 10:54

本帖最后由 sxmengjing 于 2013-9-25 09:12 编辑

yangmiao0223 发表于 2013-9-3 19:37 static/image/common/back.gif
前两步都对了,第三步不对,你应该是片内RAM放不下,你才会放到外部RAM中呀。直接定义到片外RAM中运行, ...
谢谢你的回答,我按照你说的对程序做了三种改变:
1. 更改CMD文件,把.text和.cinit映射到0x100000,程序可以下载到芯片中,运行速度比片内RAM中慢了一点,但是不能加断点了。
2. 然后把程序段又改为映射到片内RAM,只将数据段映射到区域6,程序正常运行。
3. 我在主程序中不初始化XINTF 区域6,只改动CMD文件和初始化区域6,运行结果一样,所以我想是不是向片外RAM下载程序时不用初始化XINTF模块呢?

yangmiao0223 发表于 2013-9-11 15:56

sxmengjing 发表于 2013-9-11 10:54 static/image/common/back.gif
谢谢你的回答,我按照你说的对程序做了三种改变:
1. 更改CMD文件,把.text和.cinit映射到0x100000,程序 ...

可行

Veronica_yuan 发表于 2013-9-18 16:28

本帖最后由 Veronica_yuan 于 2013-9-18 16:42 编辑

我也遇到同样的问题:
程序.text段过长,内部ram不够用,所以我用了外扩ram区域7,我在主程序中对zone7做了初始化,然后修改了cmd文件:
page0:
ZONE7A   : origin = 0x200000, length = 0x010000
.text            : > ZONE7A,   PAGE = 0
但是修改完之后,程序没有办法load到ram中,请问这要怎么修改?
@yangmiao0223

zhangmangui 发表于 2013-9-20 11:30

Veronica_yuan 发表于 2013-9-18 16:28 static/image/common/back.gif
我也遇到同样的问题:
程序.text段过长,内部ram不够用,所以我用了外扩ram区域7,我在主程序中对zone7做了 ...

你们两个相互交流解决了求分享谢谢

yangmiao0223 发表于 2013-9-22 09:23

Veronica_yuan 发表于 2013-9-18 16:28 static/image/common/back.gif
我也遇到同样的问题:
程序.text段过长,内部ram不够用,所以我用了外扩ram区域7,我在主程序中对zone7做了 ...

你的读写外部ram有问题么???向外部ram写数据是对的么

llf021421 发表于 2014-8-3 01:36

我也遇到了这样的问题。如果dsp的程序过大,.text在芯片的内部sram装不下的话,只能放在外部sram,有什么办法让程序固化在内部flash,运行在外部sram呢?

llf021421 发表于 2014-8-3 14:26

我的问题已经解决了。现在程序是固化在flash中,运行的时候全部在外部的sram中运行,内部sram完全可以不需要了

scottly 发表于 2014-10-13 16:55

llf021421 发表于 2014-8-3 14:26 static/image/common/back.gif
我的问题已经解决了。现在程序是固化在flash中,运行的时候全部在外部的sram中运行,内部sram完全可以不需 ...

不错,恭喜,我现在做的也和这个相关,请问你是怎么解决的呢?能加你qq交流下么?

scottly 发表于 2014-10-13 17:31

楼主问题解决了么?请问怎么弄呢?能否qq交流下呢?谢谢
页: [1] 2
查看完整版本: dsp28335 向片外RAM烧写程序