|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。0 ~& h7 |+ s8 a( {
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下: |; Q3 K! G4 ?3 Z% A
' S& V9 U$ Q+ W6 G* e$ n
/*
2 N( ^: ~ S9 P: O9 K * ======== config.bld ========
4 k8 _. G9 e: O& }, q *
. q) w# z5 M- \8 D; S1 u ? */
; I% C7 m: c5 a7 u( a. M: q3 p0 g( j }
var Build = xdc.useModule('xdc.bld.BuildEnvironment');" F+ ^3 y' p) s1 H1 Q
! `. G8 ?) ?! n& F7 L. c: W
/* Memory Map for ti.platforms.evmOMAPL138
/ p3 _' V" [/ \. N! ~2 ~5 b *
: f: \ A( R( ]: g8 z * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory9 W9 C( [7 T4 b/ S+ C8 ?
* ------------------------------------------------------------------------) g) H! t3 f# _9 H/ E5 P( H
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
^0 w* s+ b. B * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)3 {3 i4 g9 K9 k4 V
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
/ U% Z6 `$ l" @$ m" A * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) -------- O7 e3 T3 E9 j. C
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
9 I8 t7 d9 v4 h2 r& x- A * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------0 N1 F4 Q" w% {" h! q [+ Z, d
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
2 F$ I/ O, j/ k- o9 T) k4 j o */
- T t4 f n; R/ [+ Q" g; J
# a" Q+ h) r* k- }/ f" Fvar SR_0 = {9 R c4 U( v0 F. l$ T
name: "SR_0", space: "data", access: "RWX",; G/ Z5 A- N$ s, k
base: 0xC2000000, len: 0x10000,
. H1 F' y- W$ i9 q3 X3 @) q comment: "SR#0 Memory (64 KB)"/ m+ m! F# @$ R- r$ `( S! a/ i
};
7 K# ?6 F( f# t9 r7 B- B7 q1 P7 u p* M5 v% l3 _. T/ X
var SR_1 = {
( f7 @3 o* B5 y/ t name: "SR_1", space: "data", access: "RWX",
6 F$ K$ A ^: t, A0 r% {% u5 m& F base: 0xC2010000, len: 0x20000,7 s# [ g9 i8 R5 i# |
comment: "SR#1 Memory (128 KB)"7 w- f8 Y3 p. w" y+ l2 L9 J) Y f
};
. i+ ?! q+ i+ y, c
. X5 w2 ^! R) H4 h# ^: {; eBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
+ w3 D8 E: I$ A6 P3 T. E3 d( k externalMemoryMap: [' g% q) \, P; D; r: Q) j% c* l4 t7 Z
[ SR_0.name, SR_0 ],
5 r& |. t$ h& \3 Z7 l [ SR_1.name, SR_1 ]," b& o4 M* v( N2 D
[ "DSP_PROG", {
3 @1 e# x% }& P- b0 Y& B0 u! |; N+ H name: "DSP_PROG", space: "code/data", access: "RWX",/ r9 e! O4 z* c K
base: 0xC2100000, len: 0x1E00000,& ]. n! Q5 c/ ^, }+ Q% y
comment: "DSP Program Memory (31 MB)"; ~, v% C) ]1 A% x
}]
: Y1 V, L3 n: B$ y ],
$ }1 {) k2 D( d! W* F1 \# U& v codeMemory: "DSP_PROG",, `; P- D5 T k5 y) { Z
dataMemory: "DSP_PROG",. }4 y" h/ w* ]9 i- I' ]
stackMemory: "DSP_PROG",
% j& `" w/ m, Y3 u7 q! u, L l1DMode: "32k",% ?5 {7 O2 W8 d8 ~1 Q
l1PMode: "32k",
- X9 u. s; R1 t$ F3 X$ I l2Mode: "64k"$ w2 v' `9 S, a% i3 r
};
1 Z. _3 x/ d- b! U# b
3 e8 M& c1 U, r. D/*
& [( B! P! l0 ~! F) `0 L+ K * ======== ti.targets.elf.C674 ========& H0 O4 m8 q& ^
*/0 B2 b* n' V4 {1 X) K# _+ \2 _
var C674 = xdc.useModule('ti.targets.elf.C674');
& ?) V$ ^4 d" c4 q) h% a3 fC674.ccOpts.suffix += " -mi10 -mo ";9 U2 `8 t- y# U: m n6 ~; m
Build.targets.$add(C674);, y$ c* j" b: z
+ H8 a. \8 R( _: I# O( g/ h& f4 V. N3 d# y j
====================2 t; c* O- b: p6 f0 T A8 d
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
! ]( g3 p8 k- `' m. {2 V$ _2 c |
|