|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
$ J6 u4 |- {6 ?0 m6 i9 Y! x1 G' W& P 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:2 b$ X. p" N) N2 I* s# `) e
3 R% A( S* B% b+ h# e/*" P1 L/ ]1 Y2 L" g
* ======== config.bld ======== r- q& F/ \9 T3 T% Y2 C6 a7 N
*; i0 t7 I& s, U
*/
G+ n$ h) p }8 F1 d( h
5 M8 n# ~$ E! c" s% |! k. Rvar Build = xdc.useModule('xdc.bld.BuildEnvironment');6 _* g8 S; X: J0 \' d
7 I* ~5 v9 L) R* Y! N# C% [/* Memory Map for ti.platforms.evmOMAPL138
, w4 c& `$ |) n# D *
, j3 [9 r% Z6 o/ j. x4 `1 ]1 A' ~ * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
$ p+ b+ {: G, W1 K+ l * ------------------------------------------------------------------------
8 [* v% O' a9 r2 l# C * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
; x0 |$ A |& M * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)8 T& {$ G: l/ K' y3 b* x
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)3 S& H( k7 y: e. x8 W0 Y
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
0 B6 {2 P" V4 T" @% l * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
8 E" h4 |+ q% {5 U2 s! [ ^! Q# { * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
7 ]. ` G u7 e5 y * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux: b) b/ s0 u2 L+ N, D6 i( o
*/
$ N. I+ c( ?. o: O f! V- j9 V4 @, ?
var SR_0 = {4 B+ F1 ~+ @+ O0 O" Q9 J8 v
name: "SR_0", space: "data", access: "RWX",
( F( o* i3 a; A, C" V; ? base: 0xC2000000, len: 0x10000,: p1 R& J3 b/ B a W5 R
comment: "SR#0 Memory (64 KB)"# V: h3 R/ {) [
};* y( h' |; |% {1 P4 M- G; y
6 K+ k! I2 T' U
var SR_1 = {
* C( R% t" u8 ^* b3 l# x+ { name: "SR_1", space: "data", access: "RWX",, u. K3 h! r& i3 M: p
base: 0xC2010000, len: 0x20000,
! b8 v; i" @2 v( P. T9 P$ @- x comment: "SR#1 Memory (128 KB)"
4 D, G% T3 ]. Q- b% [% S1 c5 t& | };& N1 L0 I9 I& ^8 p
6 V m) k1 {, h; @& U' g J$ d
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
* x$ |8 X: Q/ h, K externalMemoryMap: [ E+ Y! v2 p6 h3 V) A# k3 z7 T( x
[ SR_0.name, SR_0 ],
4 n9 `( G5 d9 @1 b8 u3 i [ SR_1.name, SR_1 ],: l4 U |& |4 W+ e; ?
[ "DSP_PROG", {- s; Y2 v/ S1 `
name: "DSP_PROG", space: "code/data", access: "RWX",/ [* j* _* I) z5 Y6 _1 m
base: 0xC2100000, len: 0x1E00000,& x+ \ \5 \, `% ]1 Z4 }3 `5 R8 }. E
comment: "DSP Program Memory (31 MB)"1 y+ Q% h' ?' e' _, c4 j
}]
% ^$ d" x# b3 I- R/ L ],, v5 {9 h8 z/ q {) M! W3 e
codeMemory: "DSP_PROG",
" S! C3 U' B+ H5 t dataMemory: "DSP_PROG",# @3 o, p! N* i1 J% h( ^ s% z
stackMemory: "DSP_PROG",
% M( c( o E% T* g! q, V! n( u; e l1DMode: "32k",' r; i2 s6 Z! [. O9 a: p6 V! ]
l1PMode: "32k",2 s# v2 u$ c3 ^! a$ t# @' T
l2Mode: "64k"/ O5 }; G, f% b3 b
}; T: y- A2 @, A( B' y
i. V) z! Z( X: p% ~& o$ c' g
/*
) y. c% \ R- r6 e/ W * ======== ti.targets.elf.C674 ========
4 Q% L5 z2 @5 ^: V( f1 D' R7 j */
% N6 a5 ^/ ^( x4 Hvar C674 = xdc.useModule('ti.targets.elf.C674'); I! z W. N- k! V* I' N
C674.ccOpts.suffix += " -mi10 -mo ";
" B6 v0 o1 K" SBuild.targets.$add(C674);
1 E' c6 D2 c. J3 Q P. ^% w# `3 a4 }" O1 O
9 q7 w3 h9 `" N$ e0 i8 o
====================
2 `# Z, B& q A7 j- \9 b原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
3 _" e* q4 s: |+ i& [ |
|