|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。+ |8 _2 [, O3 Y! h1 b$ H
板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
) [6 |4 l/ D! f1 M1 \, o! I
+ u2 f W7 Y J% p- p2 C) _. o6 M/*
0 Z( r" m# G+ F, A0 p5 R$ D * ======== config.bld ========
. H- [4 R) E& } e2 @ *
6 s R) R& K/ `% J: l */
+ W4 q9 p3 G% Y3 {# A" M4 D3 P" ~* H. ?3 _; o- }# G
var Build = xdc.useModule('xdc.bld.BuildEnvironment');; I7 t5 i! t5 K+ V3 A
9 w6 g$ G. Y4 y/* Memory Map for ti.platforms.evmOMAPL1389 @) @/ Q( f6 D9 E" y/ q- x" k
*
O h, x6 |' T9 C * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
7 l& D' C+ L. [8 f4 j * ------------------------------------------------------------------------/ D6 b1 ^4 P. X9 g; ]
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux7 l0 y# n( X6 r) a' T: d+ Y
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
" P1 w# B K0 u * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
+ k1 q0 K4 I. Q- ~: m, h' x * C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------9 x9 e% A' E( a w
* C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)! |7 v$ @ j; j- h# B: R- m' A
* C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
$ G8 K8 K; |; L% u * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux6 V0 w' ?. M# q/ A r
*/
# x1 e2 H- s; W& a/ G
/ m6 ]) K+ h7 Y% x4 kvar SR_0 = {
4 m: C d) d0 g# m! B$ m* y V" W name: "SR_0", space: "data", access: "RWX",
5 S! j2 U% x/ i/ q5 r) ^4 C base: 0xC2000000, len: 0x10000,/ A' C4 L: c& T3 h' Q
comment: "SR#0 Memory (64 KB)"
* |4 V0 `: I" h5 K! J a };
9 j# K. x) j4 @3 p) o: E- T0 x/ W4 [
var SR_1 = {
9 s% b) t$ g+ _4 s! q* ]! t4 y name: "SR_1", space: "data", access: "RWX",9 u- @1 U) o t+ o" z7 X. y
base: 0xC2010000, len: 0x20000,
& u2 z5 W: e$ b; g' y% i* D comment: "SR#1 Memory (128 KB)"
0 [, L7 H% Q! F };
! b- }" `, u' F- Q# N) j
7 Y6 h) z- @' k2 _8 N( Q1 N2 fBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {2 h4 Y, k. u7 f0 y% ?
externalMemoryMap: [
K# i* Z, l. \- N. _, A [ SR_0.name, SR_0 ],
5 a" c# O& {% n7 V$ u0 d. O. F [ SR_1.name, SR_1 ],) c) u4 y- g: ~- s- u4 T3 B( [, A
[ "DSP_PROG", {
+ _; k7 P* c1 L) l2 @2 M name: "DSP_PROG", space: "code/data", access: "RWX",
6 o& a! G7 K& c base: 0xC2100000, len: 0x1E00000,
4 m; P+ U c8 N- T" k comment: "DSP Program Memory (31 MB)"7 j# H/ `8 y* x/ G* O" t
}]6 |4 v+ l; x- q) W+ |. n
],% W6 b& b9 N. Z8 {
codeMemory: "DSP_PROG",
7 M4 T6 `' f/ v* P! Z dataMemory: "DSP_PROG",
% h) B% O: J& O- I, N stackMemory: "DSP_PROG",
1 f! E0 e, p9 U7 t( v% V" \ l1DMode: "32k",
/ ?/ w" x5 s, h- d7 L l1PMode: "32k",
0 c' F' \% f( z l2Mode: "64k" y" m9 P6 B) k# c& t! r8 c
};
& X$ c0 I( O0 ]1 }- z
* |1 Z. d ]2 {0 u }/*
- ~" K/ M7 Z( H/ v: e * ======== ti.targets.elf.C674 ========) [, k; W% x; V G% l1 A: S
*/
' b: h" G h3 r$ u- dvar C674 = xdc.useModule('ti.targets.elf.C674');
8 i7 @: ^3 @- c; h9 p1 JC674.ccOpts.suffix += " -mi10 -mo ";6 x+ K5 s* E! `1 R* A. ^
Build.targets.$add(C674);
7 J" Q: ?8 `+ b9 g/ g- G8 L
& c7 S7 G n% q5 H
" \+ k# {4 d! R$ [====================/ C' d1 c' I& n4 Z# e4 S; A
原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
1 X+ b# `& `) U, Y |
|