|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
/ @. k8 r0 D7 Z) s; I5 f 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
% B4 m, `: a; K& f g9 k# g
2 {! x, ]/ H7 v2 X9 S6 ~/*' L! d9 l6 H# k# o7 s
* ======== config.bld ========0 G: h/ Z5 e: }7 s
*
5 ^0 c1 O9 p* w- S. v8 t */
$ j" f; f* [5 C/ k; y
! i2 s$ r% L: T, ivar Build = xdc.useModule('xdc.bld.BuildEnvironment');
9 {3 r7 L; E5 h8 S0 }$ t3 }! n) Q& l8 A6 g2 G. e, e( c' c
/* Memory Map for ti.platforms.evmOMAPL138
3 _- V+ o- n1 A2 A# g, G *
) A6 ^0 w2 u0 F* K. ^ * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
! {, s: X( _ \- a9 E0 F2 V0 { * ------------------------------------------------------------------------
5 R& K+ f: ~2 {) n+ U" n2 @3 _7 ? * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
' c" a# E, |# u; W+ R) o * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
1 D; w1 f4 T; ?# I" u! Z * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers), f& ^, z+ z( G! y
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------1 u3 A& }( u0 V g
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
+ w# G) z$ U+ A$ ~4 v) v * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) -------- f4 y. M3 B K: G" h; g! ~8 Z8 t
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux+ [# G% L3 u0 t& e: I0 M7 ?
*/) ?6 |" c8 e$ v$ s* C
/ [- q9 _% ]/ Y& T* V7 Bvar SR_0 = {+ N8 z: q+ X* x6 ]: \
name: "SR_0", space: "data", access: "RWX",
- I8 e u; \' @3 X% h5 Y base: 0xC2000000, len: 0x10000,/ z& P' E+ k9 v6 P) H
comment: "SR#0 Memory (64 KB)"
' v7 e5 s; { F- v: O7 L };
$ W; g# ]% V# C+ g+ b
$ B# h, X1 [9 j9 J8 k9 @* dvar SR_1 = {
* l x% ^+ a6 p' j" a7 U name: "SR_1", space: "data", access: "RWX",
0 h1 L- f+ N1 a/ m$ K base: 0xC2010000, len: 0x20000,
+ k) i' ]/ x) W/ M comment: "SR#1 Memory (128 KB)"& O) w4 w9 T, D! B/ B- |7 v
};! b4 L1 H( z7 P* t) Q
/ X" d. A# E9 i/ b I
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {+ O1 q" C$ V5 {
externalMemoryMap: [
$ x5 y! L% Q4 m& Q [ SR_0.name, SR_0 ],# n+ J4 Y& T. O3 ^ y, P
[ SR_1.name, SR_1 ],
) {5 |: ?$ I" D! ^ [ "DSP_PROG", {7 d5 ^! B1 ]. h+ r$ U$ T
name: "DSP_PROG", space: "code/data", access: "RWX",/ _+ k( p. U6 N( E0 v5 C* N4 _% m
base: 0xC2100000, len: 0x1E00000,
5 a5 x$ a( y* f. A. H comment: "DSP Program Memory (31 MB)"9 O$ b& I2 |& O
}]
4 G& u1 q: r7 \# A$ s- C3 O1 t ],
& h( |1 B% u& [. k; V& M' s3 R codeMemory: "DSP_PROG",, u7 }7 k5 k" q) J! N" v
dataMemory: "DSP_PROG",7 m& H$ `3 @6 _$ F+ W) v
stackMemory: "DSP_PROG",
2 i# r" P7 k& N" O3 a l1DMode: "32k",
% `3 Q4 P+ F- [ o% _ l1PMode: "32k",- S9 ^( W% t3 A3 p ?
l2Mode: "64k"
8 W' \* @' v9 D3 y4 o};& S: W, W0 D) p8 G3 H w8 Z
- I( r8 P _! G) h \( p. j
/*
2 C7 n# O& ?+ O3 a: J2 v: N! g * ======== ti.targets.elf.C674 ========
& |5 v0 _0 X8 C */
, P5 A) y2 D4 mvar C674 = xdc.useModule('ti.targets.elf.C674');
. H2 m3 N- x# B1 `0 t2 A5 fC674.ccOpts.suffix += " -mi10 -mo ";; I! }* A+ i( {# X; J9 W9 r
Build.targets.$add(C674);
$ c, E& a4 ~! L3 b& _8 t
& o4 d$ @# f5 b9 b- @) v
+ G; q( o% p, H! s* F9 T====================- P) Y6 r n6 U) c# ^/ c
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。+ A- {$ t, ]4 A' M( Z. W
|
|