|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。3 u. k( ~3 l7 @
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
, Q, w7 d e! p+ Q9 a- S* R, D- j0 Z8 M3 z3 A- c: k2 J6 y* E
/*8 y- R7 S/ e4 L
* ======== config.bld ======== k, ?: B. m6 r$ G
*
3 u P8 Y% B/ l0 D, B4 Y& V */
* f' ^$ D. W8 C+ J5 O
# |: ?$ i+ K; ivar Build = xdc.useModule('xdc.bld.BuildEnvironment');9 m" Z# C: ^3 U+ r
, N$ v S& t+ A, a# D. U/* Memory Map for ti.platforms.evmOMAPL138
/ l' C& U2 i+ |' O( i9 z) v *
6 F$ [/ A J) y * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory& Z! J8 I% j6 g1 s, K6 [
* ------------------------------------------------------------------------( w- P5 J% D3 L4 `) V* @* O, e
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux2 [4 u% m1 R9 @% ]4 q; p
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
1 B5 f& T9 D9 V * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
& w4 L) h4 B$ B/ Z) [6 a * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
6 b. C( c, Z* Z8 ~ * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)* U5 l+ n$ m$ c1 r3 T) A* [+ m! W$ g
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
( G9 K* x# d9 Y" Y& x * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
/ T1 ]: U9 k2 U* D" C( n: W */. j |7 d; G9 D) P. x
5 [0 \; A% P% z- q; b
var SR_0 = {5 E3 k- @! x# _: d7 C
name: "SR_0", space: "data", access: "RWX",
* b' E$ z9 M! Z0 K& T& z base: 0xC2000000, len: 0x10000,
+ C8 f. `: R: `4 _ comment: "SR#0 Memory (64 KB)"2 ^0 z! E7 j! h" y! W
};) o- b" ^! k- `/ S' _- d- g
3 D$ k; D( ]7 P1 y* q9 f% N4 x7 L2 }
var SR_1 = {2 `0 Q, t0 Q# R" {& I2 C3 Q
name: "SR_1", space: "data", access: "RWX",
) N& p5 D6 h* n2 P base: 0xC2010000, len: 0x20000,7 c5 \% Z" [. e, p
comment: "SR#1 Memory (128 KB)"
; r$ c5 T) J* n3 N/ }0 [6 l1 d" r };8 m* F5 U2 C8 j5 q; @2 Y0 E
: z6 @7 y0 U k0 O/ `Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
9 O: C9 f x2 f externalMemoryMap: [0 D% t0 q( Z' H% i7 N8 l2 R
[ SR_0.name, SR_0 ],2 e, h5 m# k G9 s5 Y' a
[ SR_1.name, SR_1 ],
6 L8 E ~* d2 B6 |) |6 a [ "DSP_PROG", {
9 e# ]$ r* M3 O5 y7 B$ m: s' O5 r name: "DSP_PROG", space: "code/data", access: "RWX",
1 U r7 K" Y7 }& X base: 0xC2100000, len: 0x1E00000,/ g+ U# o) |, e( b6 e6 A0 Z0 b) J& Y. A4 j
comment: "DSP Program Memory (31 MB)"
" v0 g0 j6 Y+ a8 w: a1 ~' H% \ }]: ?7 u0 V! C0 W3 ], i
],
9 k0 `* V z" k9 Q- V0 I8 J" c3 e codeMemory: "DSP_PROG",; F! c: Y, D9 `/ V2 g
dataMemory: "DSP_PROG",
5 N( T4 Y/ L2 z3 D( I$ b! O stackMemory: "DSP_PROG",
( U. P `$ x& j R* Y* F* \ l1DMode: "32k", C/ c9 [% K6 S0 _8 V0 M6 i, V
l1PMode: "32k",2 Y6 y! {' S* }$ H, v9 L
l2Mode: "64k"" q& N# F& }4 g% p, v- g3 T# V
};8 p e) N* ]& g" \3 ]& s
7 ~. Z0 y* t8 f" g. ~1 X% _/ {
/*: X+ t* V+ G& Z' ~" ]+ q2 \& z
* ======== ti.targets.elf.C674 ========2 o0 q" f E+ O7 N
*/7 |1 G0 g* c. `( G& C+ t: v2 e
var C674 = xdc.useModule('ti.targets.elf.C674');
0 [; Q0 w: H9 b; |% E- SC674.ccOpts.suffix += " -mi10 -mo ";, C( l! U4 B8 `9 e$ m# b
Build.targets.$add(C674);
1 E( j1 D9 e2 m
/ _+ Y7 {: d' l! n) W3 j% e: M1 D* K% M( F( f
====================
% N* J. x1 ~ v2 y% t原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
0 ^5 t! \; j2 ^. o1 P2 |% t/ K |
|