|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
% Y* L. Q9 J- X5 h d 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
1 ]. ?% l3 t6 v) ^0 U) _1 F
0 U6 d9 v/ b* N1 ?/*8 `% C* i _2 N2 ?2 R6 j' T4 _
* ======== config.bld ========- h0 E- U, a5 O6 k+ o# V+ ^. @
*& `" W4 f1 \ H3 q2 r7 V
*/: Q: Q& ]7 y; M# X
& o1 M6 i( Q9 k! \# Y9 K
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
$ }7 ~" Z7 [& s; O( ~9 R" z8 a% J' v ?- S6 n U& V
/* Memory Map for ti.platforms.evmOMAPL1389 T, ]( G) Q0 [( f: p1 }
*! `+ r2 d: g7 Y. Z
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
+ m! l3 f) N1 e& m4 z, m * ------------------------------------------------------------------------4 ?& |) Y. G4 A/ n0 ?% I/ R |3 {
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
! C& r. G$ |6 L# N * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)% W2 z- B: e3 g
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
6 o/ o9 K9 D: N6 {( L4 w * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
, q" p L: y4 @ X# J$ e- T * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)7 `0 B9 J# Z s2 M; X0 j5 b) c
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------- n7 t! F. y1 M$ m& n D
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
G* P# Z, M! H9 \3 {; L9 _8 u */4 k" F% [! P& y9 W6 C8 u1 K( ^
6 n$ I3 K9 R; ^- Qvar SR_0 = {9 v5 u; P, r- M9 w8 g) \! g/ F! n" N+ a
name: "SR_0", space: "data", access: "RWX",4 V0 ?$ o/ d7 e' R8 w2 L
base: 0xC2000000, len: 0x10000,; A: N) h. r% C6 \ v
comment: "SR#0 Memory (64 KB)"
9 c+ a1 ]# Y8 Z: w9 J& G" k };
) x! |- _: Q1 r* C$ l$ J% E6 H2 o) z* w ^3 N) A
var SR_1 = {
8 `9 {) Z- w1 e; F- p. O6 G3 b$ q. U name: "SR_1", space: "data", access: "RWX",9 M$ y* \4 T3 a1 m0 r# c
base: 0xC2010000, len: 0x20000,
2 e# |* t% D& y comment: "SR#1 Memory (128 KB)", \4 u! x6 h9 L' Z, s( r- V& n
};: O' n9 r, Q: z' Q/ p: d
& q8 u( z" \& Y8 ?% xBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
( B* \5 h; n$ b' e8 {; [1 T externalMemoryMap: [8 Q2 l0 f* v0 D4 a, B7 `
[ SR_0.name, SR_0 ],
' F4 F9 d! G4 \! i! U2 K& q( w- Z [ SR_1.name, SR_1 ],! o: F3 t8 z9 z* D$ b+ K0 \
[ "DSP_PROG", {
/ y2 J! m! Y; u3 l name: "DSP_PROG", space: "code/data", access: "RWX",
5 L, E" A$ Q) I) {2 u1 i; t base: 0xC2100000, len: 0x1E00000,
+ f: R( Z# |; Q5 M# i( ?1 c comment: "DSP Program Memory (31 MB)", F* r+ ]3 L+ }6 \5 X1 D [
}]+ |$ f. ^: f8 k& q3 a# q' p
],' L( i( M( t# S. f7 E2 C
codeMemory: "DSP_PROG",
- N% q! `1 A# @: ~0 y1 b3 P dataMemory: "DSP_PROG",4 F' ?# w: W( S/ I
stackMemory: "DSP_PROG",
4 j& {' }4 @$ ~3 i2 a# J8 ^ l1DMode: "32k",
0 ?4 _0 f- t: r/ }* m8 }6 Q l1PMode: "32k",7 ^3 q/ c1 J/ `: H) W- u
l2Mode: "64k"
+ N8 V) y! e8 P9 A) A' H1 \. K};
5 d3 n% a: O8 [
' R4 u8 `3 Q3 `& N; ^" f/*# ^* y4 A' H) e) `5 N1 n
* ======== ti.targets.elf.C674 ========7 w S# Y2 ^: d0 E
*/
8 d$ c. B- c: A8 Q4 hvar C674 = xdc.useModule('ti.targets.elf.C674');) h) Y; W2 B: z5 a' ^4 c* I/ F
C674.ccOpts.suffix += " -mi10 -mo ";
9 ~! \' M& I4 A; BBuild.targets.$add(C674);$ v; n) z0 a! p( u
- s0 n; P7 ^- ^( A: \% ^1 V. E
4 {3 I. t0 |; o! C4 a====================# h$ T9 k5 H* u( [% i1 L
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。3 G7 v) E; o. q) e) x8 ^
|
|