|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
- _( H' o) l! B/ |; P 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
s5 v9 Y% c' v# i) M" ~! }+ I4 r( f7 d( z! X
/*. k: X" R: J0 z
* ======== config.bld ========/ K8 |6 ~) n7 ~' m" I& U
*: \: H: w0 P- n4 _: M5 j
*/1 W& M4 ^( B$ G2 {; W$ O/ q0 \
& U' x- l3 O$ s: t+ w
var Build = xdc.useModule('xdc.bld.BuildEnvironment');: V; g1 v1 Y7 [2 e" R0 i
# _3 s% ]0 A7 _
/* Memory Map for ti.platforms.evmOMAPL138
/ x2 V+ ]' L4 A5 { *
7 O0 T; y" n+ R B0 c- Y. g * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory* u0 A4 f/ z$ v% |
* ------------------------------------------------------------------------
% ?, e0 j7 n& w- d * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
. C G7 J" D0 B* e * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)2 q" Q0 D: J% D3 I+ k* p
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
1 o: e. g- I% h5 [, p * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------* P) x. T0 V, j7 s" w% f
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)" E$ B4 Z! M: T% {# U
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
+ @: n/ c8 o1 {$ B; e8 A * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
# ]! W; F) P& \, j! t; m8 | */) b, F9 U0 q! I" D' ^; a
. P' S4 s1 T0 x3 b( @- x
var SR_0 = {- x' f0 v8 }- o8 S
name: "SR_0", space: "data", access: "RWX",
' v8 z; C& G8 O7 U base: 0xC2000000, len: 0x10000,
. Y; L+ t U3 y4 P; m- d comment: "SR#0 Memory (64 KB)"
T+ Q* ?' S& G; [ };
9 y" P8 N/ j/ f8 M1 G$ n$ {" q( K5 W# N- P
var SR_1 = {2 n5 K5 T5 b/ I6 ?# ?8 {" C4 {
name: "SR_1", space: "data", access: "RWX",/ H* `2 m3 |6 S5 x* P/ |. c
base: 0xC2010000, len: 0x20000,6 S( e3 P- R' \1 O/ h; v5 `) n
comment: "SR#1 Memory (128 KB)"
% K6 m) [8 ^" I& M };7 {- d0 O) M0 r8 r! ^# V1 Q
+ S# ]' ?0 _4 h; x0 JBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
* u: p( t3 n* W$ q3 r: g* o1 a( X externalMemoryMap: [; a9 p+ W( Z: g4 U/ m
[ SR_0.name, SR_0 ],
0 b7 o7 a6 S0 f3 {6 Y4 M [ SR_1.name, SR_1 ],# |* K! v* Q, s% h
[ "DSP_PROG", {) o! B, D, q( y% f) g. r
name: "DSP_PROG", space: "code/data", access: "RWX",
6 v9 u# u; v8 h' C. `5 s base: 0xC2100000, len: 0x1E00000,/ E& r x$ r' G2 L% }0 u
comment: "DSP Program Memory (31 MB)"0 ?% O+ G9 w) K! D. U
}]: `' n( Q, u% Z8 Y
],! l. A5 g d# C9 U
codeMemory: "DSP_PROG",
/ t6 l/ X, f0 {& f" S9 L& b dataMemory: "DSP_PROG",( K7 T8 Y; _4 ]7 d6 V& P
stackMemory: "DSP_PROG",
. G C, p, t( ~4 ~: v L l1DMode: "32k",
# v- k2 D" T" ^ g l1PMode: "32k",
X! i5 K% b, r3 q! A l2Mode: "64k"5 o2 O; r+ w6 o
};: L; L! ~/ B0 E) J( w
* c+ P; y. L( h6 P/ T! Z/*1 G `9 X' J K; r. i9 z
* ======== ti.targets.elf.C674 ========; z! o( x' m; R/ x. V0 N- K
*/3 t5 C& h& L3 T+ j$ Z, j! {$ m# F8 t9 x
var C674 = xdc.useModule('ti.targets.elf.C674');
0 i# w5 k/ @$ Q+ _, kC674.ccOpts.suffix += " -mi10 -mo ";
6 N2 U+ p- p q1 z4 UBuild.targets.$add(C674); d! N+ q$ i$ r2 w
6 i6 a0 L/ b9 P: [) y' r/ N
9 x. \% u w) e5 @! N====================7 Q/ s8 l+ B/ ~+ k
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
9 N B& K) D- H! V; a |
|