|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。9 V5 [6 ^$ i! o8 E$ H/ a/ f
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
$ |! O* m& |$ U/ w" n2 ^5 ~: D$ j/ |4 A# P
/*
: N" |6 x3 w) K" B% n * ======== config.bld ========# d# }- P! F5 m8 E
*3 x' _7 U1 v& [3 o) K9 @
*/: }+ F- i% O* G3 w
+ r# q, N6 l; x& \+ J# Z3 \
var Build = xdc.useModule('xdc.bld.BuildEnvironment');, q+ d, R5 ^. o8 {2 t; H
) k2 v1 g# i: N% e1 o9 d' _: H/* Memory Map for ti.platforms.evmOMAPL138
# N/ U' r! h8 @3 m: c *, ?) i/ x, m f! o. Y, [
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
) n/ \# `+ f5 R O+ @7 B& s * ------------------------------------------------------------------------( y) _5 K8 @: Z! U: Y6 S
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
# {4 R+ r/ x; l( I9 r; M- q" \ * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
: b r4 w) L2 H1 V! a * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
N8 u( v, Y) x1 Z6 c * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------; m1 r/ U. I' u+ c- `! T
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
6 i6 }8 I! u- x; C * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------% H% x3 E4 ^- M5 ^% X
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
5 F [/ `/ g ?$ H7 Z */# W% L: R5 s* F9 f' N: K' w8 e6 g1 b
- M0 q: \+ T) k( z- i( B. p# b' K+ w1 q
var SR_0 = {
0 _. f( \& Z; o9 q+ O1 ` name: "SR_0", space: "data", access: "RWX",* W3 K8 d8 p0 r: s0 s
base: 0xC2000000, len: 0x10000,
. S2 o5 `) F. |0 N; z+ ]" G comment: "SR#0 Memory (64 KB)"
& {3 p3 ?7 b( V/ ~7 F };6 ^* ]+ ?$ p2 @ v. C/ K
& X: Y* G% A! cvar SR_1 = {
8 U2 K% G" O+ D- H8 V8 e& n name: "SR_1", space: "data", access: "RWX",
! B D! s- }' K2 M base: 0xC2010000, len: 0x20000,
9 p8 `) U) M P6 H, u4 Z4 @( U3 E comment: "SR#1 Memory (128 KB)"
, G- ^3 ^, \ j6 M };/ J% l' h3 }& B: u
7 i J& }$ W- H% R" Z& d
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {) @7 I Q$ b. \1 B' D
externalMemoryMap: [+ ~1 `" ~+ f% m8 | ]5 [
[ SR_0.name, SR_0 ],
7 B7 s5 F# M% p2 W" q [ SR_1.name, SR_1 ],
2 ` p4 S2 g6 X0 { [ [ "DSP_PROG", {1 q6 `$ Q+ l% g. Q ^
name: "DSP_PROG", space: "code/data", access: "RWX",6 x6 r7 T! `3 E: W4 N$ D0 l
base: 0xC2100000, len: 0x1E00000,
# f, Z+ W, R& H. r1 a comment: "DSP Program Memory (31 MB)"
/ q# w' @% |: O1 m0 w2 T$ V }]
' _+ [5 r0 @' e( \ ],
5 w# N1 s' d1 o* X/ q codeMemory: "DSP_PROG",
; ~4 X8 P% a: V dataMemory: "DSP_PROG",
2 l' ]( L- D" Q$ ]" k1 ]" B7 Z5 F stackMemory: "DSP_PROG",5 [# _4 n$ z0 U
l1DMode: "32k",
( ]3 Q% q2 X+ D! Q4 d1 g' z$ U l1PMode: "32k",
0 H1 H7 b5 ], h7 I; ], h l2Mode: "64k"
% {0 X$ C7 w# V2 w/ l};
+ W' b; p2 v5 m" t' q5 [& y3 u! G2 O0 B
/*
6 I% N' [+ p% E5 \6 F * ======== ti.targets.elf.C674 ========
- d( x! s8 e6 J0 H' @& O */
7 W4 a: D7 Q' B2 [ l( J. }var C674 = xdc.useModule('ti.targets.elf.C674');- n% U( l! c" J
C674.ccOpts.suffix += " -mi10 -mo ";' G2 f* z$ a; @: z
Build.targets.$add(C674);
3 e& Z$ _7 |6 [
w! B7 h9 k" m
I1 I6 n2 K6 x. Y% O! P3 W+ S====================- ^4 @- R, }$ x9 ~: I
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
1 v6 {( H) b X& C+ I$ d |
|