|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。1 D6 l1 {4 N2 N+ p9 Y
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
) r% y: _. W' {% `) p: F3 T) X
* t+ _) B' D- P3 v6 k/*
! W$ H6 i5 g5 K * ======== config.bld ========
! s7 Q& c: j" ^7 P *8 c/ p8 q$ P: t! q% |
*/ d5 o N5 O1 @) M- l* F
* _6 O n/ G+ u0 N0 d8 H2 L
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
/ M2 O3 [! u7 @* i8 j/ }& H: }' U
4 e! N4 L* t! J2 w& N/* Memory Map for ti.platforms.evmOMAPL138% H4 S; \9 v+ |# I; S5 P" z
*
% ^# y. s' ]4 C * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory ?0 r! g; a# I
* ------------------------------------------------------------------------/ E2 z) y+ P8 M' A: g5 S. G: e
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux& H/ `6 M( J2 T8 k
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc). w" {) ^! y% M: Q( S
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
! ^5 [3 |# M5 ~) K * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------. R$ g& V. p6 y D
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)9 T0 I- C8 H3 Z8 g: J
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------, E' h. D& d' f! Z: o- @( A& ~0 @
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux* V: V. q2 | l! f9 f
*/0 T8 t; p: p( q @. I: g) Q
$ B8 O7 v, e% \) x7 F- {. y
var SR_0 = {
) x% W7 ]/ A, W name: "SR_0", space: "data", access: "RWX",$ |0 \. @7 W) d7 M: {
base: 0xC2000000, len: 0x10000,
: Z) Z5 O6 O) G6 y comment: "SR#0 Memory (64 KB)"4 t, F( D; [2 h7 R# N" r' v! c# `
};
* k- w: j; M; h$ q
0 D( }1 p. d7 |1 E/ H$ x: \var SR_1 = {& X+ S; a* @7 U3 [6 b$ a: d! T
name: "SR_1", space: "data", access: "RWX",9 R" h1 u3 _9 H. N" l, A
base: 0xC2010000, len: 0x20000,6 c+ g7 [/ \" g+ E7 h( z
comment: "SR#1 Memory (128 KB)"5 J3 o, A; }& s4 i7 y
};; J0 m' N3 w0 V8 G# }
% K3 t9 ~" m* d" M' Q& }# l5 yBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {4 o; ^2 Q: d3 R* C% s
externalMemoryMap: [
5 t ~' K6 L+ A& J, \4 q [ SR_0.name, SR_0 ],1 N0 J4 g+ j* ]+ J. f. o( s) H
[ SR_1.name, SR_1 ],
k% A q1 Z I+ c$ v [ "DSP_PROG", {
% U+ M. Z2 n2 O$ X( j/ ~ name: "DSP_PROG", space: "code/data", access: "RWX",$ w0 L1 x% s8 B
base: 0xC2100000, len: 0x1E00000,
2 N6 \) }" n0 \; p9 c comment: "DSP Program Memory (31 MB)"
) c% s1 J7 o l4 Y }]
- O, n; t7 g$ Z* M; L$ ?2 f$ p3 e ],; x0 [$ N4 l1 {4 B9 A5 D+ k
codeMemory: "DSP_PROG",% m6 @0 C! T1 F3 F- g
dataMemory: "DSP_PROG",& O6 U" k. o7 t) b" F+ ~: l
stackMemory: "DSP_PROG",( J3 R5 ~) d0 K* W. ^5 @ D$ k
l1DMode: "32k",9 A: G ]5 w' |' O
l1PMode: "32k",
" P$ \. f* X8 I$ B: R3 z, o/ j l2Mode: "64k"
" m& w, F* K# }5 i8 m7 X7 _7 b};
, S3 z8 E: r. ?5 z8 i8 X$ m% L2 n' ]; J- ~ T& p2 ]% w1 X0 y* v& l& D
/*8 I& Y1 R+ [+ b2 T
* ======== ti.targets.elf.C674 ========
|4 o$ A3 l5 h' }5 {, z */# I/ f R. W% q
var C674 = xdc.useModule('ti.targets.elf.C674');
/ m. {/ k/ |: y8 `" p% jC674.ccOpts.suffix += " -mi10 -mo ";- z& {% a$ _/ D; ?4 S/ j
Build.targets.$add(C674);( q% h w* p# E. \7 r: G! F% t
7 H/ ]7 o! Z* I" L
* h/ C5 s4 t6 i# v% V4 Q5 ]====================1 d; F7 \2 e2 F+ \0 {* V
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
, E5 T2 s: W. R! K/ g" ]$ f |
|