|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
. {7 \2 q8 n! h$ T! E) y3 W 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:/ k- [# ?" }$ G8 r8 w2 U7 g! f
& i" Q7 t8 w0 r$ ~0 x4 l- m& P
/*1 M0 c3 W$ B9 O/ z& g6 n( X) a
* ======== config.bld ========, U5 ]1 I$ _9 g$ [0 i3 I; | Y1 ~
*
' J# c) @5 j/ t. i4 ` */1 N0 t$ S2 h3 W: z/ ?
, |- o+ n: Y$ V4 S# L1 \, rvar Build = xdc.useModule('xdc.bld.BuildEnvironment');/ N% b4 p3 P% Z2 X& j
: b! L; f1 L E8 e* u! [/* Memory Map for ti.platforms.evmOMAPL1384 P$ K @( H5 B
*
9 G5 u3 }1 x9 U8 F * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory6 f' E3 ^" u2 g# I4 G
* ------------------------------------------------------------------------8 }1 }, H; r3 C8 _5 Z+ U
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux2 g5 N# y% v% i m( y
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc), s% k! D9 Q: H1 j! P- ?
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
: x7 k* @' G$ [ h: U& v5 B * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------/ X( Q$ n. O% s/ }. u4 Y
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)& a( K$ G# C9 W1 }+ B2 g
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------. U% A- P9 w- w ^% y, @4 q
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
* H( `, U( Y; d& a7 o */
8 O4 z- S+ [4 l2 z0 t4 g* c
1 N% |. a" \" y4 f# q# k8 Zvar SR_0 = {
+ n0 j X" E# K( _1 M name: "SR_0", space: "data", access: "RWX",1 h" C- Z8 d+ |; Z" N! I
base: 0xC2000000, len: 0x10000,* W$ A7 J) k: L0 i
comment: "SR#0 Memory (64 KB)"8 X |& c9 O" U$ n |/ y6 z4 L4 {
};1 X3 a/ T8 [: x0 O9 G6 k% }9 o, o
0 j8 |: i' i8 ]* Wvar SR_1 = {
! Y! V O; q5 F! b: V9 U5 F name: "SR_1", space: "data", access: "RWX",( E. }% v6 u: i) c: J
base: 0xC2010000, len: 0x20000,# J! q7 p9 W( L/ m
comment: "SR#1 Memory (128 KB)"& [, s5 ]" N% U- v+ F
};
. k+ l! a- P6 M0 d, U6 Z3 Q+ H0 J3 l
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {! M0 J- ]/ [% N& Q% E
externalMemoryMap: [' x6 f& {3 h5 k
[ SR_0.name, SR_0 ],9 a. S6 K( @. U# M# X9 R/ N% a* k
[ SR_1.name, SR_1 ],8 A% \9 b- u' C& T5 h
[ "DSP_PROG", {
" {9 t: y5 A, U! p name: "DSP_PROG", space: "code/data", access: "RWX",2 r$ K2 X9 l! c' I+ W
base: 0xC2100000, len: 0x1E00000,7 V( L& M( c; Q$ v1 j: T
comment: "DSP Program Memory (31 MB)"5 G: `8 p/ O% [
}]
5 X6 r0 i, e3 K ],
. r) r& J8 L9 f$ @ G0 v2 \ codeMemory: "DSP_PROG",
4 ]: M$ P" |& ], a/ I7 R$ a dataMemory: "DSP_PROG",
! T/ a! g' g" _ stackMemory: "DSP_PROG",9 f' R, y5 @1 u+ }, q3 j
l1DMode: "32k",
) N! F5 L. P2 H2 ?& @8 o6 v+ U3 X l1PMode: "32k",* C5 w) u" L4 B( @# H$ |
l2Mode: "64k"
h! U( A' r! f9 v: v};; H' Z _/ z( j* z' |! O4 h, w3 `
" H+ |8 S& W( c/*$ E3 y" n) K' i7 m0 r/ t
* ======== ti.targets.elf.C674 ========
* M5 U, r9 X/ B& r! y/ I */
# T9 D+ T* l4 T/ \3 s4 `1 Uvar C674 = xdc.useModule('ti.targets.elf.C674');$ x& c* s! {7 {4 Z7 |& J9 @+ f! }5 `( }
C674.ccOpts.suffix += " -mi10 -mo ";
: _+ w9 g; u' u# I. QBuild.targets.$add(C674);
2 V' B# S' ^& e8 Z
! }9 p5 Z( Q% C: c6 r
. H/ N+ C5 H( C4 R5 M====================& z! { H* ], L8 a8 e4 Y1 o
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。8 O0 O" J' v0 T/ v( W3 e% j
|
|