|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。0 L& `5 i& i6 U7 G
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
8 R% |8 M$ ?* A8 s% K2 f2 U8 P4 A( X% d( x+ `- N
/*
. @% G+ C3 e; M * ======== config.bld ========) c6 d7 Q* _# x) t! y m
*
w. w0 j( k6 U2 o */. F3 X" i8 A1 j0 n# O" f
$ i+ ~/ \8 l1 i& hvar Build = xdc.useModule('xdc.bld.BuildEnvironment');
) s$ {8 E+ I |' A: p( u' ?" _- N7 K3 r- C
/* Memory Map for ti.platforms.evmOMAPL138
7 ~0 j$ G; ?6 I9 i+ g: g *3 o2 P9 R) ^# S5 x9 G4 w
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
$ h- J2 o& B7 \/ c! s# _3 J * ------------------------------------------------------------------------
" P3 C8 {2 F3 d( t& V0 z3 R * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux9 b+ C0 P6 G. O6 l& S
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
0 ~. g' T% r: i* t2 @ * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)9 p) z Q" k! O. C. ^, c, j
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------# q- Z/ i+ H5 Y5 [% S0 r
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
3 `8 o- a' D3 P( }5 f7 \0 G5 G! b * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------# B$ W$ n" l$ O% G3 E7 x e
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux. P+ n! d4 ]& w! ~! C$ ~
*/; |6 S5 K3 J- [
. M: x) Y3 i: [; p! ~$ Ivar SR_0 = {" a$ K1 E1 f2 D8 e) n! y7 m
name: "SR_0", space: "data", access: "RWX",# U1 h% ~, S% n3 |" U8 j
base: 0xC2000000, len: 0x10000,
8 ?0 X* o2 T1 {/ a; R comment: "SR#0 Memory (64 KB)"
$ W8 Q8 P4 B c& e5 @- E) l5 `; j( z };
% x: b, ]0 ?) M( w( k% m& }7 @/ s" Q" u1 V. @2 y" g; h0 m
var SR_1 = {
8 X) c `! \4 B; C( j name: "SR_1", space: "data", access: "RWX",
. f; {) Z- z0 ]8 A base: 0xC2010000, len: 0x20000,
: c. p& A! M9 p7 r! C2 X- ~ comment: "SR#1 Memory (128 KB)"5 S" ]0 h: Q( j4 P O9 {
};& |! m, R2 h: E
& x2 ^- B# A! i* P% G0 G
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = { z" p3 [+ {! ?- f
externalMemoryMap: [
4 R# m2 ]& {6 M% f- u3 W* K# b: b. ^ [ SR_0.name, SR_0 ],
2 u n( d& L+ ^. _3 N [ SR_1.name, SR_1 ],, g) Q' l" Y/ D8 }6 Y
[ "DSP_PROG", {! x3 _+ z( S7 _; n- d* |: t; O* k* W
name: "DSP_PROG", space: "code/data", access: "RWX",
5 p- _: u. \5 Q8 c base: 0xC2100000, len: 0x1E00000,
: ?( p$ ^4 {5 h% D# T comment: "DSP Program Memory (31 MB)". Z+ h; p9 d, u& ~
}]( b) |' {6 A0 x
],
7 j8 ]2 ]" h3 o7 i1 ?1 U ] codeMemory: "DSP_PROG",$ L/ p- c" p8 w5 J: Z
dataMemory: "DSP_PROG",
S3 C, e' \8 }: c0 o) C5 F stackMemory: "DSP_PROG",
. ~- A8 r( x" l l1DMode: "32k",* f* [5 h: W! K. x5 V% |) r5 H
l1PMode: "32k",4 c1 i% m; ]9 x
l2Mode: "64k"8 G! m! E0 |: f6 m! ]* r
};
) \1 p% U2 {6 ]1 \
& Y8 ^& W& U. |/*
$ }) k* R' t' v, T" I * ======== ti.targets.elf.C674 ========8 o; z- H) P* l9 P& R
*/
W2 ^/ P3 f, }4 @6 q6 Avar C674 = xdc.useModule('ti.targets.elf.C674');0 s L$ \+ {" A4 E$ n3 v+ B& |" [3 @
C674.ccOpts.suffix += " -mi10 -mo ";6 U8 b8 r( Z, N4 B/ V
Build.targets.$add(C674);
; X8 N3 v& {4 M, }3 `. C, I7 _
. s+ [. \4 ~! F( Q8 ], d, @$ ^
4 B9 i4 v" s, ]& n====================
. f2 V$ y- P9 x+ Y F, L' _原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。0 X p- y: J2 ~9 k
|
|