打印

烧写后如何程序在外部SDRAM运行

[复制链接]
1651|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2018-8-16 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yszong|  楼主 | 2018-8-16 10:50 | 只看该作者
试着用DATA_SECTION将部分数据放在外部SDRAM,编译也报错,是什么问题呢?

使用特权

评论回复
板凳
dengdc| | 2018-8-16 10:55 | 只看该作者

可以现在内部运行,然后用一段小程序把代码拷贝到外部去,再跳转到外部运行。

使用特权

评论回复
地板
yszong|  楼主 | 2018-8-16 10:58 | 只看该作者
我将CMD文件修改,想将程序放在外部SDRAM里面仿真调试也不成功。仿真调试的时候只能将程序放在内部RAM里面吗?

使用特权

评论回复
5
heweibig| | 2018-8-16 11:03 | 只看该作者
需要把程序再读会ram运行的

使用特权

评论回复
6
yszong|  楼主 | 2018-8-16 11:07 | 只看该作者
怎样把程序拷贝到外部呢,怎么跳转的呢?

使用特权

评论回复
7
wuhany| | 2018-8-16 11:13 | 只看该作者
#program CODE_SECTION可以解决

使用特权

评论回复
8
yszong|  楼主 | 2018-8-16 11:16 | 只看该作者

还有一个问题想问问,我前面一直做软件方面的,对硬件一窍不通哈
SDRAM的时钟是怎么决定的呢?我们用的SDRAM是MT48LC2M32,硬件工程师给我说是7NS那款。我以为SDRAM的时钟就是143M了。

使用特权

评论回复
9
yszong|  楼主 | 2018-8-16 14:34 | 只看该作者
但是今天有位工程师说是由DSP给的。我看了原理图,我们的板子SDRAM的时钟是与DSP的ECLKOUT连接的,就是输出给EMIF的时钟,那SDRAM的时钟是这个吗?也就是说我要输出EMIF以143M的频率吗?我一直输出80M的频率。

使用特权

评论回复
10
jiahy| | 2018-8-16 14:37 | 只看该作者
之所以不能直接在sdram中执行程序是因为sdram必须先进行初始化操作。
如果你的程序很小,可直接放在片内ram中,然后用读写指令拷到初始化完成的sdram中即可。
如果你的程序很大,可建一个二进制的文件存放第二级的代码,把第一级的引导代码在ram中运行之后,先初始化sdram,再去读取那个二进制文件,并把数据写到sdram中,完成后跳转到sdram中运行。

使用特权

评论回复
11
lizye| | 2018-8-16 14:40 | 只看该作者
MT48LC2M32的时钟是由DSP给的,给多给少都可以,在硬件允许的范围内,一般是越快越好。你可自行查阅DSP与sdram的时钟频率的上限,以确定给多少。

使用特权

评论回复
12
yszong|  楼主 | 2018-8-16 14:44 | 只看该作者
SDRAM初始化是指什么呢?是不是EMIF中SDRAM几个寄存器的设置,INIT使能是不是就能自动初始化了呢?还是还有其他的初始化操作?

使用特权

评论回复
13
yszong|  楼主 | 2018-8-16 14:46 | 只看该作者
您所说的程序大那种情况是不是指二次BOOTLODER呢?我的肯定要啊。DSP内部RAM好像是192KB,我的程序现在还没有超过,但是还没有写完,估计后面会不够用,所以想放部分在外部SDRAM里面运行。现在我用的TI的例程的BOOT这种方式,程序全部放在内部RAM运行的。看了很多网上的资料也都是放在内部的,就是不知道怎么在外部SDRAM里面运行程序呢。

使用特权

评论回复
14
lizye| | 2018-8-16 14:50 | 只看该作者
SDRAM初始化确实是配置寄存器,理论上应该是你主动配置的参数,因为不同的sdram的参数是不同的。不确定你说的INIT使能包不包括这部分。

是指二次BOOTLODER,这种用法也很常见,网上应该有例程吧,你再找找。

使用特权

评论回复
15
shimx| | 2018-8-16 14:52 | 只看该作者
http://www.ti.com/dsp/docs/litabsmultiplefilelist.tsp?sectionId=3&tabId=409&literatureNumber=spra999a&docCategoryId=1&familyId=2967上面是TI官方的二次引导教程

使用特权

评论回复
16
jlyuan| | 2018-8-16 14:58 | 只看该作者
MT48LC2M32的时钟应该是由DSP给的
应该是得把程序再读会ram运行的吧

使用特权

评论回复
17
wuhany| | 2018-8-16 15:00 | 只看该作者
你的程序实现了吗?可以在SDRAM中调试吗?其中中断是怎样处理的?

使用特权

评论回复
18
shimx| | 2018-8-16 15:08 | 只看该作者
SDRAM上电后使用前必须要经过一段初始化操作才可以使用。这个操作过程是标准的过程

使用特权

评论回复
19
zhanghqi| | 2018-8-16 15:11 | 只看该作者
最终还是得把程序再读会ram运行的吧
这个需要bootloader程序进行引导的。。

使用特权

评论回复
20
zhenykun| | 2018-8-16 15:16 | 只看该作者
sdram必须先进行初始化操作才能执行程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝