|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
+ t3 H5 g& i; M! E 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
: k+ F' V4 K# u0 X( W& a& G
9 q; q7 N, Z* c' I/*
( R- l+ n" {% Q1 G" H* o/ f * ======== config.bld ========% `! w3 S2 {. ?9 }2 I) _/ L
*
! }, B6 E3 w( j# \7 n8 m */! g2 y1 k) J3 D0 l( E3 |: C
" R9 m5 x2 d" ?4 F+ p0 O$ s0 ?2 g# T
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
( B, a; O% x% Y( r$ _: D8 y
" G2 b( o0 N1 B$ B" J J/* Memory Map for ti.platforms.evmOMAPL138( ~2 |( \$ M* P) m# @$ P
*/ Z; {. i" d; M9 a/ ^. h& ^; Y
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory; m7 u6 z( X# f3 |, W) N9 [. ?/ y
* ------------------------------------------------------------------------
' a0 O( P5 U) U9 p * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
& a! j. j- R/ S * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)) s# V" J$ R7 } n( }+ h+ Q: D
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
( c6 z; q/ z! \0 m * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
! h4 Y: [! T5 f3 S * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)% F$ F& W* }/ Y, o' f
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
k V6 K9 m2 ~7 U * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
$ O2 x, |! l# ?8 o: V: S, E/ E+ y */" q( n& ~% X6 t! E/ [+ v0 w
: N6 M; n& \" n
var SR_0 = {
& w I, Q+ c v, U name: "SR_0", space: "data", access: "RWX",1 N* l) A0 v+ p1 l" F- V+ b
base: 0xC2000000, len: 0x10000,
1 o5 Z2 h& f$ G. e5 V& r comment: "SR#0 Memory (64 KB)"$ s5 N; U' D! o/ \
};
& c8 s& Z! p7 y- A* k+ @- @3 L) k* `4 h% n" O* \
var SR_1 = {
0 E/ a s' T) e. E name: "SR_1", space: "data", access: "RWX",
2 D4 w# f3 x T base: 0xC2010000, len: 0x20000,' d) |3 `2 s8 O7 J
comment: "SR#1 Memory (128 KB)"
6 m* p0 u* @/ h7 j6 I };; p, n. E' [( `" N6 O6 A! w, S" G
) j: n3 [& e; w/ A9 E
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
' T0 L2 ~) U4 L9 x4 E- W7 T3 ] externalMemoryMap: [% f7 k& A6 D( h; l1 h5 R- W
[ SR_0.name, SR_0 ],
1 G/ u6 e7 C/ l( E6 v- G' s [ SR_1.name, SR_1 ],
3 K F! { p4 K2 F3 q$ ]' [ [ "DSP_PROG", {
0 {9 [( M7 X% E* o5 Q: X, ^ name: "DSP_PROG", space: "code/data", access: "RWX",
: N' T( K# g- E0 P: s& D base: 0xC2100000, len: 0x1E00000,, Q( x/ U; l1 y. B
comment: "DSP Program Memory (31 MB)". q$ n; h4 q: o' s! J2 K
}]2 l# [( }; ]* P5 }. V5 e& m
],' B- n( s: u+ v8 j: E
codeMemory: "DSP_PROG",
% W; c7 G$ O, V" ]/ n dataMemory: "DSP_PROG",. D/ j( c' q( j) O0 R1 F# ~
stackMemory: "DSP_PROG",6 @& h" M9 K& W) ~! H+ j6 l
l1DMode: "32k",- Y3 _# Y) {* x
l1PMode: "32k",
% F# d& V% L- i* K l2Mode: "64k"- ?/ `' |8 |, p: `- {5 r' M4 ?
};+ p R0 L$ h8 y6 a* g$ j& C D) R2 T2 |
W- l4 U/ ^2 ?$ u- v* Y. ^/*
4 Y! h, f4 v5 ?4 V( L8 ?8 S4 q: k * ======== ti.targets.elf.C674 ========
. Q! f& E5 b" R */
3 X0 r8 V, a" s. k* n Tvar C674 = xdc.useModule('ti.targets.elf.C674');4 _- ^: v: G4 J* k, @4 m
C674.ccOpts.suffix += " -mi10 -mo ";
3 g- d9 R1 H9 D c5 l1 XBuild.targets.$add(C674);
8 i3 f ~. H: S4 U! z" k) B& E9 b. N: c5 z2 v0 Q+ H
0 }' A" g V- Z* I" F$ @% _; q====================
3 O- n; _/ t, M! K原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
: a* Q8 s) o& b6 _ |
|