|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。) P- f1 ?3 i, F- h! n. o5 |/ x
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
* x1 t! u( U+ V* l; f( D( w
) }& P+ K! i# e7 l/*$ g) Y* y' x8 x5 I7 f, Y
* ======== config.bld ======== I- \' V V# I. N
*
. m6 E/ _5 K6 ~8 Q4 g */& D* D7 R8 D. T! y G" u; \
0 H& s( l+ h( ]0 ^' D0 ^& a- L
var Build = xdc.useModule('xdc.bld.BuildEnvironment');: r& f3 H; l. l/ w8 f+ ~. A
8 n* _7 J r4 Y* a g5 H6 ]
/* Memory Map for ti.platforms.evmOMAPL138
4 c/ z$ A$ u# n: m. C5 g *8 J T: i6 D. y1 b4 h. n7 ]( _
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory4 u/ A) V# K$ ~) y' [& a g9 e
* ------------------------------------------------------------------------
' r+ `3 O1 s- x8 m. I3 O * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
2 U0 o0 O# P! T- R8 L * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
6 W2 ~& k Z& m5 _& D8 }: O * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers); @, T7 m; ^+ M2 p- ^# J) a
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------* A& D& C( c1 t$ z3 `9 Y
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
. p: }+ V7 v2 S+ B, { * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------/ ~0 ?" B& [ ^5 _7 z) O
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux1 u+ m8 }# a% o- ], l* e9 r* L& u
*/
8 t y' m0 W; K' c( b- |
) ^' { `* b3 n: C5 _+ H1 bvar SR_0 = {
, A5 w1 a# o* n; ~ name: "SR_0", space: "data", access: "RWX",0 s# ^9 x- c$ B' S0 E
base: 0xC2000000, len: 0x10000,9 ?' _. r7 \, `& h3 K- Z
comment: "SR#0 Memory (64 KB)"/ E5 t9 }1 q" j* @6 \
};
& b. L9 P& ?6 b8 @ C2 D, C: n
9 S, b) S2 G+ A4 k1 e; Mvar SR_1 = {
0 | Z0 k9 L6 ^* j! Y name: "SR_1", space: "data", access: "RWX",
R' P0 \$ R. S1 F7 [: f. }! H base: 0xC2010000, len: 0x20000,
5 {& [+ [! `5 i+ t, S, \. a& B comment: "SR#1 Memory (128 KB)"( t* ^0 G7 c( L4 I7 y4 m0 g
};
7 L+ r& |! b" Y* P
/ d& l4 T- J& w# {' U5 K1 P0 `* PBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {8 C; m) ], `( l9 d* U8 D* @; {
externalMemoryMap: [
, l+ d* [; ?4 A1 n6 g; z [ SR_0.name, SR_0 ],
! E c1 g1 I+ {9 x5 d, V# D# E! l. p& \ [ SR_1.name, SR_1 ],
$ J2 D! F/ J `' d( Z0 J6 l8 M k [ "DSP_PROG", {5 l. M5 P% X+ _- b
name: "DSP_PROG", space: "code/data", access: "RWX",1 @! g: ^! G3 y% \( v3 a" L
base: 0xC2100000, len: 0x1E00000,
! d% c# n$ B; {, l% \) j9 R) ` comment: "DSP Program Memory (31 MB)"
; |" }- e0 n) N/ K }], R3 e0 y% @+ e* T* e
],) Y. L5 `0 T1 ]
codeMemory: "DSP_PROG", q* Z1 u, t: K# f: f
dataMemory: "DSP_PROG",1 Q# Q9 r |1 z( r
stackMemory: "DSP_PROG",
) c- X3 Q; W$ t8 e l1DMode: "32k",
) l% e$ K- P4 s5 j- { l1PMode: "32k",! o7 c& k" e/ M' O9 _
l2Mode: "64k"1 y& k G/ M' J% ^, T
};# M' B: t7 O b; q! q3 W
- A' d( ]/ v; E, J- d
/*6 o8 I* e& S! q& x
* ======== ti.targets.elf.C674 ========9 I, z9 J0 T4 ^# I8 E9 [, R
*/
9 L& u/ Q, J i4 zvar C674 = xdc.useModule('ti.targets.elf.C674');
9 C; U6 _" V8 S9 |C674.ccOpts.suffix += " -mi10 -mo ";
6 w$ F. r, I2 c9 s1 ^' O! CBuild.targets.$add(C674);6 ~2 B6 C8 o4 T
: O0 Q. L3 `: ~3 t {
% ?+ f& F1 z% O0 z# M, Z
====================
) l. E7 @$ z; x+ s8 R原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
- O( c. t+ }2 Z1 r7 N4 D |
|