|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。! I. r( F4 }( c( I2 g; u3 w1 A
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
4 }9 a e/ w+ A
2 P! A3 J6 v E/*
" j; D$ B& Y0 P* ^( t7 X+ `: W * ======== config.bld ========
- |% {1 C! g3 R* g8 @/ n9 \$ v *
( c2 }( d. P; K" ` */
) I" f3 f3 W4 x% o, T- o! W8 ~' Y! z8 q0 G. ]) X0 I$ H" l
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
6 J9 q: F% K8 O, L) U H. d$ Z' ?( L7 `, d/ N
/* Memory Map for ti.platforms.evmOMAPL138
3 V- ~& [: e& O' D. G *# [" n& @7 n" Y7 ?$ ?& Y
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
* t' j& v" _' M. _* Q0 F6 h * ------------------------------------------------------------------------) M+ n, n7 w. s8 X: i
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux1 U; [4 B: H# F. x5 `
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)/ p; t6 r2 H( M: J2 \+ F+ `7 h
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
" y$ H; [" S' p * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
: q; |& s$ f) ]% S * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
; ?: y B( T/ t: U2 I+ { R * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------: l$ s) G0 j/ B4 [, s
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux( I9 X+ I' L/ X( l- [
*/
0 G8 ]& a; k9 Y' B% A% |" M" d
( K5 B+ ~$ z# a/ J1 ], y4 _( X9 @7 cvar SR_0 = {
; x+ H) y: n0 m. p name: "SR_0", space: "data", access: "RWX",
& @: |3 T3 T' L6 |6 ^ base: 0xC2000000, len: 0x10000,
) K4 ?) k0 ?& s( g/ ]) R7 v comment: "SR#0 Memory (64 KB)"$ t3 F# {% d3 q7 S ~8 Y+ r- S/ w
};0 M$ t) ?0 b A2 }3 R
5 F' \, }* N' b7 p6 o5 r$ h6 {* lvar SR_1 = {' t A) Z C" L$ s/ e
name: "SR_1", space: "data", access: "RWX",
9 \7 P- b6 k3 ]0 k4 Y base: 0xC2010000, len: 0x20000,( ?! X& D8 F3 d! N& J. _) [& D
comment: "SR#1 Memory (128 KB)"9 l9 j1 E2 v" g$ O+ y/ ?
};
9 l6 M `, v3 Z1 D N7 O
; V3 J" J' D2 ^, v' O* iBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {1 `# i* S2 d8 ~: K" C/ u7 ^4 s1 H
externalMemoryMap: [
# F! ^5 q: G4 O4 b! m [ SR_0.name, SR_0 ],* ? F6 o3 C1 Z9 y
[ SR_1.name, SR_1 ],
2 M3 [) v$ l; n [ "DSP_PROG", { |) E) k9 m. F9 Y( r
name: "DSP_PROG", space: "code/data", access: "RWX",
# m; P2 j/ ?0 L3 [( h: D+ _ base: 0xC2100000, len: 0x1E00000,0 x1 i" Q" n s2 \( x9 e( N
comment: "DSP Program Memory (31 MB)"
2 J5 M- M, ~* x }]& b4 Y& [& \4 [8 ~5 u8 s
],
* B& h8 f9 A( C: q3 @9 a' S codeMemory: "DSP_PROG",( o1 u8 s7 u( F* U
dataMemory: "DSP_PROG",
( { u( W8 a8 E# N2 X& @ stackMemory: "DSP_PROG",
# z) l, k' [3 V. ]' V$ M" G9 h5 Q! x l1DMode: "32k",
5 C; O+ I8 i& h8 K3 T* G+ W; G" k l1PMode: "32k",! A6 ]' f3 L/ Y! M8 g
l2Mode: "64k"
( |! @0 p, Z7 e};, ]& H3 Z4 ~" d8 ]8 ~ P
( X; x* w V8 s S
/*
, D# D3 b! @6 z+ @" d, q- ?- @1 m * ======== ti.targets.elf.C674 ========/ d2 R) q# D- b$ y2 z- q& `9 i2 k' n/ _
*/
) ?1 k/ l8 d6 f9 O0 O) avar C674 = xdc.useModule('ti.targets.elf.C674');
+ j# m8 Y: D( Y2 ZC674.ccOpts.suffix += " -mi10 -mo ";
0 h9 N, ?/ B0 z6 b8 @0 `Build.targets.$add(C674); n& a2 V4 k3 \. ~ ?
3 W! m$ q H0 g% l( M7 B
: \- B9 b" U, r' a; s
====================
( u4 {$ _+ G* T6 x8 {, h0 c' S" U2 q原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
# ~) y. G" s( k( Q |
|