|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明( l \; j) `" p
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下* X9 [- V. v7 r. s
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)% I5 K' `5 z1 V4 D" O! H
5 n6 ^2 R! k6 S7 X是不是需要在DSP.CFG中进行配置* D: i' ]; f6 q, N+ S% T
我现在的配置为% q% y* Z) b% T. {7 h2 J+ U2 C! V
, a+ V7 p1 {9 ?1 M7 J `/*9 I5 c3 L* J/ i# ?& n; p4 k
* ======== Operating System Configuration ========8 ~: }9 \% V7 @6 A H0 M* y
*/
! m' t% P, N2 G& A% ~* X/ Y; b8 }0 h" C& G+ P9 O/ I1 L* }, D' e
/* no rts heap */8 Q$ {2 G! y! `: W3 m3 @) m e' w
Program.heap = 0;$ O5 ~2 T1 g) Y' m+ R
Program.argSize = 100; /* minimum size */
) w4 B. v7 }0 q4 x' v6 FProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
/ p# V& T7 e; ?. D5 Z0 i, F$ n+ k+ T. e# q+ |
/* create a default heap */# O) n$ j9 y& j1 Y, C2 ~5 j
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');' O! N: j6 ^# i s/ c) h* |6 f- L
var heapMemParams = new HeapMem.Params();8 M' X% G# U# l. B; K
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; [1 N O }: t/ @ L) @3 r
$ g+ @! X* c4 c3 z9 d* ovar Memory = xdc.useModule('xdc.runtime.Memory');
6 H* `& P# ~( x7 ]3 zMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
+ V8 S! U. Y; i& q
& q; w* M7 B& t# H% V: _/* configure System module */
' O2 p. C' s/ U9 _; h1 g6 O* e8 zvar SysMin = xdc.useModule('xdc.runtime.SysMin');
' Q$ u0 j9 j KSysMin.bufSize = 0x1000;
1 v& r1 L/ n* G1 s! L$ aSysMin.flushAtExit = false;
# g7 M. t- T5 a4 z% \5 ?
* l: _3 g Q& a7 Z7 n+ g/ Yvar System = xdc.useModule('xdc.runtime.System');
4 j# b K! Z% a% m2 I! H9 k. BSystem.SupportProxy = SysMin;
, h3 U( ]1 q/ I* Q1 k: _4 q) K* i! C/ w( D
/* configure SysBios to use the lower half of Timer 1 */
4 q( Q: `/ S2 d1 @var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
2 T7 `# K8 Q6 f" Y$ _* ~var Clock = xdc.useModule('ti.sysbios.knl.Clock');/ j, P7 p' I* @* Q; w0 D
Timer.timerSettings[1].master = true;
% R& [# I+ w) c; w5 U6 XTimer.defaultHalf = Timer.Half_LOWER;' ?5 C3 [/ m1 U/ d# `: }; Q
Clock.timerId = 1;, U* s4 [6 C% T" z( ?
" F6 r8 e1 M; u2 W* L$ T8 ]6 g5 j8 y) R8 S. I# m4 e
/*/ U3 [/ c7 m7 V' ^
* ======== Miscellaneous Configuration ========
\0 y$ n' T- ]) H G */: _, h* M" K. J( p7 p
) k) z- N L9 Z$ e5 `" z/* set default diags mask */
; X @! _* N) }( X+ [( |; I+ `5 m+ uvar Diags = xdc.useModule('xdc.runtime.Diags');1 z) k- l* f' m* U: G7 n- M
var Defaults = xdc.useModule('xdc.runtime.Defaults');! l6 m/ V1 J" Y% O* O/ H
: W% i4 ?: L W' e; ]% o
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;& u+ R3 P5 _9 Q* y
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;( L% b& u: x! V2 v, m
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;2 ~* e9 W- M1 F8 U; Z+ o _
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
$ b5 I% @: y }: U! @* f/ C, ~Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */& t1 X! k; \0 ~* l5 \4 K" F5 c
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
5 Y% V- a" D( c2 v) _Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! a6 e/ @+ \% x8 u
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;7 G, q# K+ z4 x2 v, Y
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;( N* a5 \8 f% |1 M0 j1 g5 c1 L" y
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
' ]3 k, M# w" B& cDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
7 o' F9 S0 R3 m5 d4 K% Z0 LDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;9 X1 s. T: @7 B7 Z+ w- G8 Z
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
* I+ N2 A- e7 D# a9 [, U: WDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
1 d/ y: k; R# x
: z$ f$ ~# O0 |% {/* override diags mask for selected modules */
" ]8 S) Z* u, A; dxdc.useModule('xdc.runtime.Main');; d) j- W. c( Z& {1 ]7 n
Diags.setMaskMeta(
8 c# f4 E+ v V6 h "xdc.runtime.Main",, A- a: V7 I# g( y! @
Diags.ENTRY | Diags.EXIT | Diags.INFO,* Y) ?! o4 l# F7 n( \3 f% Y
Diags.RUNTIME_ON% r9 D, D2 X& l
);
+ Z. ]" r2 T7 u2 o4 I" k, f
: a, B; {8 _+ c' ~( |1 q% ?var Registry = xdc.useModule('xdc.runtime.Registry');7 B1 t- o) |/ S8 G5 Q) q3 @1 [
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
! P) }. k! `' r jRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;2 T0 W; A( I4 P5 t9 D$ K/ G8 x% ?; j
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
; ?5 f- Y' s8 A" Z5 `: C$ URegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
8 X* e/ y& y& G4 k/ f8 G/ q
0 N2 s8 K9 v0 P' [, u- \/* create a logger instance */
! i, B. r& j7 M! q. b1 d& ]var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
2 P* e# K& `+ d, O# pvar loggerBufP = new LoggerBuf.Params();" s a5 n% j! q6 i2 j# V
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
# H6 C! @8 g& K+ [loggerBufP.bufType = LoggerBuf.BufType_FIXED;# {9 x1 k0 E1 n5 @2 x
1 [: n% g% d2 D, e+ U3 }
var appLogger = LoggerBuf.create(loggerBufP);
( d7 E& j# J5 X! k& V! nappLogger.instance.name = "AppLog_Core1"; T. u% s9 d: I9 d! q& L6 I
Defaults.common$.logger = appLogger;
" E. Q' u3 [4 ~Memory.defaultHeapSize = 0x8192; - K- @2 N+ r7 g" z T3 C) q
Idle.idleFxns[0] = "&LEDStatus";% j) o9 l6 y' r/ B% W6 I1 o3 @1 c
Cache.initSize.l2Size = Cache.L2Size_32K;) N: Q' m1 K! P" U7 h) [4 x- r9 y
: h& N, x+ u1 [
|
|