嵌入式开发者社区

标题: 如何将DSP端代码放在L2 RAM中运行? [打印本页]

作者: 15901123858    时间: 2018-6-25 08:52
标题: 如何将DSP端代码放在L2 RAM中运行?
我现在使用的是OMAPL138开发板,现在有些疑惑:一个FOR循环中值算法单独在ARM里面运行的时间与单独在DSP里面运行的时间没有什么有很大区别呢?通过计算,同样程序在ARM里面运行比在DSP里面运行要快1倍。。。DSP的优势完全没有显示出来啊?
; K# u6 H1 B  H
在TI的论坛中看到可以通过把DSP部分代码放在L2 RAM中运行以提高效率,请问如何操作呢?是在DSP部分代码前面添加关键字嘛?$ K! j. F- \! s" E! p$ _- X* F* E

作者: 小晓筱伟    时间: 2018-6-25 09:36
[attach]3247[/attach]CMD文件中的SECTIONS,把这些段都放在SHDSPL2RAM中。3 s, t2 u9 k6 h: l  k. u$ M# T

作者: 15901123858    时间: 2018-6-25 15:43
小晓筱伟 发表于 2018-6-25 09:36
2 J6 N" C0 Y) H% b% c$ Q: cCMD文件中的SECTIONS,把这些段都放在SHDSPL2RAM中。
' D; L- p% X' [' s% c8 L$ Y
谢谢,但是我用的是创龙提供的例程ex04_sharedregion,请问是修改ex04_sharedregion\dsp\configuro\linker.cmd这个嘛?但是这个文件好像是编译后产生的啊
作者: 广州创龙莫工    时间: 2018-6-25 17:38
可以将DDR2改成SHDSPL2RAM,如图所示:[attach]3257[/attach],并且要在SHDSPL2RAM定义这里做修改[attach]3260[/attach]。
作者: 15901123858    时间: 2018-6-25 17:51
广州创龙莫工 发表于 2018-6-25 17:38
' O: y1 _1 @- I8 ^) g& e可以将DDR2改成SHDSPL2RAM,如图所示:,并且要在SHDSPL2RAM定义这里做修改。
# a+ `, x( h' f2 ~5 y! p: E* g$ E
莫工 您的这个文件名称叫什么啊?我的工程是在ex04_sharedregion基础上建的,只有一个ex04_sharedregion\dsp\configuro\linker.cmd文件是CMD相关的,还是编译后生成的。
作者: 广州创龙莫工    时间: 2018-6-27 09:46
您好,请您参考Q群上的回复:
6 U' s9 D3 U0 U3 o5 C您说的ex04_sharedregion,是我们使用的,TI提供的syslink双核示例程序,其中的dsp端的例程,是sysbios的程序,内存映射部分,已经集成到.cfg文件里面,如果是裸机程序,才是完全通过.cmd控制内存映射的,当然,您在这个dsp工程的根目录下,添加一个.cmd文件,配置内存映射也是可以的,跟.cfg中的配置,不要冲突即可。不过,如果您对cmd还不熟悉的话,建议您先接触纯dsp或者arm的裸机程序,进行cmd文件的配置。
作者: 15901123858    时间: 2018-6-27 21:21
广州创龙莫工 发表于 2018-6-27 09:46* b/ l$ M5 Z; X2 a4 t6 F
您好,请您参考Q群上的回复:/ f$ a5 V. b0 V9 t" B0 c0 J
您说的ex04_sharedregion,是我们使用的,TI提供的syslink双核示例程序,其中 ...
$ \0 _% K- L( P
非常感谢,想在追问下文件的名称就叫.cmd嘛?这个名字编译器能识别码?还需要设置别的地方嘛?
作者: 广州创龙莫工    时间: 2018-6-28 09:02
文件的后缀是.cmd,例如C6748.cmd,cmd文件是可以被编译器识别的。
作者: 15901123858    时间: 2018-6-28 17:08
广州创龙莫工 发表于 2018-6-28 09:02
- ]7 C5 y6 a; F' Q9 T文件的后缀是.cmd,例如C6748.cmd,cmd文件是可以被编译器识别的。
7 |2 |) F" J! U1 I
好的 我试一下
作者: 15901123858    时间: 2018-7-1 12:03
广州创龙莫工 发表于 2018-6-25 17:38
/ a$ [- Z8 w( Z( D% `" x( e" K可以将DDR2改成SHDSPL2RAM,如图所示:,并且要在SHDSPL2RAM定义这里做修改。

. Q& u! c4 ^" K1 `7 a, N- H您好,没找到您发的这个图片对应文件,能将您发的图片的文件和工程给我参考一下呢?
作者: 广州创龙莫工    时间: 2018-7-2 16:45
您好,可以留一下你的邮箱地址吗?我给你发一份。
作者: 15901123858    时间: 2018-7-2 16:49
广州创龙莫工 发表于 2018-7-2 16:45' C, m" u9 V9 w2 F- e; R
您好,可以留一下你的邮箱地址吗?我给你发一份。
( z, x+ ^; n3 x  _
15901123858@163.com 谢谢!
作者: 广州创龙莫工    时间: 2018-7-3 08:43
您好,文件已经发到你的邮箱了。请注意查收。
作者: 15901123858    时间: 2018-7-3 22:43
广州创龙莫工 发表于 2018-7-3 08:43. G- P! p  C( l+ Z
您好,文件已经发到你的邮箱了。请注意查收。

0 G% v& N5 H6 G7 q0 _. i您好,邮件已经收到,有个问题想请教一下:- ~  `. ^  t+ `* g! k4 ], V$ s
我现在已经会在程序里面定义一个ramfuncs的段9 J& V% @. u7 q
#pragma CODE_SECTION(dragon_update,"ramfuncs");; @+ U+ H9 L0 W& M* i3 G6 g& Z
Uint16 dragon_update(UPDATE_SOURCE_TYPE *update_flag)
, f+ a' ~$ V) n{
) Y4 |3 l; a1 L5 N    。。。+ y' Z: N. W0 s/ \( t
}
  i* a9 k: x* W5 b% A8 O8 ~如果我想把它放在L2 RAM里面运行,那么我在.CMD文件中就直接在SECTIONS增加一行.ramfuncs        >  SHDSPL2RAM就行了吗?(保证我的这个代码不会很大)
作者: 广州创龙莫工    时间: 2018-7-5 12:40
嗯嗯,这样是可以。
作者: 15901123858    时间: 2018-7-9 22:35
15901123858 发表于 2018-6-28 17:083 p: C% p% F( s  N) P2 z/ Q9 w; [" G; A
好的 我试一下

3 Q% o8 k& Q7 g/ \0 p6 `9 `莫工,问题已经解决,参照您这个修改DSP目录下的LINKER.CMD,然后在MAKEFILE文件中更改拷贝.CMD的命令(使用修改过的.CMD)就行。运行速度有很大提升!




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4