|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
& {/ x V4 t: k h% W 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:9 |6 j- ?7 R" ], t9 z( d0 V% B2 O
+ Y& j& W2 ~( E1 H f
/** w" e. g C) n9 T7 e) ?
* ======== config.bld ========
6 I3 D% m o" w *7 ~( ~2 a% L, a1 r% T, | @
*/1 P1 ]9 U8 ?$ p3 e4 ]$ \
$ I" Z" k( E: zvar Build = xdc.useModule('xdc.bld.BuildEnvironment');$ m9 o6 i2 M7 o
9 X" r+ r! r3 k! X" f8 T/* Memory Map for ti.platforms.evmOMAPL138
9 Q) R& x/ B8 e1 h. W *
1 f7 U0 C+ R3 B" Z, {( B+ L4 i8 m * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
2 e t" ]/ u+ f) y @8 {; }" L * ------------------------------------------------------------------------6 z5 Y) l8 U( C8 x: j( @/ ~
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux9 T f* Q& x% L, j$ [) ?' n
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
0 r' ^- L5 A6 v/ z6 f. Z$ z * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
# [2 _* t* o! \2 B+ s7 h/ i+ N * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
0 \9 }* v% Q0 B$ l4 H * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)4 C; Q) E* y5 J# @
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
9 j: U2 B( V; i$ @3 z * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux8 S/ i3 @ n- Y3 |
*/
' h: x/ f' c: T9 M5 }7 E- V# U& H- t2 j) c) y
var SR_0 = {
% C# M1 M4 T1 M" `8 ~ name: "SR_0", space: "data", access: "RWX",3 ~! L$ O, @* F+ ~5 \
base: 0xC2000000, len: 0x10000,
% x" A" N5 R6 @! ]) V comment: "SR#0 Memory (64 KB)"
: p* |( a0 M, S* H1 _1 p };8 }6 M2 t: Y- J7 @2 |/ J) O
& Y& z2 b: d9 Z9 z7 r
var SR_1 = {
+ P( ^# P, V6 Y9 M name: "SR_1", space: "data", access: "RWX",+ A. e% O% R# P r
base: 0xC2010000, len: 0x20000,6 q2 S; H @4 K. n) k4 n
comment: "SR#1 Memory (128 KB)"6 M. d O% o! O! ^! O L
};1 ~$ P, T$ _' e6 g' G, `
& h( H, p! U' N }3 e0 E( j
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {+ ?- @/ i+ ]: r! B& h
externalMemoryMap: [+ H, ~- f/ d! Q( Y F( T- p
[ SR_0.name, SR_0 ],5 K/ n& D$ M4 [. j+ E, K( c% e
[ SR_1.name, SR_1 ],
7 m, P) ?* p- _; M3 N [ "DSP_PROG", {7 ^# u1 b+ r4 v' n
name: "DSP_PROG", space: "code/data", access: "RWX",1 R2 `5 n/ Z0 ]- x$ r; R3 M
base: 0xC2100000, len: 0x1E00000,
; J" s2 a1 O/ x. l# {4 E0 R! P' o comment: "DSP Program Memory (31 MB)") B" c O: E% K/ U' B {5 e
}]2 C% M8 W8 C4 S1 s {$ d
],5 W* i5 i3 y% A1 e
codeMemory: "DSP_PROG",
6 m2 F* S1 @8 X" }7 ` dataMemory: "DSP_PROG",
% l$ I3 H7 c' H stackMemory: "DSP_PROG",* @1 _9 z4 G3 f- A
l1DMode: "32k",
& d% w' ?0 [$ g% E l1PMode: "32k",& C4 l0 g# O+ K5 T& U, \3 k% [
l2Mode: "64k": v4 a( b( i% ?8 o O9 g' @: y
};; B9 G7 b' Z' n- ~3 y. D2 S) z
( B' `; Y( s& C" E4 ?7 y
/*/ G2 t1 j; x+ a% ^, ]
* ======== ti.targets.elf.C674 ========
3 ]" N% l& Y+ C: s, |; ~6 P: @+ q9 X */
2 R7 Q ]: A; x( E/ X7 Gvar C674 = xdc.useModule('ti.targets.elf.C674');
4 ~' Q+ d& n( x9 J. i% t7 U, bC674.ccOpts.suffix += " -mi10 -mo ";+ Q4 m: C* w6 B1 D9 V. u* l' ?8 {
Build.targets.$add(C674);
+ T! E- s$ |- I* h1 O! P Y! c6 u
: H, A% |; L- n0 N5 l% t% l1 [& Z* n% K4 s; {+ Z
====================, t: C. g5 y9 e% A
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。$ f; O1 v3 ?6 {# x, X: O$ X
|
|