|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。: P; y6 o" ^2 C6 ]/ y' y
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:8 }8 q* }# v5 `
' t/ y; j& Y+ Z6 b) D/*, Y" D7 Q1 Z$ x9 @1 ?6 l
* ======== config.bld ========# o) v) r4 Y, C$ R8 {
*
& V3 ^% _: B/ [ */
6 v: c- |3 g' T, C" | U( C5 }* t# ?" o" |" I& U7 D
var Build = xdc.useModule('xdc.bld.BuildEnvironment');9 s$ z* J8 g3 a1 e D) S
9 Y) q# G0 ?8 j8 i/* Memory Map for ti.platforms.evmOMAPL138
0 L- m: u$ q$ Y9 F7 A *( |& V& ~: W* g
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory- C! u' y6 E D+ t U, L; t
* ------------------------------------------------------------------------
6 y0 g7 B" D% s7 [7 N& k) o * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux" r' q1 T$ L6 p" |' z6 ]$ }
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
* K' C* ]2 {" w6 v * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)( Z9 V: w! c" N5 |% L
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------# |. Z1 i4 Z" E' [ U3 [
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data) X- j: C- W: ~6 I* `
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------8 J0 b* n! E4 z8 X) T) f* Q
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux% g( B" D- H \
*/, O& Q$ o1 o" l1 Q* N4 ^6 {
* f, T: }3 Z% o0 s9 U- H" A' R8 Xvar SR_0 = {; f7 v( B/ s; p( a2 @& ^+ O. Y
name: "SR_0", space: "data", access: "RWX",1 ^$ _! j- m* J* O, r, i
base: 0xC2000000, len: 0x10000,
) G8 d0 i# O! v: ^$ V comment: "SR#0 Memory (64 KB)"# M$ U& q" J: T4 N" |0 W3 c2 p# a
};
. m1 E$ }& z! o# p' U4 }1 w9 L' v+ J8 i: v7 x% R+ e x6 i
var SR_1 = {! z- z2 G" l- n. ?& C/ a
name: "SR_1", space: "data", access: "RWX",8 |" e9 c; b0 h' w+ J, z
base: 0xC2010000, len: 0x20000,6 F2 [* ]7 g8 G" g
comment: "SR#1 Memory (128 KB)"
9 [+ R# ]4 ~$ e$ s6 u };
0 J! ?- x# r+ h: [3 C y5 ~) h7 z, e8 |# K
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
, ^7 s2 r9 I2 v9 U( A8 t! e0 T+ X- P externalMemoryMap: [
1 G% h6 r- [7 h M( v0 a9 u' |1 y [ SR_0.name, SR_0 ],$ Y e5 B; c/ h+ l. X
[ SR_1.name, SR_1 ],$ W$ `/ r' k% ^
[ "DSP_PROG", {
3 p' z" c8 Y! r1 |/ m name: "DSP_PROG", space: "code/data", access: "RWX",* C3 K( D9 T! M; d2 E
base: 0xC2100000, len: 0x1E00000,3 Q4 K, m7 _, P% a
comment: "DSP Program Memory (31 MB)"3 [4 U$ g q& Q" T0 ]
}]3 E7 F1 h: y0 P, t* Q
],
1 ?& \' v+ j2 Q codeMemory: "DSP_PROG",
$ E1 ?/ e1 g0 r& |, \6 G8 ] dataMemory: "DSP_PROG",
4 W3 z5 T. j% L6 j# ` stackMemory: "DSP_PROG",2 u6 `& X2 z2 F7 C2 X7 a
l1DMode: "32k",
+ x% T& x. K: f l1PMode: "32k",6 X0 |; ^* u/ Z6 C. P$ p& ]/ Q
l2Mode: "64k"
6 C" b" l$ M, F, ]* ?. B) O};( o9 z" O" a. y
8 w8 u6 c& `: p; I" j
/*
6 T H4 h" Z! l0 _# O * ======== ti.targets.elf.C674 ========
9 C0 z; }$ Z0 E3 s# E9 U" y! R5 X */
: F$ R5 B/ x+ y( q, ^* `var C674 = xdc.useModule('ti.targets.elf.C674');
* N3 d0 s( b' _- O3 B; ^/ BC674.ccOpts.suffix += " -mi10 -mo ";, y- ^: R' z! ]- r( Y) i
Build.targets.$add(C674);
+ f* ~3 {& d: Y) j# ^( y8 u& ] }6 W4 K t1 O* J% L7 Z) K" i
, {% P: Q* h# y; ]
====================
' E2 R( F0 z' ]原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。; l* n6 q, ^6 a p. v- V* @
|
|