|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。0 y# |( H; T$ f5 P8 i' ?' @
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:6 w: C) @9 G6 u y! y$ m: `
* T/ `: K) T5 N& \
/*
# ~- L# d$ D3 X0 w; S# }' D * ======== config.bld ========& L, X5 x, Z# R9 E9 t: \
*$ r& _. O& _9 f' H) | a' V
*/. {: e4 Z- _: B4 ^, U- a
" N+ j2 C( q$ B b7 b' O2 fvar Build = xdc.useModule('xdc.bld.BuildEnvironment');
1 _) e$ a1 A' J/ i4 S" S. B# `* j+ L4 o6 C& `2 U" @
/* Memory Map for ti.platforms.evmOMAPL138% R5 o( S! R. i5 l9 J4 y/ |
*
7 m: R# M! d$ w' U% P+ d" K * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory! h) F- [ x$ L- u2 [) c
* ------------------------------------------------------------------------
7 |4 z) m e2 L9 f W' K * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
/ V" T1 f. p: X3 k5 S8 X * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
8 Z) Z) A- U- W' F M* C7 Y- [ K * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
' N* e- S- X* g h5 _/ I! m% t * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) -------- B% j3 P1 i% V( }( v
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)) H- a$ r% D* N2 Q. ~: ~% \4 v: B
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------- {: L" W7 a, [* t) I
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux+ k# n6 q' V5 q2 V& Q
*/! ]) C2 r4 w4 A8 e) U, g
0 `/ J/ `/ Q- u) o& e
var SR_0 = { R) [$ d. A! e
name: "SR_0", space: "data", access: "RWX",
' T1 R3 u; V+ L+ R8 ^ base: 0xC2000000, len: 0x10000,% q+ J9 q o! @( F( W0 M8 e. Y
comment: "SR#0 Memory (64 KB)"& q, V4 s7 c! ~. z8 M& v% z
};
5 Q: V+ V' Y' A( d n6 p
4 L F7 h0 y- M/ r. u. ~var SR_1 = {( _, V5 \" ^) _
name: "SR_1", space: "data", access: "RWX",
. A% S# N1 h7 H+ Q- z; p base: 0xC2010000, len: 0x20000,
2 s7 |6 G8 c2 u3 o( i Q( A6 W comment: "SR#1 Memory (128 KB)"
' i5 [# |3 f* y# r! J };/ Z# P4 `7 }. K
4 o/ n4 k; Y% Z2 EBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
) y0 j5 A, ?4 Y/ K- X1 r3 V5 T" ?. v externalMemoryMap: [8 L% S# S& ~' U( G* Y' X' Z
[ SR_0.name, SR_0 ],! S& u' i/ K7 g5 R' T1 ^5 i
[ SR_1.name, SR_1 ],/ f" X0 |6 K& }6 W, x
[ "DSP_PROG", {* t0 A0 i E8 X/ t
name: "DSP_PROG", space: "code/data", access: "RWX",9 e- Q8 g! s) X# q, T
base: 0xC2100000, len: 0x1E00000,
6 _5 N- K# S% S2 _' J comment: "DSP Program Memory (31 MB)"* N, O4 j! |) t( l4 T+ C* a* ]
}]4 q" G" z& A& K( a/ ?! u
],
$ ]; M/ I, {+ c3 }/ S codeMemory: "DSP_PROG",! G" ?: o! D9 q- c
dataMemory: "DSP_PROG",9 m4 q) q. Z; u% K! Z* j% G9 r
stackMemory: "DSP_PROG",
0 P7 p: P) u& t- e l1DMode: "32k"," U; k( W m" |+ q% v
l1PMode: "32k",
2 j2 C9 }5 G$ b l2Mode: "64k"
6 N% A* W) r# m5 S! @+ Y5 p};, {! H0 N3 O% Y8 u
1 ]- Y0 Z6 g( b" E/ W+ V5 Q$ @/*
9 [* R, W4 F7 c6 w+ T. _" X3 R * ======== ti.targets.elf.C674 ========
& @* ?5 C' {: x; \. X* L* A */+ o4 Y: j- X N5 [2 F$ l: i
var C674 = xdc.useModule('ti.targets.elf.C674');
! @. N& `) _% v% [( X% JC674.ccOpts.suffix += " -mi10 -mo ";2 Q: g3 @5 B- s& [6 x6 _5 H
Build.targets.$add(C674);
) V$ I$ O! {7 @9 U4 M2 a0 J, Q! _
* d4 |2 W. V) w( T3 C
7 z7 N$ W! h; z====================
7 l; M/ F) z4 _原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
" F' c) l- x1 x% G2 `: D+ E |
|