|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: H6 f4 ?( @ S% z: r4 o我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下/ c8 X4 O- ?7 h- [; d
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
4 g; f" | D' a7 z- O+ H& h7 J* \2 D/ d) K# m1 I% H! I
是不是需要在DSP.CFG中进行配置7 i4 y+ _1 e/ A! K3 d. u
我现在的配置为" ~, F; A" o/ |* [$ t$ B% `
& [+ N% w/ F6 t7 g
/*
! f0 |+ u$ i$ H4 z$ X, T * ======== Operating System Configuration ========, R% k2 X# v: A! o" r% A6 L
*/- m% k% H! J" G5 P t! C
9 i6 R4 [6 H6 g2 w1 u/* no rts heap */
- Z& n \9 P8 S, JProgram.heap = 0;! c) Z ^7 C* g8 q8 e- \# m5 K
Program.argSize = 100; /* minimum size */
' |3 n6 X! H& _0 `; m7 H) z8 C$ EProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大0 N) C, N# H9 N$ v0 ~# G" w) w* [4 K& ]
! c; X. G0 I: x, f/* create a default heap */0 x/ u; m5 B9 U. y! S, E
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');6 O X) i9 r& M, D' `0 F' o
var heapMemParams = new HeapMem.Params();$ _9 D/ a1 z" e1 x- D" Y* J- r* x
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
, @- |/ x7 b9 w0 S" ^9 L2 J* t+ D$ o3 \# {# ^, @! R
var Memory = xdc.useModule('xdc.runtime.Memory');# o6 \& u2 X4 e
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);1 F( A% w* ?2 R
. J: H. t6 G% p# Q: s
/* configure System module */: O" `& X8 T/ w% ?2 |
var SysMin = xdc.useModule('xdc.runtime.SysMin');, C) V! r- _2 a T4 _
SysMin.bufSize = 0x1000;. B2 V0 K5 I! H0 B' w1 Y* V
SysMin.flushAtExit = false;) w0 `' U5 m/ c1 g6 ]7 R2 n0 @, g0 r
& E. `7 v9 o$ ^) R5 k5 \9 Svar System = xdc.useModule('xdc.runtime.System');+ p+ C4 ~; H# q) A) }9 [/ e
System.SupportProxy = SysMin;2 G% k ? I2 i: c( \' ~
; H$ } w' z$ Z
/* configure SysBios to use the lower half of Timer 1 */
# v6 |( N2 R2 O( j9 avar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');( B, v' T- D2 P
var Clock = xdc.useModule('ti.sysbios.knl.Clock');( ^- @/ t2 S! E3 B7 u9 [
Timer.timerSettings[1].master = true;
) j, h# |; F. y# z' P+ F( N+ A$ oTimer.defaultHalf = Timer.Half_LOWER;
% K0 {; y0 X3 ?4 y- _' }Clock.timerId = 1; Y" F0 z T+ B
' {" B- p$ t1 ]0 A/ c* L1 w; m
* _! K3 R+ p S% W/*- ]. V: x, }+ B& E2 K* ^
* ======== Miscellaneous Configuration ========" W; [& @, ]0 W: }0 [0 m2 N1 z F
*/# h; a( q6 D, w& w) r+ G* s
8 w6 K5 |8 J* ?; J2 x
/* set default diags mask */
8 z3 Y& }% L* v" W4 mvar Diags = xdc.useModule('xdc.runtime.Diags'); X0 O. M2 I1 t
var Defaults = xdc.useModule('xdc.runtime.Defaults');3 t7 M) w% a' m& d# [# t
- S# l9 `, Z; o, A0 qDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;9 }. Y2 U6 J) U
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
, u6 w7 ?. e" [6 ^9 KDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;3 s8 W4 E% W& e" T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */1 m5 [: }" O+ H* H& ^+ F
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
6 ~' O4 g; T' N8 e3 ~& nDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
: i4 T2 j5 y% Y) B/ pDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
. c+ B% N/ C4 T4 d" o3 bDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;6 y9 J8 {# o, y" R$ |
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;: z9 ?+ I* w2 J
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;- \' t h5 H- e7 r
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;& W- q" J+ v9 l ^ P6 d
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;) Z' e9 ]) G; i# i; F0 z
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
( C% Y1 i. l" t. S) M2 F- l4 CDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
0 k$ {0 f7 r0 B2 E
4 \! M2 k r9 S- J/* override diags mask for selected modules */; J4 b; C( C9 b+ {& \- ~
xdc.useModule('xdc.runtime.Main');
7 ]) d% p1 Y T9 p. vDiags.setMaskMeta(
) l( p4 r# {5 ^0 @5 f; V7 z7 J! ^ "xdc.runtime.Main",. S+ S8 E" C1 w7 h& Y6 p
Diags.ENTRY | Diags.EXIT | Diags.INFO,; f' U( Z3 W: _
Diags.RUNTIME_ON4 h1 O" o# }, m. e+ K
); m# N( G" u6 b, U# D
5 W0 ^/ b: K+ D( t5 s! pvar Registry = xdc.useModule('xdc.runtime.Registry');/ U% _ M: f2 _3 I6 L3 q. T8 l
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;4 j8 L) K- M. C. p2 C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;2 y7 Z7 f% C& ?% {7 ?
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;; ~" B& a; n" V4 P4 O
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
. U( u, M% Q' C; Y- \
( |. @3 v$ x, s4 m) q# B0 {/* create a logger instance */
: z4 b& F. t( [* v: [var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');$ d' ^6 [: ]. t% a2 `" F
var loggerBufP = new LoggerBuf.Params();' b* {. ~5 K8 i( ~( X. ] Z
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
5 k% ?/ q# s! x, F7 z: b6 `. j% UloggerBufP.bufType = LoggerBuf.BufType_FIXED;
2 P7 `, Y9 F. y3 X
! Y( z; j8 c; ~ @) ~* }5 }! pvar appLogger = LoggerBuf.create(loggerBufP);, y1 T7 }% w* g# d+ h2 O
appLogger.instance.name = "AppLog_Core1";
' D+ K$ C. R6 S1 J0 t8 L S. nDefaults.common$.logger = appLogger;1 G3 n8 X. Q* B1 d1 A
Memory.defaultHeapSize = 0x8192; & q. N, S, L; l- O6 z; A) q
Idle.idleFxns[0] = "&LEDStatus";
% R) b& k8 t/ i" t7 CCache.initSize.l2Size = Cache.L2Size_32K;
# q. L' B/ o; k7 O, s+ D( Y
i5 t# y/ f: N# ~! P4 E/ V7 y, F* U |
|