|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
2 m+ `* p0 l5 x8 h- o& s 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
7 }4 n. Q% r' A2 W% }) V6 H; _
/*3 c' C! w ^/ f, E4 F4 |5 T
* ======== config.bld ========7 K5 i4 q" l; ~7 L
*' f1 f8 W& V- b% I2 n
*/ C# y" K/ R7 F
, x0 g7 q( P5 Y% q m* J9 Z6 Y; {+ O0 ]0 j# n
var Build = xdc.useModule('xdc.bld.BuildEnvironment');/ N' B* N/ N0 ?7 B' y
t0 T6 v; z. J! a( q) Z( G" k6 K/* Memory Map for ti.platforms.evmOMAPL138
0 |9 \- l2 n# T *
% o3 V+ L0 {! r9 R4 C! _0 T6 i * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
% I' c( \* p* O6 L5 t * ------------------------------------------------------------------------
" A0 V; v+ w5 W# g$ U, l4 b7 M * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux- m5 M! U5 ~7 N. ]9 h+ S) d
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc), g, w2 h" a* A+ t- T! a/ x& S+ c
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
9 u* s- K- v8 \& Z: ^+ ]; b [ * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
1 y* z# e$ E, |% {9 G$ A$ V F * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)3 t7 [) f0 k9 c7 a& R
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------% |$ k* s, E2 l( p+ G
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
3 k' z" ^9 ~6 U# r7 J */6 A4 `; L F% A8 f3 \0 ~2 s
7 _4 [+ z, R. s3 M6 y) B0 @var SR_0 = {; a5 l) I1 i7 G; w
name: "SR_0", space: "data", access: "RWX",
3 J- c6 R. _7 p( R" ?' ]. W: e% a4 R base: 0xC2000000, len: 0x10000,: ^: A/ |' f1 D7 ^, a# A
comment: "SR#0 Memory (64 KB)"6 {0 J0 p1 a: U# H
};
z4 } ]0 C1 {
. ]" T6 U5 V, c5 g _var SR_1 = {
3 ]# [7 M" C4 r6 T! w! @# s name: "SR_1", space: "data", access: "RWX",
8 b. o, D7 a5 g) b% I8 s base: 0xC2010000, len: 0x20000,
7 w5 z6 V* ?2 t% [! P comment: "SR#1 Memory (128 KB)"
+ x7 z; F' g6 p# \ };
0 G' q# S! U# y9 \' w, z0 _( B/ d! G& L+ o. q2 w: D
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
' Y5 X5 z0 A1 X! B externalMemoryMap: [
* n3 \) W0 A! V: m [ SR_0.name, SR_0 ],# _( [4 ^0 {( `
[ SR_1.name, SR_1 ],3 K" b: @8 R0 \. w+ b, U( O4 J
[ "DSP_PROG", {0 B. i4 D' C" n
name: "DSP_PROG", space: "code/data", access: "RWX",
4 m& N4 S8 w; D5 o9 j base: 0xC2100000, len: 0x1E00000,1 O; I) ?% m. o) s
comment: "DSP Program Memory (31 MB)") z) ]9 r+ k, `- f1 {
}]
/ z( c, {- ^0 k' v. {' ` ],
# B) X& F$ U4 ^$ I6 R* k codeMemory: "DSP_PROG",
+ _- D; W$ ?4 M dataMemory: "DSP_PROG",) l/ A H: y8 T* h; U- v
stackMemory: "DSP_PROG",
+ }$ d( A6 Q- k% f$ ^6 f l1DMode: "32k",8 _2 P4 [5 I0 c+ B% i6 b) z
l1PMode: "32k",8 K+ D' h$ X$ n" r/ }
l2Mode: "64k"6 R' [" l6 R* p) T4 { g( v
};
! R7 R* ~7 a) ]( _) ^! q
/ ]' M# J/ a: `% g8 d% E/*
' Z- d, l- f+ s' ~" y3 H * ======== ti.targets.elf.C674 ========3 m! z' e a& J9 U- J3 ~
*/7 Y$ e4 h1 P8 G+ I" ^4 h) b
var C674 = xdc.useModule('ti.targets.elf.C674');
2 M; l: U$ b& M5 K: [9 |4 N+ ?0 iC674.ccOpts.suffix += " -mi10 -mo ";
2 Q3 C* M4 T7 c, _# t) A$ f+ ?Build.targets.$add(C674);+ o {: \2 g4 x6 q! _! V
1 ]* i/ Q8 ?' z7 p, S- C6 @9 F Q: k2 n- C. k$ [
====================1 Q! K3 E$ [/ H6 R2 M- b( {
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。% ^+ F0 U- k2 F+ r% e, T Q
|
|