|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
/ d; o2 C% {+ O; o+ J* K4 r我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下 Y4 B/ H$ u; D6 `7 D+ S
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)- z* Y# ]4 Z2 D4 a
, N+ w6 X' H/ f( x
是不是需要在DSP.CFG中进行配置: M3 B i* u0 @: P& p" q
我现在的配置为
* g1 h0 {& C) i6 S+ z F+ Y- z) z! C2 N; r6 F0 d7 G6 v
/*
* G( W' E9 s* p4 F5 R' ^- P( X/ \' A * ======== Operating System Configuration ========6 o) `1 W- W; a4 J/ Q8 d' A
*/
1 |8 n* S" Q: U- W$ n! f3 ~3 }: z% }5 t2 F# z8 h7 P& R" @$ ~+ F) Q
/* no rts heap */
4 j) [: C5 G% p8 P- ~9 mProgram.heap = 0;7 Z; j% Y3 m. T1 s5 d* X3 K
Program.argSize = 100; /* minimum size */
5 \; g# @' j# ~. b- ~; hProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 q: m' Y4 c3 Z6 L! Y7 | ^
% S/ L- Z2 N+ T" r: ~9 g/* create a default heap *// q6 s! u, M' t0 s, s& q
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');4 ^4 j4 ^/ d: b9 k- V8 Y' c
var heapMemParams = new HeapMem.Params();
' w1 j) m e) ^) m' u5 F4 ~heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大* c# a9 W* [8 }' U2 n% v2 t' ]4 l
; D) A, `) E/ g' B' bvar Memory = xdc.useModule('xdc.runtime.Memory');
7 |+ @' L5 `0 O& G4 [3 K6 QMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
q( ?. v8 `7 ?) D4 l8 q! y
3 J# Z3 c& q$ O4 d/* configure System module */
6 g; c; k/ D1 {5 ]" P' M& J [var SysMin = xdc.useModule('xdc.runtime.SysMin');
0 z( {0 T4 d4 X4 e* g4 [- o& gSysMin.bufSize = 0x1000;
% r" h* E7 `7 B: }! K- H$ D; [, [SysMin.flushAtExit = false;
$ E* N3 {; d$ N; v& \! g- [$ K( F4 h8 C) Z. q0 D# u
var System = xdc.useModule('xdc.runtime.System');
9 n. f7 t# M" {" ~+ `, _, ISystem.SupportProxy = SysMin;
5 P( q/ }: @" H& {6 t, ]- D0 U% {; ?8 d% I: o% r" b+ z
/* configure SysBios to use the lower half of Timer 1 */
& P9 \ n1 Y- s: y- X6 lvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
4 m/ w% O! S* g$ V! W* F2 jvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
% Y$ Z3 i: d% r' o& u. K2 T4 qTimer.timerSettings[1].master = true;
# {6 D$ p7 R; h- `$ Z, G, RTimer.defaultHalf = Timer.Half_LOWER;
{; C6 f: V6 n- G0 R. zClock.timerId = 1;
, B3 s/ w1 X7 h T% c1 y/ k) ~
% c( u" k3 X" O/ z( W+ m* O1 W" n: k$ p$ a) F
/*# x: i: O# K& k; v6 n" Z$ f
* ======== Miscellaneous Configuration ========3 \ I! K" Q4 L, y/ V% V/ W1 C
*/
' k# I% z& l% @% p' Q8 b
/ H( H' k1 t. t5 R& ?* P/* set default diags mask */0 C0 N+ v+ d: o: N, l: K6 }
var Diags = xdc.useModule('xdc.runtime.Diags');
5 Y: I- X* A1 svar Defaults = xdc.useModule('xdc.runtime.Defaults');
2 a9 G$ B2 |3 N. E! d1 H. |" D, \. N* H
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
8 L! f4 f0 r" _Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
" |3 j; d" x/ b+ d5 IDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;; Q) g/ S3 o9 ?' f
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */, V1 y8 _2 K2 |% V6 `
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
( ^: [8 @ I6 V$ b3 U jDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;1 i5 ~$ }0 c z) }6 J3 G
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;0 l# S& D j4 r7 ]( e! X
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
$ M7 w5 `; K2 o0 Y' o# j4 L6 ~Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF; V o2 v1 u6 ?6 l$ I; u
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;, i( @; `0 `) `& j
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
! J6 [( j. h% l$ y8 J3 i6 L" mDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;* U3 \& Q3 N+ x/ L" i
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
( ]" g# A4 i' g6 \! HDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
/ i! `4 l( Z6 b* t- C- w( `* X- ]' t8 i4 j
/* override diags mask for selected modules */8 b1 x1 p( a7 G6 @
xdc.useModule('xdc.runtime.Main');4 ^& Q+ f( M4 j: Y5 R
Diags.setMaskMeta(
0 M! x4 s# Y/ a S% C6 I% B "xdc.runtime.Main",
4 o3 f" C/ l5 r/ a/ D9 [7 v' a Diags.ENTRY | Diags.EXIT | Diags.INFO,
2 E: `: X. g. V1 x$ k) B Diags.RUNTIME_ON5 U4 W% f" R5 Y& F$ u% [$ }) h
);. {3 L& F8 P$ \5 d0 r
9 {4 W& h% W: a( n6 Zvar Registry = xdc.useModule('xdc.runtime.Registry');
3 O- a, S! i- E' \1 C: b, r, oRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;" k$ U$ ^2 R& Q( f9 _
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;$ g' j% I- e6 i8 U- @+ a$ I. b0 x0 S
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;! x- W, B2 w5 {* G, F$ L9 H
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
+ X e5 o0 V( z+ I
- g1 n- K: C" j4 b) H/* create a logger instance */
' Q6 W, W& R3 i) Uvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');; E q; S* B" E
var loggerBufP = new LoggerBuf.Params();1 Y2 S' x0 A$ p. g: N5 T
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory *// O; F) z7 l6 O9 P T
loggerBufP.bufType = LoggerBuf.BufType_FIXED;/ M* D6 _; M4 J' Y* ?
. ]4 G ~: L6 i
var appLogger = LoggerBuf.create(loggerBufP);) j/ q/ B8 @" ]2 d
appLogger.instance.name = "AppLog_Core1";, u$ Y- C4 d7 @* S9 h' @/ N
Defaults.common$.logger = appLogger;
+ T1 Z- {0 p6 T9 o+ A2 h0 q0 MMemory.defaultHeapSize = 0x8192; " }+ n+ j# Y+ w9 q# ^5 s
Idle.idleFxns[0] = "&LEDStatus";
. D6 H* D1 f# R2 x `4 XCache.initSize.l2Size = Cache.L2Size_32K;$ @) Y5 }, c, `- K$ P* l+ W
0 J/ b- q* q4 G3 B8 f4 M) I
|
|