|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。- ~+ Z5 D, \/ a- P% j7 s6 K3 R% j
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
3 H; {' U7 o, ]* a% x; _& j# U* }8 m7 s( C! D- F3 ^
/*& }2 p; y; F2 y5 s, }( t v6 ?" c5 Z
* ======== config.bld ========
; h) c: C9 U3 `8 q *2 E5 e- F# s; M) V j& y, l. m) T
*/' u$ Q: u( O; l) }3 e9 R
# X c2 t8 k" fvar Build = xdc.useModule('xdc.bld.BuildEnvironment');9 `; _9 i! a0 Y+ c0 ^ }- W
( d' A! N* C# n' [" \/* Memory Map for ti.platforms.evmOMAPL138
~! P* G( W7 O. ?7 }7 _ *9 v( S3 h1 X$ P
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
+ v/ t: I( o) c * ------------------------------------------------------------------------2 O$ _+ W& @# F% a7 }' H
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
: D8 ~3 D9 Z0 _, G& R) y/ Q S * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
. y7 p4 [7 j9 m * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
& K, Y3 D! c& ?/ ?2 N * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------' _# i0 |3 }* ^+ e! a5 H
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data); n& J6 D* @& {4 [4 _2 E
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
) K& ^, C0 r- B) b" I) [ * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux. b0 q" F. b- ~* i
*/
7 j6 M1 ]6 |3 s Q4 u: v) |, `# d' H
9 M7 _+ |5 T! {& {# U, qvar SR_0 = {
0 R" |1 X# U+ }: ]4 ^3 z* n: f name: "SR_0", space: "data", access: "RWX",
. l* d) ~! V; p base: 0xC2000000, len: 0x10000,
# l. S0 Q9 V4 q comment: "SR#0 Memory (64 KB)"# |# x2 q/ c0 H; b- |7 T6 s* i$ T
}; w$ }) i) J, m, w4 N& R
* @. j0 }- r; ]4 Z: \var SR_1 = {
7 d$ s/ i0 P6 O. h, C7 c name: "SR_1", space: "data", access: "RWX",) G8 U4 p# C5 S
base: 0xC2010000, len: 0x20000,. i! @8 I; i! p% I( Y
comment: "SR#1 Memory (128 KB)"
5 w z j2 m5 Y) B8 |7 f1 O; H };% `4 h1 x5 Y" M7 U$ k: s' G& B
" g8 o4 O; Y0 |# k
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {% T" w, v6 Q# D1 K0 R
externalMemoryMap: [
: c$ a$ \) F4 G+ b3 b; h9 H% n [ SR_0.name, SR_0 ],
% m7 b: H+ m1 H/ U% l [ SR_1.name, SR_1 ],
$ Z9 y8 y5 ~* i+ G! W. v) R$ | [ "DSP_PROG", {0 t! _' h. n% G$ v3 O8 H
name: "DSP_PROG", space: "code/data", access: "RWX",, }6 W* r) r: J
base: 0xC2100000, len: 0x1E00000, ^$ Q9 Q5 ?; t+ c" R- W [
comment: "DSP Program Memory (31 MB)"4 l9 r" u+ V+ r* U, W \4 x" p
}]5 Z1 ^* t5 a4 C; F4 y
],
+ f# L! _ D5 }/ r codeMemory: "DSP_PROG",; `$ M( T2 ]9 W; T
dataMemory: "DSP_PROG",
3 L G# F& ^) B$ ^3 J stackMemory: "DSP_PROG",
2 N# p# y7 a7 w6 m l1DMode: "32k",* m: f3 g$ k' @+ k* Q
l1PMode: "32k",0 `9 p6 r0 c* S( B" |* m
l2Mode: "64k"
0 i" W8 b P0 W3 y};
+ g3 f8 Y% h! J- A% z( W/ m: t8 c0 d7 N5 `7 |( ]! J2 |
/*
, x9 i t) s, y/ D) A+ ^ * ======== ti.targets.elf.C674 ========# y) d0 ~( s4 F( B, i6 M1 x) G
*/5 k; H) I7 Q% g' ]. a5 ?5 @0 m
var C674 = xdc.useModule('ti.targets.elf.C674');1 N3 Z/ _* Y; H4 B2 o) \6 W
C674.ccOpts.suffix += " -mi10 -mo ";
9 y; D9 B0 t/ X+ JBuild.targets.$add(C674);; D" _* a U" p9 Q0 _
5 `, k0 [/ S* i4 J
- T% d- _$ e% Q) |# o9 H: X====================
3 ^% Z5 J" R' b& M9 |9 T( T. e原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。, Z+ C( ^) P. r6 c
|
|