|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。: Z/ o, t, @! _) b6 h
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
6 A6 o2 L3 t- U7 L3 d( b4 g
, ]7 z$ a/ r( [, {) f2 H- r, i/ E2 F/*
% }' B# ]6 p/ Y- o * ======== config.bld ========- N i/ ~) ]/ v( O
*8 `& E7 s3 L$ \
*/8 D3 \2 U6 ?; U+ B& g3 r
( U' q' d! D0 y9 Q3 @var Build = xdc.useModule('xdc.bld.BuildEnvironment');
3 K1 M! u! Y4 `. ]# W8 V! z e M
) Z- i0 z* @% t/* Memory Map for ti.platforms.evmOMAPL1385 _! j$ s8 f) L# Z" P. q
*
0 Y8 X/ T, H1 K4 d * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory7 \# W# M2 A" j- A- B# E9 s( a2 Q
* ------------------------------------------------------------------------
$ c- `8 N6 X, B* M' T * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux! z9 ]2 G" V+ x! e2 W
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc). t6 d+ s; G. W; ~0 }: G9 g
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
+ t9 X5 r& {1 G. q% T1 P( d * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
$ o7 {! u2 v G9 M* {. ]3 |" h * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
" L. H ^1 W" `& [ * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
$ c# u ^ C. a * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
. g) ~$ Q: f: D( g */* T# P* O9 [ X3 i [
: V' @4 L+ i3 b
var SR_0 = {6 u' t& E* d- C' l; c1 f; ?* f
name: "SR_0", space: "data", access: "RWX",0 b$ N# ?0 @* g
base: 0xC2000000, len: 0x10000,- b! S( ^; Y6 |
comment: "SR#0 Memory (64 KB)"; Y9 T: M8 k0 y& Q
};0 d/ W8 [: |1 N0 ?; L. W; S5 i
8 p% n( W A% g5 W( @9 ]
var SR_1 = {
: ?. |3 c; O' A% L. m0 g name: "SR_1", space: "data", access: "RWX",% G7 D0 i4 f) t0 z, A6 p3 z: q$ [+ C
base: 0xC2010000, len: 0x20000,- I4 I, c5 J2 C9 H( i3 k
comment: "SR#1 Memory (128 KB)"
) G% o6 _- }& t };
; L+ T. W* \6 H% v7 ]) G+ U. d: p7 C5 B
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {, |7 e- b6 o& l4 ^2 g! G5 |
externalMemoryMap: [
$ i5 J6 g/ N3 i6 g1 h. C& y6 u) H [ SR_0.name, SR_0 ],+ T& ] `, T$ F$ ]) b" W- W
[ SR_1.name, SR_1 ],; m0 I# _: o0 P/ F3 r+ u
[ "DSP_PROG", {, q6 J8 }+ E2 j; \. Y* D; I
name: "DSP_PROG", space: "code/data", access: "RWX",
9 q. ?- B% K% h. Y4 i' c$ q, x% k base: 0xC2100000, len: 0x1E00000,: e$ F9 i# L% B& K1 x
comment: "DSP Program Memory (31 MB)"
9 D, w% Y2 C" u. B4 Z }]7 J) b# R7 l, G- t- n4 H
],; t& X9 K, f3 \7 a$ a1 e B
codeMemory: "DSP_PROG",
5 ]" ^/ D5 [9 \ c3 g dataMemory: "DSP_PROG",
1 b. S# Y$ }* n% J! H stackMemory: "DSP_PROG",- @8 ~+ u. }1 {, Q* t0 t
l1DMode: "32k",
1 g) `5 J# t& F& o4 a2 ^ l1PMode: "32k",: r$ K" B: i2 a1 B
l2Mode: "64k"; d0 [( q0 U' N* `0 Z
};
! y1 |( B) {: X3 a: w6 q
0 m1 @; K+ ^8 H/*
o) \- h0 J7 L6 h * ======== ti.targets.elf.C674 ========
* G8 O( @5 j' d# v5 A& {9 P' _9 y */
4 V$ ~0 h( L$ i3 g6 i3 N( ivar C674 = xdc.useModule('ti.targets.elf.C674');& U; k5 m, W- D& Z
C674.ccOpts.suffix += " -mi10 -mo ";3 h8 k# W. o" A" x+ s* o' {7 B' t# a
Build.targets.$add(C674);- s$ C. O* S) P
( z" v2 _6 k' \& Q* E& b, B( K* Y2 \
' W l% S1 D3 n, a0 z
====================4 e( u* [$ S7 y/ G
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
! ^2 X$ g k% [# c" {+ H9 m |
|