|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
/ u0 B! [# S$ f* `我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
# V" c! u# H/ q(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
. K% z; k. ?# B J: W( S" M1 A( _" P8 p ?) x# Z- n5 ]& j( ~$ T
是不是需要在DSP.CFG中进行配置1 a% d9 V. l3 Y5 j% X) ]
我现在的配置为
0 {8 i: }. [/ l- p8 K2 q8 i2 I- P8 ~* O, x' r F# L; O
/*
$ x* e, }1 N2 r, N/ G h9 z. @% ~' | * ======== Operating System Configuration ========
! ^; H6 L B; c% e" } */3 ~1 u6 {: ^+ |( l c
3 f6 c7 g& N- J- i$ X0 P3 g1 o' k7 x
/* no rts heap */3 B& |) b5 k5 m9 |3 V7 n2 f
Program.heap = 0;
8 t; t; [1 A0 N# D7 N w3 DProgram.argSize = 100; /* minimum size */7 W l3 ]% C+ i) }1 t- Q" T" X# o
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大' x( Q8 Q6 d- u4 K
9 F0 ?! h: j$ @( J" w
/* create a default heap */6 Y4 Q" C# Y, N
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
% G+ V9 g% D( p3 g3 o. o U. avar heapMemParams = new HeapMem.Params();% G- n- ?' ~; |1 q
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大1 f t1 t6 T. ^, M) b' b4 `! p
1 T2 O; E0 D9 H# e- O+ A8 R8 `var Memory = xdc.useModule('xdc.runtime.Memory');. R6 r: W v/ ]9 e% Y, \" i
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);0 Q I8 O2 y/ [. A
# |& V; C; g0 ^7 \4 `; v/* configure System module */- G4 V# t4 R' [8 K; t1 G" P7 q
var SysMin = xdc.useModule('xdc.runtime.SysMin');
. b; f) o4 T8 m5 c/ s8 D( ~SysMin.bufSize = 0x1000;
, m% X& m( i9 SSysMin.flushAtExit = false;
& X6 k( O; E" M7 V4 J2 `; n0 j9 s; `3 _4 u7 l& s9 K
var System = xdc.useModule('xdc.runtime.System');
0 a+ A8 b0 U) L6 Z2 OSystem.SupportProxy = SysMin;
' l1 t: K7 u- g& J& { y8 z+ S
* {# l/ a- {: q6 t/* configure SysBios to use the lower half of Timer 1 */7 d6 l' \4 k8 k. i" q. `: I: a
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
) c6 J- H: \/ P# ~ d; ]0 t9 m1 P% ^var Clock = xdc.useModule('ti.sysbios.knl.Clock');/ p9 b [" s: R" Y, J
Timer.timerSettings[1].master = true;% y8 X' }' k9 e. V9 V
Timer.defaultHalf = Timer.Half_LOWER;
. m& E1 w& b( hClock.timerId = 1;
) A, k9 E" i. y \5 @6 s9 P9 ^+ T+ }9 t6 t) v
" n/ ]6 f# k2 H. |
/*9 u' H' q: W6 e8 d+ {8 }
* ======== Miscellaneous Configuration ========# Q/ a t: S- C6 L- l& C }
*/
% u5 i# T+ l C4 G: V9 n. d: [, R7 Y1 S# I
/* set default diags mask */$ X" t, c) S [7 m% B7 L
var Diags = xdc.useModule('xdc.runtime.Diags');& Q: M" ~! L5 ?* }' E; S- S
var Defaults = xdc.useModule('xdc.runtime.Defaults');$ s$ E2 z( @& u- F. {
, X0 n% g7 E5 ^
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
! O% q# `6 V o2 iDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;/ J5 T1 X8 ~! y( r9 K6 c8 @
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;- m! o1 e5 v7 a* U2 r0 q
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */$ d- \& s) f5 _' J; f* x
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
- O1 {) ? D7 p# \/ ^+ Y: p& LDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
; A3 H& O: t" K$ f/ B( A( j; zDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;# P3 n1 E% R) H' U1 A2 e
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;: }6 C& ?) ]& R7 [
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;, a* y/ P- }' u P
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
/ t9 t& r' F& p% x$ [3 ?Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;8 m6 S- r3 R* R, s
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;" C- X! }- P1 e$ e) u$ [% _
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF; P) D/ [3 ?$ K0 c
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;& q2 O" s; a" [: H
1 t! `( ]7 Z1 I6 T/ l
/* override diags mask for selected modules */
* o1 r/ B7 Z; v4 j a! O9 Uxdc.useModule('xdc.runtime.Main');
. W0 x1 j4 t" \. S) n2 D3 B. tDiags.setMaskMeta(- A5 r) i% s9 v5 n1 z9 K$ r* U
"xdc.runtime.Main",
1 J# L. c: E0 u) v! S0 c2 Y Diags.ENTRY | Diags.EXIT | Diags.INFO,! s. I. ^! m( q5 O, C
Diags.RUNTIME_ON
) I0 L0 w7 V- u( j; n4 }5 z);/ ?* ^$ ~7 B0 a5 f
' O0 t$ d) L4 N+ R
var Registry = xdc.useModule('xdc.runtime.Registry');
: Q- Z0 |3 n( ^# D7 r# @5 NRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
: A2 R: \) K7 ^, G, E+ DRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;. y7 J: K- }* S
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
# a W, g) b) Y9 u, PRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
1 l: _4 K0 f' x
3 F: ~& ]# m+ k4 K+ o9 H/* create a logger instance */
) \0 h5 z3 ?" |& P* ]6 o5 ]% kvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
& \( ^+ D* p: U: B3 ivar loggerBufP = new LoggerBuf.Params();
9 G; u0 \* ^" x" e: ~0 [# Y* O) R0 @1 cloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */; r+ n4 S. ? E) m, B
loggerBufP.bufType = LoggerBuf.BufType_FIXED;' K' i7 m: J1 q- Q5 S. W9 q
4 g; k7 I. c" V9 W! ~5 d; M
var appLogger = LoggerBuf.create(loggerBufP);
9 A/ y! j; V' F- @5 @ i8 _appLogger.instance.name = "AppLog_Core1";
1 N$ A2 o. Q# Z8 qDefaults.common$.logger = appLogger;/ _# y0 b- }9 p& g* H$ y1 R" @
Memory.defaultHeapSize = 0x8192;
) F# i9 _: q' A U" c7 F/ TIdle.idleFxns[0] = "&LEDStatus";
8 B" F; [5 ~+ r2 }2 r" @, R1 e7 mCache.initSize.l2Size = Cache.L2Size_32K;
" g0 B& X4 H: G" r: R& I) U7 L% D
# F4 B, Y. T; u/ z6 W' D |
|