|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明( a! T' ~6 x% B2 Q8 ?( z
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下7 V. R+ f4 n$ U' _
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)+ l) s$ |* T$ [' ]
' x# W. J/ x3 s. p是不是需要在DSP.CFG中进行配置
! s8 H) l# H4 m, H; `我现在的配置为
+ C A; k6 \0 X9 H+ U7 W' f
' W" q0 G/ P2 {" y/*8 K6 \! d: M. g+ }! {
* ======== Operating System Configuration ========1 y! }. i6 K6 e: a
*/
: c4 D5 ~4 E, Q' v! D# X. {9 n/ `4 `$ a7 p5 j f
/* no rts heap */
4 g! ?, A- ^8 }" q wProgram.heap = 0;
8 O9 ]! L' t' [( sProgram.argSize = 100; /* minimum size */
% A* \0 S6 c' vProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
7 y" H* y, K( J) {" _' m+ \6 ?/ e; R1 W3 n2 Z. S3 ^
/* create a default heap */
- H& s' M0 I$ z8 B3 N+ f7 }5 zvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');4 ?. |' Z3 X, ]2 B
var heapMemParams = new HeapMem.Params();" M2 y. E4 S1 t# C0 z, Z
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大+ w5 ~2 z# C# C. W+ ^
* A( @% U; b5 N7 T
var Memory = xdc.useModule('xdc.runtime.Memory');
, W1 s7 o) n1 ~/ H# O: q+ zMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
* b$ j1 Y, }$ {7 s4 p: @
+ ] W# f& k6 M/* configure System module */
% v! ?. e6 ~* V3 |. l8 Mvar SysMin = xdc.useModule('xdc.runtime.SysMin');
0 x& E9 F9 S2 r1 }) P L! RSysMin.bufSize = 0x1000;
) E) O- s# @" |4 D2 ~SysMin.flushAtExit = false;# R3 c, {1 B$ v7 C1 ~" T
8 D$ f- i3 h4 m6 Z" `; _var System = xdc.useModule('xdc.runtime.System');* ^4 y- f3 D* {5 z$ G6 T5 ~, Z& }
System.SupportProxy = SysMin;$ X1 C' h5 \1 h; I
9 |: B- @+ h- n) W% `/* configure SysBios to use the lower half of Timer 1 */) K. ]; A0 t9 v: t
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
; b: _' Q4 V! o+ \var Clock = xdc.useModule('ti.sysbios.knl.Clock');
/ u/ \$ V8 t% e8 @4 DTimer.timerSettings[1].master = true;
* }5 @3 Y, A# J9 \' _- GTimer.defaultHalf = Timer.Half_LOWER;
) O O! b1 ?8 p+ |Clock.timerId = 1;3 P8 V8 I9 U* H3 m1 [+ e
q @* h, L. P+ ?
+ g# I0 x/ V* u; X1 X- _# X [) g/*: o, G/ L" L& s7 g& A) k
* ======== Miscellaneous Configuration ========) W( n$ N- i9 c- r4 t
*/
0 ~6 Q% B! O. Z4 p& i
4 i, y+ K! |- c0 z5 F$ L/* set default diags mask */
; j4 a* r5 k4 i z1 C' Evar Diags = xdc.useModule('xdc.runtime.Diags');
3 O; J0 X( z0 h& @1 s- _var Defaults = xdc.useModule('xdc.runtime.Defaults');6 w; \, |5 B2 I6 @1 S( n
1 I0 A- T- h' P+ z+ N
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;- M6 { A/ r% x/ E9 \
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;6 ~( u9 N f% j7 ~
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;) r& q' e4 D3 `" ~' ]
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 `* g, l& m* Y+ M" W
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
8 q$ c6 z. z9 e# T$ I7 U0 `Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;5 x/ D3 n( V3 O( Z& Y" ?7 g$ f5 P
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;( N2 g( L! _& }- M) O
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
; A: X! Q! |& Y8 d q- `. CDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;( p, b" e' g8 R% U) O& \) ^
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;0 ?! w8 e) N% L5 {+ [
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;; n+ W( G6 c0 H5 T) g% @
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
: B7 i b0 i F, HDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
9 X& {, u) c, S2 HDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
% p0 J' @/ }" Q- |* \. D: Z) d
7 E2 N: E( y1 p; v) i* |/* override diags mask for selected modules */
% B; P4 M% p# r4 m9 wxdc.useModule('xdc.runtime.Main');( E0 s, z3 w1 l
Diags.setMaskMeta(" ]) N7 u, }" u0 x# V+ m( K$ V
"xdc.runtime.Main",
+ \9 ?- i5 T5 y Diags.ENTRY | Diags.EXIT | Diags.INFO,+ B& S+ `" } y0 j; h% B6 w+ d
Diags.RUNTIME_ON, A6 ~) z6 q/ S0 J, m# t( E. i
);6 O5 {3 s* A8 Q
' a4 b. G; e0 U* k D4 R5 u' \% N$ l Qvar Registry = xdc.useModule('xdc.runtime.Registry');5 ^5 |: \8 U9 P% y! b/ y
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;3 [6 |" T0 r9 j) }/ N& t% C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
6 q' r( X) E# n. Z2 g' lRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;+ Z m1 `6 z" U+ `3 y# P
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
. G" D) r; Z" n4 r; ~* f9 k# o! s F( N/ m( u+ j; Q1 s
/* create a logger instance */9 A$ E' s3 I4 N# |
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');( A( l7 W& j3 C
var loggerBufP = new LoggerBuf.Params();
: V: \ W: e" t7 D( iloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */* z2 C- x1 C* x1 c5 S$ m
loggerBufP.bufType = LoggerBuf.BufType_FIXED;+ @: }' W M L8 H6 R
- l/ Z) I7 g3 U* N3 _& w4 Qvar appLogger = LoggerBuf.create(loggerBufP);
. w2 D% g$ C( G* |appLogger.instance.name = "AppLog_Core1";7 [6 u5 a, C: X4 g$ b% t
Defaults.common$.logger = appLogger;
9 A8 {) K! y- iMemory.defaultHeapSize = 0x8192; 8 ^2 E1 U; u' i) \* q7 D7 g1 ?
Idle.idleFxns[0] = "&LEDStatus";
0 Y# @! G, A) [( JCache.initSize.l2Size = Cache.L2Size_32K;
2 W5 D6 s9 M& L6 [( l/ o) ]. P
: Q6 H/ T0 \4 R' p& M |
|