|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
- O( `' n0 V, R 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:, t( v# w' F# t
$ T. \% p, p4 r! E" t# b/*
/ v# c( d4 N4 Y- i * ======== config.bld ========
/ F9 M1 M. l) d. g) F *
8 g* i1 u- G) n3 z' ]6 i4 h */
( K1 g# I2 a6 p3 d" m
$ O, H$ g+ ?2 C- jvar Build = xdc.useModule('xdc.bld.BuildEnvironment');+ W+ _* ]0 O) A' d3 \
. `; c( P v7 n V& a1 w- y
/* Memory Map for ti.platforms.evmOMAPL138
7 H( A U ?% ^& q4 s0 S *7 H2 l, M' `; I. C: y3 `
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory! W& {. y0 d" X; e t3 t# k# i
* ------------------------------------------------------------------------$ I6 q6 d( r8 U+ f# F2 b
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux3 D; W- ?/ a0 P
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
3 y+ |% |, J9 b1 R3 c * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)& F1 d8 Z/ _0 k: q
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------. z5 r( t0 `# ^, ?% \' H* ^5 \: ^7 @
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)0 U" _; F& S$ a! N9 }0 K* F: z
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
9 g+ Z9 m) y9 }+ w& h * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux8 @, ?' ]4 O) _) b% n' E& o
*/: ~" I/ o) f) P5 [# \/ ^% r6 L3 ]/ ^
1 w+ X& K/ V9 I0 h! L/ u% Xvar SR_0 = {
7 g7 V& a- `$ } name: "SR_0", space: "data", access: "RWX",
! e6 a A+ T6 ?) E# j. Y base: 0xC2000000, len: 0x10000,
$ M g! ~/ p/ }, X% T comment: "SR#0 Memory (64 KB)"* R" L6 h" v. g9 N' t
};/ ^% J% e& M* ` V
0 W8 J$ g8 O9 ^$ e7 Pvar SR_1 = {
4 R% |7 D! Y% C7 ]) |0 F+ z" P name: "SR_1", space: "data", access: "RWX",
- T* L8 [& ?0 }' O2 |/ @% V. S base: 0xC2010000, len: 0x20000,
* \9 Y% k9 s# d% ]8 w7 g8 Z+ y4 j comment: "SR#1 Memory (128 KB)"2 f. w h: ^8 ^
};
# ]+ Z9 l+ P/ A: b) t8 T+ d- U' v3 z+ f
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
# p; z1 @/ ?, w2 o+ c, |" g9 f- V externalMemoryMap: [
' X9 D5 w5 G" b" v: N [ SR_0.name, SR_0 ],
+ r' k: T, C& I) Z [ SR_1.name, SR_1 ],
$ R' L) \3 j" Y7 j [ "DSP_PROG", {) O9 | y' i+ b( E
name: "DSP_PROG", space: "code/data", access: "RWX",
3 U0 u+ }$ ]8 T, B! y( [ base: 0xC2100000, len: 0x1E00000,
( G" e+ m3 q7 _: L; E" i comment: "DSP Program Memory (31 MB)"
& z1 k6 a4 |# v0 `- y! \ }]
" N' N; N' i/ t3 I! D ],: m- C' h2 H' k* Q# i7 T+ p
codeMemory: "DSP_PROG",& h5 ?! Y9 d& n) \5 m
dataMemory: "DSP_PROG",6 d$ z' b# V9 b) X$ x
stackMemory: "DSP_PROG",
/ `2 O' R$ X1 f% n% l. v l1DMode: "32k",
+ R9 {/ n: N3 o/ p l1PMode: "32k",. k P2 a: A$ b4 s9 \- r, R
l2Mode: "64k"9 {1 `) z% z) [& x2 W
};+ j( q' S- K* L0 S; _# A
; j$ Q; }, V: _
/*' @; |4 Y' h$ q5 B& e' j' E
* ======== ti.targets.elf.C674 ========& P* _3 A B& t" U( {; x
*/
$ W7 U6 ~( H2 o- |& rvar C674 = xdc.useModule('ti.targets.elf.C674');
# O& N# G, ^! e0 j7 vC674.ccOpts.suffix += " -mi10 -mo ";
' h/ H: ~+ F" H0 ~Build.targets.$add(C674);- K( M7 b. | p; M
& Y# t A2 \2 `( z5 Q4 F6 r; \' f5 T2 f0 Z9 l4 a( r
====================
/ E! l" h" y+ H# k原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。3 m6 ?& x& C2 ^- C: Z/ l/ h9 g( Y
|
|