|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明& S& J$ `% v' i2 s. @! H* ]# H, W8 b
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下+ `' h! i2 ]; D, `! A S) s, S, _
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)% z2 {( G4 p0 e) y! M; |
# A1 \' t; J7 o0 t6 g7 V
是不是需要在DSP.CFG中进行配置
, k0 \( @$ Z. r. q: a我现在的配置为$ A9 m' r! }2 ]" ^; _, ^
; a) X/ [, R E# I4 x/*
* A) C0 a3 V7 x * ======== Operating System Configuration ========
$ S5 y2 y, [( T. D' r) j1 ~ */
- N& k' ]! n' z9 p4 I; ?' Q, l, D' d' [, i5 d$ J! G% f
/* no rts heap */, c1 r- _9 [) i& f
Program.heap = 0;
" V7 e/ o5 @+ N9 r B9 C5 vProgram.argSize = 100; /* minimum size */9 g' k, T0 S/ A+ G
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
0 z) P" E7 B1 L$ d5 @# C% j7 ?# G- \3 ^8 y* x+ D" D* ]: g9 f6 N' U
/* create a default heap */. d4 E8 K/ g4 |3 Y* l- H
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
# h- C& j- j! F( ovar heapMemParams = new HeapMem.Params();
: [* O' A) d) V* j9 k/ {) b! s2 @6 K3 aheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大3 F: O2 a9 |( f5 t+ e" C- c; Q! |
/ S4 h% v9 S8 o/ y1 ]0 Bvar Memory = xdc.useModule('xdc.runtime.Memory');
" p6 w0 U% q7 ~! a; K1 L4 PMemory.defaultHeapInstance = HeapMem.create(heapMemParams);/ N3 L6 F: X: q3 x
9 H/ [9 t8 o8 h, E6 D
/* configure System module */
+ O5 S% d: K5 G1 ]& V. ]var SysMin = xdc.useModule('xdc.runtime.SysMin');/ ~$ b+ o; J N
SysMin.bufSize = 0x1000;3 ]. L q# O. ?0 U+ H+ C
SysMin.flushAtExit = false;
9 S) R, S' a* ~0 j. g0 B% N) H* ?4 G: `
var System = xdc.useModule('xdc.runtime.System');7 ]8 V6 s, N, u, Q& c
System.SupportProxy = SysMin;: |( Z3 M5 m) U% h6 b h0 D
& g" B" w) c0 D7 h% @
/* configure SysBios to use the lower half of Timer 1 */9 P% L( N" x5 R% o% J% j9 _9 {
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
# y3 I# {' q* _var Clock = xdc.useModule('ti.sysbios.knl.Clock');
( r; d5 K! B/ y! ~! TTimer.timerSettings[1].master = true;
, {" Z! f3 C3 q5 O, a3 ~; R4 t$ \) gTimer.defaultHalf = Timer.Half_LOWER;
4 w0 j5 U" Y+ E, b0 M4 U0 U- w1 @Clock.timerId = 1;, x1 A+ p4 n3 @# H d6 E. A3 r' P x
% A4 _: W H4 Q- }
6 k4 y5 @9 N# _$ F: n. z
/*
- I* ^9 [' B4 [- T! m* ^2 A * ======== Miscellaneous Configuration ========3 {1 R7 r" Z1 n5 W' D- t" U
*/
& x' t# ` c$ a, T& `, i6 b: v+ M: t) `3 N
/* set default diags mask */
; i9 C" [: _# Bvar Diags = xdc.useModule('xdc.runtime.Diags');- d- {( m, ^0 @( @- ?4 L
var Defaults = xdc.useModule('xdc.runtime.Defaults');' K) b. W& a. v: n+ D
3 f1 ^1 S7 @2 Q! @
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
4 T- f; g" p1 p s( M0 U0 i; ^Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
) t8 i3 t: Q. g& qDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;/ x1 L8 q, h+ g {
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
7 X9 l( n6 c3 r& ~9 Z$ SDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
& ?( k6 h+ m9 @( S2 T/ GDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;" _: J$ {! z. Y9 O3 T# B
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;8 W$ R( A3 T" Q0 x% Q7 Q+ M
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;- u, A1 I4 o P7 V4 G$ J3 D
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
% o7 F/ C. t, U3 |* `! EDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
2 o4 ]1 M+ k! G" D4 PDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
' D( L, f- g' C9 D# b6 aDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
0 x- O+ J, v. |Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;" {# ^) h' J& G1 ]( l/ @$ \$ F; w2 Y
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;9 L3 l$ B6 }, i" f. [
, C& S2 h3 u5 p: t, D$ J
/* override diags mask for selected modules */' _% B; G+ b6 a& T2 n' Q
xdc.useModule('xdc.runtime.Main');
+ i' ^" l% o* U2 @ \Diags.setMaskMeta(
+ C; \8 o8 I$ X8 h% P "xdc.runtime.Main",
9 F. L, g7 E: I; b* ~ B" \3 S- q Diags.ENTRY | Diags.EXIT | Diags.INFO,* D# |0 V! O8 n' e9 M, d `
Diags.RUNTIME_ON- n* {3 I4 [4 |( X8 a
);
! U# d; Q" Q* M f6 K: O4 s$ t& Y8 a$ R" {2 J4 I
var Registry = xdc.useModule('xdc.runtime.Registry');
; ~0 ~8 I/ v2 F, p9 q% P4 e( tRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
1 J# M& P) T% S: A1 H# ZRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
; u/ \ P, q# T) rRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
" z1 q* I2 m- H8 l9 Q! Y1 e( sRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;0 a/ Y" u1 W# R$ V$ ?! U( z( f
% B+ W* G! f# j5 P9 \
/* create a logger instance */. a3 d. Q0 p' ?0 K7 k, b7 o5 W
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
# M6 y$ T+ f- B6 t7 X5 e+ _" T9 {6 r9 Tvar loggerBufP = new LoggerBuf.Params();7 b# [! Y, O% q- t
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */6 u% e, h4 V' y: ~% ]. f0 Q/ I- { Q- `1 x
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
# I3 ^) s5 v" T; y7 m& s( }
( o, ?' M K! G6 ~! h+ L4 Q7 L' gvar appLogger = LoggerBuf.create(loggerBufP);
/ D8 y6 ^% s# h% r3 k+ ~3 cappLogger.instance.name = "AppLog_Core1";
4 v8 p9 V* Z+ @1 g5 RDefaults.common$.logger = appLogger;4 V+ }. R: Q# u' R& Z+ }( b
Memory.defaultHeapSize = 0x8192; 0 j7 c0 t3 U% [* }& a9 h4 H
Idle.idleFxns[0] = "&LEDStatus";
c9 ` Y3 @ X/ ~3 k. V! Z6 o: kCache.initSize.l2Size = Cache.L2Size_32K;
# b5 c! g; ~1 p. f; d$ e9 G! y% @. [" T0 d1 g# H3 [6 t
|
|