|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
8 `1 X+ X% W! v# |* s7 Y6 C ? 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:) u: i1 W9 A# [1 \; ?$ E6 H) c
7 f+ _2 B4 ~ k I) N/*
! K- k. ~! h/ |1 T% U3 ^( i * ======== config.bld ========
" K2 F! C! g) c+ n- r *
0 ~2 ]0 C# L7 A' p+ O0 U' r* u, ] *// G0 M8 O- I r/ U {
' T* l, b* f+ qvar Build = xdc.useModule('xdc.bld.BuildEnvironment');
$ F( T( W5 l; B3 N" t7 m) d* x- M+ g1 |3 W7 L- y; C0 L
/* Memory Map for ti.platforms.evmOMAPL1383 a8 ^7 O& E0 g# {
*
^/ B4 w" X" O4 A- f * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory2 ^1 d4 c" y$ F0 y9 I
* ------------------------------------------------------------------------5 f# `9 r* r9 Z. V! H) _
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
6 d$ m& R, e. ?3 x$ ]$ i( W * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)' [, U# f2 T; W0 W1 @
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)1 ` S0 F4 y' _7 ~) t- b$ z
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------$ Z Q+ I% p3 v
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
8 u9 G$ K+ i4 V$ O4 o( b% r1 J$ o * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
Y! C" c0 R0 u, m# \ * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux9 e0 g! a5 ?/ w0 i4 K# C- z5 W
*/& D2 Z* g6 R/ M& w
0 N: l, M5 k( o) f; c, ^
var SR_0 = {. N5 K% b' }4 j% k+ I
name: "SR_0", space: "data", access: "RWX", m& E7 F& z7 s3 l% z7 E/ T
base: 0xC2000000, len: 0x10000,
/ A7 e% D4 r% ~- o( g" K comment: "SR#0 Memory (64 KB)"& g. U# Z6 {4 [0 I; w
};& v7 [8 t5 n; Z9 ~0 a3 l% r0 @& s
" b: w, O8 [" ~( C, @) F( }var SR_1 = { [9 a) p/ S5 C5 O
name: "SR_1", space: "data", access: "RWX",0 k- ^# F3 I# [ W
base: 0xC2010000, len: 0x20000,
7 y4 t3 x% D2 I/ a8 s i comment: "SR#1 Memory (128 KB)"$ Q$ P: P0 `) d$ h, }, y3 {
};
. D3 p7 g# S2 `3 g& J# J; f
& {# P8 Z C% k% F: \$ \Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
% }* e- t2 U' H( ^6 K externalMemoryMap: [+ B% |) A. P: \+ n- K \8 Z
[ SR_0.name, SR_0 ],. r) o& {& k% Q4 D" s& I
[ SR_1.name, SR_1 ],& T6 _' Y8 P- n) g/ E0 Q
[ "DSP_PROG", {
7 P2 Y& `" h& O/ c" U name: "DSP_PROG", space: "code/data", access: "RWX",
: y4 k0 l3 h9 {( T+ N# a base: 0xC2100000, len: 0x1E00000,9 W4 h% a1 Y2 W$ x! @ I. }
comment: "DSP Program Memory (31 MB)"
6 b. l9 ^' O2 e* ~3 q/ ] }]) M% k6 U$ j3 U5 |
],
: _) N1 N4 Z" k codeMemory: "DSP_PROG",) i0 p5 ]" x+ d8 m* G; a5 L
dataMemory: "DSP_PROG",
) R" C9 @ ]/ {" l8 Q2 u3 g3 h stackMemory: "DSP_PROG",9 Y6 d c# Z7 ], w( M3 [ i0 A9 i) ?2 Y
l1DMode: "32k"," W& x8 b, X4 o g
l1PMode: "32k",
- ~* ?& p5 H* }# r! s4 @ l2Mode: "64k"
7 v4 Y1 W2 j! g) ^- i% f};
+ |6 t& y' u$ P+ G! W+ x7 m, b3 C, O/ |4 x5 E
/*
4 I2 _. |# K& j2 \& D, X; ` * ======== ti.targets.elf.C674 ========2 C1 A' k6 g" Q6 S( T
*/
/ F4 L/ k% ]9 G% e& |, p- Fvar C674 = xdc.useModule('ti.targets.elf.C674');
% t3 l/ d4 X8 ?; B8 xC674.ccOpts.suffix += " -mi10 -mo ";- @$ r& G& B' j
Build.targets.$add(C674);
4 I: u4 A. v7 |1 l7 |' k1 j1 o7 T$ R; B) Y5 r( l
) v. R9 q, j' B- r7 b====================/ L4 k2 _3 |% s6 o4 g# b
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
2 \6 L# w' {8 t0 f0 [% { |
|