|
|
OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
! {6 ~: Q/ Y5 k/ ^ 板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:& h# _8 a( U6 z. o6 z3 Z, V4 x, H
x; b6 w1 g' Q. m2 J- ~6 h% K9 W0 _/*
! v8 ~% E7 S3 u. M* j7 f; n * ======== config.bld ========
- o8 V/ V; Y ]4 y9 ^$ ` *5 o; h* l, ~* K1 n6 y1 N. ^: R
*/
2 L" D, B. p: `: b$ s/ R& r6 K9 {9 M& s. `
var Build = xdc.useModule('xdc.bld.BuildEnvironment');# t! A! y' P v0 s
3 z b7 ^7 G& o6 z7 O6 p% [" U+ M/* Memory Map for ti.platforms.evmOMAPL138 T, N$ n( f5 [7 ~2 b4 V1 |& V
*1 b6 [' p: y, o' a9 t( G2 _4 V
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
, l/ d+ ~. f. ^4 c1 w! i * ------------------------------------------------------------------------
" Q4 O3 x; X" {! C * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
1 s; B9 ?4 i1 ?) z4 h+ h$ ~" } * C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc): b' D- Q, a" [( h7 `7 o7 Q
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)& h- E! E1 e# p6 f& C( W% M5 ?
* C203_0000 - C2FF_FFFF FF_0000 ( ~15 MB) --------
5 h8 y: I! K3 `6 Q * C300_0000 - C37F_FFFF 80_0000 ( 8 MB) DSP_PROG (code, data)
+ G' m0 v' b* x) r: f * C380_0000 - C3FF_FFFF 80_0000 ( 8 MB) --------
2 L7 ^1 ^" l4 z0 n: q7 Y * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
$ S# y' Z( M3 m: h */
M' P1 z9 k8 m$ Z( C& Y2 q# v4 z _6 j/ L
var SR_0 = {, {% {& o. {- h
name: "SR_0", space: "data", access: "RWX",
" q8 q, ^; T; S6 a$ x7 U base: 0xC2000000, len: 0x10000,
. { c# R8 H1 O2 D; D" P comment: "SR#0 Memory (64 KB)"
; Y2 p, d* M/ ^$ d };0 o% |0 M9 y1 D' \- t
, L2 c1 A: W! X
var SR_1 = {
, u5 m" ~$ V$ b) A: d. J$ Z6 Q name: "SR_1", space: "data", access: "RWX",' p( g1 J6 y# s) h& s
base: 0xC2010000, len: 0x20000,/ b6 c3 Q3 S' y7 g$ x- B( ]
comment: "SR#1 Memory (128 KB)"
- T0 ~, [: R. Z7 ]) ] };
% H6 A3 }$ C4 J$ b8 P3 `+ b
0 V0 f# n( V0 B" x' s- ^Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {! @8 P( y) w6 I1 {
externalMemoryMap: [2 Y G( G3 Y7 U, J6 \2 W# K
[ SR_0.name, SR_0 ]," a, G) M% b0 D# w( @, U: X3 v. s$ W) C
[ SR_1.name, SR_1 ],. R$ g, R6 F' }2 p
[ "DSP_PROG", {- [) d+ u- u# u: r) H- A- [
name: "DSP_PROG", space: "code/data", access: "RWX",
1 d1 h* ?+ ]) \6 ]) V base: 0xC2100000, len: 0x1E00000,# V) d8 t: O) t* x
comment: "DSP Program Memory (31 MB)"
' T3 @* [6 L5 B* \4 e2 N }]
3 [/ ?4 u7 {, p! \ _ ],
0 a3 }) |' Z: s) S$ | codeMemory: "DSP_PROG",) _9 ]2 w; D h
dataMemory: "DSP_PROG",
2 ]' d2 c; O- V8 L" v: B- ?8 I6 t. n stackMemory: "DSP_PROG",
- u; t) g7 i1 e3 _ R l1DMode: "32k",( C: l. I/ `2 P' w4 }
l1PMode: "32k",
, ]6 f. o+ M5 }, x l2Mode: "64k"
; P1 o- z& Q8 C* L4 |3 ~4 S/ V};- m$ }/ Z3 T% U' p( }# t
4 {4 O7 K7 l. A& v7 P8 J
/*9 c. U; U) ]+ M6 h8 C8 S* N6 ^$ ?7 r
* ======== ti.targets.elf.C674 ========: W! S4 h/ E2 o- ~% A
*/
`- Y& S5 U" j* ?8 h! [- {/ avar C674 = xdc.useModule('ti.targets.elf.C674');2 c( G) e5 x9 v8 J3 K
C674.ccOpts.suffix += " -mi10 -mo ";* s2 r+ `: }; U( R0 ^' V0 V
Build.targets.$add(C674);
9 Q* G$ z6 D. w0 n* o' W+ _
4 F& e% f. m, R J) {1 C% Q6 k' i2 q7 [6 ~. F% S
====================
4 B4 B( M8 R) w0 E/ e原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。
* k( ?$ j& N" N+ \% D |
|