|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。. a6 y2 Y9 { \; G& l( f+ \
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
X3 H, l# G5 y6 P8 X: B8 D/ e; {, W3 {
/*
3 e3 J5 X/ W0 b. g8 O9 `4 J5 w * ======== config.bld ========
% R6 C0 O: m9 V% s2 n$ ^ *; ~ s2 u6 C" d( N- \: ]
*/; u: G( M0 Y% P2 P$ _: ^; h! Z
! U3 R. O6 W9 F) j# n; N1 i: |
var Build = xdc.useModule('xdc.bld.BuildEnvironment');- e: G( d. g! C
6 T2 O; Y$ W% V' w0 J, [( ?5 i8 m/ q6 L
/* Memory Map for ti.platforms.evmOMAPL138
. f% _1 R2 Z0 R4 w0 N1 [' ]9 Y8 d *& U' f6 B: M3 N1 r
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
/ Q! M, t1 N' W. ?2 |; W! J# ~. z8 d * ------------------------------------------------------------------------( E. c2 H# }# Z/ j
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
' N% E/ n4 ~: v* r1 h; e * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
( j$ f( ?- i/ H' C6 `, m3 Z/ |+ z * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers) m D% t8 G v, i' _
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
% f" W8 e$ J4 f% d; F; F * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
. v9 i( @+ x0 k, p* O * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------- M* F# f# h" h% B& x6 l
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
) F( i& I: N: @% V3 L j */
7 i- L! p9 j8 L) N* a/ L
7 J: [0 {' W8 t( k8 U; W* ?var SR_0 = {
) w k# V" |' V+ w2 T' R! h name: "SR_0", space: "data", access: "RWX",% r& @; j# U* e3 o" Y: O
base: 0xC2000000, len: 0x10000,
; h* N9 l- r! I$ S comment: "SR#0 Memory (64 KB)" m/ m! }" K3 p
};
- \4 p! ^$ e4 p) B, [
/ F' H$ i/ m! M/ ^& l1 ~, Evar SR_1 = {( `( ]! V3 A+ T% x4 @% n: i7 I; C
name: "SR_1", space: "data", access: "RWX",
5 S9 e g% a7 Z base: 0xC2010000, len: 0x20000,% R& _, M8 J# e# D! l
comment: "SR#1 Memory (128 KB)"
) ]5 B6 u1 s6 Y$ P) o! W: { };
, o. \' Q& w# U0 J, }8 {0 L% M1 g6 m
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {- Y* n9 F) q6 W' L1 L; u* a2 R6 @
externalMemoryMap: [
; m" {1 ]5 W% s+ Z [ SR_0.name, SR_0 ],
2 ^" V: h# r E. k6 w6 v' f [ SR_1.name, SR_1 ],
% a/ S3 a' Q+ q1 G7 ~! Z [ "DSP_PROG", {1 i# Y5 s/ n j$ v& n" M
name: "DSP_PROG", space: "code/data", access: "RWX",$ {9 g# I% Q, V3 k+ D0 u
base: 0xC2100000, len: 0x1E00000,
- e( w; b! b7 z1 h comment: "DSP Program Memory (31 MB)"
% t# t5 _8 J! I0 L# R }]8 v& _2 D. G- o9 ~+ M
],
( y2 S6 U+ i+ u9 D3 j9 G codeMemory: "DSP_PROG",
) w) t6 _% {2 r- Y7 h5 K' u6 N dataMemory: "DSP_PROG",
1 y3 w; c3 O5 C5 I+ T7 K& B3 ] stackMemory: "DSP_PROG",
4 U) }# D2 C2 i( c1 }; z l1DMode: "32k"," H- _* c5 @* H% C) J+ B' x
l1PMode: "32k",& v0 k: e4 z% y# J* E2 Y
l2Mode: "64k"
6 B) w% y# J7 k0 e, p, r$ I D};+ V6 ~. d3 j- i$ @/ \
5 F# ?; v( y! r6 y
/*7 |% j" S4 y" t& o: _" w# N# h2 H: S
* ======== ti.targets.elf.C674 ========% e7 b/ j9 p( ]7 p+ k# v
*/
' n y* }2 r3 E) g& Y9 gvar C674 = xdc.useModule('ti.targets.elf.C674');8 q) r+ Y$ ]6 n
C674.ccOpts.suffix += " -mi10 -mo ";2 t h+ K d# Q" k: u: h1 L6 y0 E
Build.targets.$add(C674);
) f! w" ]/ A, Y) V/ F& S, @0 D) R" t- n' ^6 Z8 J8 L
6 A: F4 {& E! G====================
5 n. C' E+ [! \' w! h b: J6 z原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
- M- s& L9 j$ f- w0 ^' M4 s1 n( }7 _ |
|