|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明4 c9 E; F" m, D+ d
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下' @3 ]$ n: r M( U- }
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
: F2 v/ y6 D+ y. W0 ?$ L1 f9 O* K+ N- C
是不是需要在DSP.CFG中进行配置& d5 o6 k# H7 ?0 Q3 Y
我现在的配置为
" N; d: c( d# e, t! F& Z# ]; l7 h/ w7 b. G+ H F) l. x3 n6 k* H
/*
0 M' \4 O. \5 N- d& C * ======== Operating System Configuration ========
. D, P4 O4 Y' o3 K) H b */
# p, S/ X" N2 @
; r3 G5 d* Q& s/* no rts heap */
2 p! K1 n, f, @0 Y* r$ e2 tProgram.heap = 0;: @! e5 l/ R5 ^- i0 O$ E- O
Program.argSize = 100; /* minimum size */+ M. X* _( Y D& {& E
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
" k+ V( Z- G x8 d4 Y: x1 ]1 o- v }6 I p; L; c8 n
/* create a default heap */
7 g( Q% ?! I2 h9 b& Jvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');- P3 c% g$ Y! J' V, u8 y' j
var heapMemParams = new HeapMem.Params();
) D/ Z& x& i% Y! RheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
i* {1 r2 B0 W. c& I+ F7 i$ R _% ^
+ k; [4 L3 E: X. avar Memory = xdc.useModule('xdc.runtime.Memory');
) i: s! F; S& ~ u1 ^: wMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
) z5 {) T# ^' s, J4 b- S; n. S I% }5 o. Q
/* configure System module */4 ]* A) S. H# z
var SysMin = xdc.useModule('xdc.runtime.SysMin');
3 ~9 i! D# w' h6 }4 U4 }$ nSysMin.bufSize = 0x1000;
7 y( b$ |/ j9 O# Z8 q' sSysMin.flushAtExit = false;
1 M3 i4 }9 x5 d: I1 e9 w+ T# l* Y' D5 Q
var System = xdc.useModule('xdc.runtime.System');( O5 G6 ?* P5 F% [: s% m2 n
System.SupportProxy = SysMin;, |5 R3 j1 z1 Z) d9 z# S
, m; m8 O1 l" d& |; }/* configure SysBios to use the lower half of Timer 1 */; [5 A7 x" j1 G$ H+ g
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
8 n2 ~+ D% S( C: D& vvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
/ b5 h, t- J- a" x' D" [* w) ZTimer.timerSettings[1].master = true;
# O( ^5 ^; F8 s# F# pTimer.defaultHalf = Timer.Half_LOWER;
- W3 U1 I" `& n1 x: B zClock.timerId = 1;& l" r9 q4 M; g$ V8 Q8 M
6 u( @7 k" a( o2 T; o3 [1 s
# X7 j& P8 ]6 h6 }1 L% v. L/ B/*+ W( k, Y- t2 x% M: l
* ======== Miscellaneous Configuration ========
a; {/ w6 R o4 W1 ^# j/ N/ m- x */
/ W* |: z5 O) Q3 Y$ R! d8 g& q# G6 {/ Y3 |# L* |
/* set default diags mask */
& x5 |5 f* j& }* C e U0 {var Diags = xdc.useModule('xdc.runtime.Diags');, t$ I7 ~; U \5 F! l4 O; p& Z& `
var Defaults = xdc.useModule('xdc.runtime.Defaults');
0 }& P4 } P" T" J9 S7 t# H7 i6 R3 j
; o. p9 X# U" ?$ V# nDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;7 y% {4 r" `; N K
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
E$ F" I5 F! w& gDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;5 C t- X* p7 k: q
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */9 t$ b4 q' t2 h1 j3 N6 n( B* w
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */# x8 \# ?% ^& N, G
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
3 `; i$ D" N" t: t- g! `Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
' _( s0 o5 ~0 `Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
: _% B6 Q+ Q9 A8 ]* xDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;% W: D; M1 O6 |5 X2 E
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;5 l9 X. X! E% P; h( _0 m0 J# k5 P
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;7 ^; m) c; h0 Y8 F# ?1 a. J9 T
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
8 {6 l% R& z' _% Y' _4 fDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;0 ]9 E, d8 B' C8 { }: `# J
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
* l; G3 i7 T. r7 |2 F& ?1 b
8 j2 V2 r. M( ?* D: d6 B/* override diags mask for selected modules */
8 [" c: B3 r: q; Gxdc.useModule('xdc.runtime.Main');1 j0 t4 H$ q* Y
Diags.setMaskMeta(
6 e' L9 u" L1 d8 P- V7 k6 ]% Q "xdc.runtime.Main",0 h; J0 K9 ^2 c8 H3 U
Diags.ENTRY | Diags.EXIT | Diags.INFO,
) k9 D2 e' b' H Diags.RUNTIME_ON* \% }, L3 r0 H7 N
);
8 I$ Z9 g" w: W" \, l4 B
; s' ?0 f" K( {7 `* S! Q5 Rvar Registry = xdc.useModule('xdc.runtime.Registry');
4 B7 k2 V( Y# O4 r% [% aRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
+ [% b z2 s8 ]4 J" ]0 ]3 `Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;) o' r" E" p2 m1 r# @/ \
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;! E) r$ j; @+ ?& n+ o
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;7 v! `5 ~# D) @1 Q* c# p4 \
2 t, C# f3 F, k5 f/* create a logger instance */
S3 c! G/ `% p7 J" `, ]; Ovar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
3 S+ E' h, E, e+ p6 evar loggerBufP = new LoggerBuf.Params();3 M1 Q% E& ^ P& K
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */) _/ ^; R4 H) R3 h; G
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
6 @/ M# X9 K( `! }0 ^4 ~8 B6 U1 N: Z& A( r- z+ R! Y
var appLogger = LoggerBuf.create(loggerBufP);
/ L8 g" a. U2 h; h% \appLogger.instance.name = "AppLog_Core1";
+ P! w! @& M( ?Defaults.common$.logger = appLogger;
, ] i" n+ J) z& w5 S4 b0 W( OMemory.defaultHeapSize = 0x8192;
" _0 L+ Q6 \$ _Idle.idleFxns[0] = "&LEDStatus";# J; I7 B6 D- _' a% P! b/ \
Cache.initSize.l2Size = Cache.L2Size_32K;
4 k1 g8 C$ y3 |. v5 Y, t. j( _7 w) z
|
|