|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
! J8 E5 l6 f$ g, i" V7 p( \3 C# ] 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:: E$ P1 y! J% q3 j. z! N" P
% P0 n, l7 Z+ }7 C6 F" J, {- L/*" M+ C: C# u6 s: @7 ?
* ======== config.bld ========
3 o g: Y) t7 n+ m+ A" L *# K M, V0 }( C$ ]" Z
*/
( I% ^: ]% y/ f+ z) ]+ X
& E$ }: V8 q. Z5 C/ h/ U3 Xvar Build = xdc.useModule('xdc.bld.BuildEnvironment');
/ y$ T' V/ d, L0 P+ {0 E1 d! }( Z* I) I5 I% o3 v
/* Memory Map for ti.platforms.evmOMAPL138
~# b5 L. f4 ? * ^2 G! G0 V" Y; ?$ P
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
' J+ S/ l C/ N4 Q3 L' ? * ------------------------------------------------------------------------
! A% e% N- [3 ?6 Z9 o1 t, P9 _ * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
2 G8 u! c1 K; K; z* {" C * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
3 h- k. G0 j; \- y3 n7 L5 D2 z: l * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)# I9 {5 I2 P) b/ e( m% Z
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
* _; N( a+ B1 g * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
4 Y5 G7 S4 }: P# D2 O * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------" ?! s# S8 X6 P0 e2 p
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux4 u$ J4 f) d1 q3 _$ |
*/8 V3 C0 h' R5 b+ M
- X& W- N$ f' P5 z# A* @var SR_0 = {
v# m- S7 A" c5 F' B! B: c8 B name: "SR_0", space: "data", access: "RWX",
1 {2 j$ I, n6 _( X base: 0xC2000000, len: 0x10000,
7 A5 h8 ? q* ]* A9 R9 x comment: "SR#0 Memory (64 KB)"
) N6 [1 ~* o* C' ?. c* i0 n% V };
2 V& ^0 r; B( P' L
* [8 Y! w# G4 J4 r1 svar SR_1 = {
' B% V4 E5 k4 {& { p name: "SR_1", space: "data", access: "RWX",
$ g9 N# Y f: g# I) b. a8 ^ base: 0xC2010000, len: 0x20000,
. Z. I* Y. E; M' T' s5 i comment: "SR#1 Memory (128 KB)"" k U0 r, z- B8 ^& C, ~+ b0 |# c6 {
};$ A' I5 A9 \ Y! Z! J
$ F2 W/ N" k5 L- b4 t2 z
Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
1 E4 D% I# v2 k/ | externalMemoryMap: [
6 `# M% b+ V! c% p! n. D [ SR_0.name, SR_0 ],
" b! e. c4 m( `- }4 `. f8 q [ SR_1.name, SR_1 ],2 K& g$ l! ?- {3 C
[ "DSP_PROG", {
* t% R$ [5 |5 U: m# i+ J4 T name: "DSP_PROG", space: "code/data", access: "RWX",
( x, J; j) o F; Y* y base: 0xC2100000, len: 0x1E00000,# \# t# _, y3 B, [
comment: "DSP Program Memory (31 MB)"1 Q/ v( H/ `, \5 B) S8 c- I
}]
, U, I% \9 z5 M5 a: b* ~ ],9 g" O, E `# o& F/ w# V9 Q( z" Q
codeMemory: "DSP_PROG",
% V0 b. K6 e- T- L dataMemory: "DSP_PROG",! M7 R3 {3 v/ b# j$ x
stackMemory: "DSP_PROG",
4 F$ O+ p1 g& B8 }5 }; Q, Y1 v$ c l1DMode: "32k",
2 b( u6 g* o. y l1PMode: "32k",! q$ [0 Y& b! n" E- P
l2Mode: "64k"' H3 G" i: J& W* f' E
};
+ I3 z. S8 B1 e' X5 u' A$ b8 A/ ~4 B2 I& L- M
/*
' u0 [; [# d4 g3 h8 |! p8 A+ } * ======== ti.targets.elf.C674 ========' [( ^3 _( @- }
*/- {0 V7 \, x2 Z) ]+ ^9 P" P) E
var C674 = xdc.useModule('ti.targets.elf.C674');
( ~8 u: X* [. z& PC674.ccOpts.suffix += " -mi10 -mo ";
! U/ ] p! d g; o0 o# P, @% J2 c$ WBuild.targets.$add(C674);1 |$ V9 y# H- [- n
8 k) `8 t- ^2 h; ^+ J
& u( _0 W* {7 P9 a+ c4 F+ O; J
====================
' r% U$ ~+ j+ W6 k' Y- X5 {( r! n2 W1 r原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
5 a9 T4 h+ T r- w0 h0 A; C7 u( b& y, v |
|