|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
) q" K( I& l; m \/ R3 Z# B 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:3 C1 s0 w' w4 M. m- }3 p; ]
( b& U6 b3 Y! P8 Y7 Z
/*9 K4 z# j8 T8 f* P6 p* Q
* ======== config.bld ========
* G9 U/ Y6 ~& b' W, x *
$ c# ~! d" z" e) r4 _ x */
) B0 |8 s% u( P, a8 F4 s& S+ |1 s2 I: U7 D3 F$ F6 C
var Build = xdc.useModule('xdc.bld.BuildEnvironment'); s+ l6 R7 a: M4 t: c9 I
! `; u I! P. h: N# {/* Memory Map for ti.platforms.evmOMAPL138
; F+ @; o3 n5 w% {4 r; g *
7 c3 x' w) g5 ?: g * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory. d' |/ G/ P% _ T; y, }$ T
* ------------------------------------------------------------------------" D( w; T# C: \; p' Z* u
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
* M( o2 a4 k* Z. t/ `- b * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc). s5 ?- Q$ w3 }; c1 q
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
+ p# Y8 r. a5 b6 B5 U1 j' d* p; l * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------2 f; A8 \& D% N1 n
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)5 k7 ?$ x; }2 ~% h# I9 Z' B9 K
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------3 Q4 j& N; Q! `* ]9 I+ n: y
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux6 \3 c( C% r+ U" ]. O# L
*/
( ?# q* P# a/ G+ r, G) a; D( q
8 v4 m$ L+ J5 X- R' B5 j; I% {var SR_0 = {
4 S' f7 @! y% x/ `: [. t, V name: "SR_0", space: "data", access: "RWX"," `/ W& D' D' r5 k) \
base: 0xC2000000, len: 0x10000,
H) @) V& z0 t% |. N% @5 L/ { comment: "SR#0 Memory (64 KB)"' O8 ~6 I8 f8 s1 T2 ^ ^8 ]; T
};8 Y4 D6 |3 B7 W9 N q8 H7 Y
# m$ I3 ]: e0 Y' R0 y
var SR_1 = {
, U; x& U$ T* I" N+ Z8 b: b name: "SR_1", space: "data", access: "RWX",
+ X' h1 e; }0 q base: 0xC2010000, len: 0x20000,1 f3 e8 d [: f) k' @* _% H# C! o
comment: "SR#1 Memory (128 KB)"
& t$ h9 {2 j7 K };
) \/ _( n* ?0 H1 }6 }4 {! `) d X
, |: n# o/ I V& L4 U# TBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {/ D$ n' R! ^8 u0 `. {4 `0 u
externalMemoryMap: [: {. _7 O- g) t( `& O( p
[ SR_0.name, SR_0 ],
* E$ }3 }/ V, t [ SR_1.name, SR_1 ],: ?. _- U5 c% m* S& K# p" r K A
[ "DSP_PROG", {# _- ?( E% c/ C- i
name: "DSP_PROG", space: "code/data", access: "RWX",4 c/ T4 X# a0 E3 S3 A; K! v1 J
base: 0xC2100000, len: 0x1E00000,
, k* p; v5 Y( y- q0 q* E# O comment: "DSP Program Memory (31 MB)"4 b: u) F& n- n3 C# {4 M+ A3 l
}]
* @* |3 M& ~" ~. K ],
1 O* |/ O. n( B/ Z }/ v codeMemory: "DSP_PROG",! F" c& u. I' p7 g2 P
dataMemory: "DSP_PROG",! \% R* o5 p7 D
stackMemory: "DSP_PROG",% m2 [, L5 }& [6 M) z( ~1 I+ O% L* u
l1DMode: "32k",
6 ~* V* W# }4 g: G" ^- P0 g l1PMode: "32k",9 x; X9 O) E4 E5 e3 I9 _% X- m/ M
l2Mode: "64k"- ?. t) ^& Y. q. W, b2 A0 T3 } Z
};
. Y8 h! @5 l8 K& C; d- {9 a9 K
1 G( j* F1 B( f3 Z: h8 C" \/*) M7 E& u6 k( ?
* ======== ti.targets.elf.C674 ========
+ u0 S0 n# K" w* c+ e w. S */1 m9 q% Y1 I* @9 m
var C674 = xdc.useModule('ti.targets.elf.C674');
, x U; S6 s) Q' B" t9 bC674.ccOpts.suffix += " -mi10 -mo ";! `4 k) N+ Q4 A
Build.targets.$add(C674);
/ ?) r" @: q0 O& q% X, ` v! z' _( T$ U8 F
' Q5 k: C, }3 g5 j& o0 N+ K+ [; Q
====================) M' I& J# ]1 l' v' D
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。) H( A) N5 U0 N: x1 d+ t0 v# _" G
|
|