|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
( B$ ~' m8 S( `$ w我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下' U$ v2 r( a8 L& U8 [, x% d
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)4 E8 D4 m, o" O, E7 u/ ^! f
9 n. c+ a! r* |) [& h5 Z是不是需要在DSP.CFG中进行配置
4 @8 N8 o- p9 g+ a! a* C3 T我现在的配置为
0 y Q( [4 L! a: V' c% `: o7 D
8 c9 h [; b1 Q* F! Q/*
; @% K/ w. P0 C5 C. A* r7 P9 G% g * ======== Operating System Configuration ========
# A6 P0 C( `+ E0 V* k */
6 l0 c$ @# S2 K/ D. K l
9 L3 ?6 U5 X+ Q% x4 _/* no rts heap */
0 a& n' I% H, ?' ]4 P% [+ h3 RProgram.heap = 0;' u/ \% z! B0 i4 {9 R) {9 \0 K
Program.argSize = 100; /* minimum size */) I+ ^( B! P7 Y9 K/ r
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大% s# u8 j) g; ]6 ^& s
$ G; Z. w2 |6 p2 h( n: N/ ?" m" n4 B. h
/* create a default heap */$ F+ \! s4 a: Y: M9 e1 C
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');: w; o! I6 Y1 x3 P* g
var heapMemParams = new HeapMem.Params();% p& y* Y( z+ U6 h
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
) w' o! ^. i& ]! P9 n6 k1 Z5 Q- M2 q/ d
var Memory = xdc.useModule('xdc.runtime.Memory');
* N% {$ h% C: m/ J1 O; FMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
1 q4 r5 Q( S2 D: K. o; L
8 s% r- R* d+ v3 r' E! ` l( d/* configure System module */
+ E; B9 Z4 S3 Kvar SysMin = xdc.useModule('xdc.runtime.SysMin');
; ~: q; Y' V1 Y: q6 @SysMin.bufSize = 0x1000;
, O$ d- S5 @% E9 FSysMin.flushAtExit = false;) k: s6 T1 i; z- s
6 b* Z, L9 X4 I' S1 I
var System = xdc.useModule('xdc.runtime.System');1 c% u: @0 l8 Y3 y. Y
System.SupportProxy = SysMin;
! Z" w* h* @) d7 Z6 \, n9 x" E! U
, ?' N; R2 x# F( G& g$ \/* configure SysBios to use the lower half of Timer 1 */
- _ b/ k( P! h6 w& qvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
& P$ x4 r5 Q" P0 b! V" gvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
, p! P) h( U4 [/ pTimer.timerSettings[1].master = true;
, _4 o& t. ^' B. JTimer.defaultHalf = Timer.Half_LOWER;
5 V/ ] G" b$ Y. f1 u/ a8 JClock.timerId = 1;# H f6 {0 F3 K' ^& K9 X3 N
; e- T6 P/ P' n: M) {" i2 h7 q4 B
9 N- p1 _5 i7 v8 Y1 J/*2 X: a$ ^' b; H5 `/ D3 S
* ======== Miscellaneous Configuration ========
3 L: _4 z1 ]0 b8 D */! p2 a+ i' d, B7 i: m2 Q* s
+ B3 p0 O) L0 @( z
/* set default diags mask */1 j1 H$ r8 {0 \1 S/ o# g
var Diags = xdc.useModule('xdc.runtime.Diags');
+ P0 t, C( _3 Y8 I l1 T: i; u gvar Defaults = xdc.useModule('xdc.runtime.Defaults');
9 p7 S) p; V0 Z1 A& P
7 _/ o) H$ ^( {Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;& P1 X9 n# N- L
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
: Z$ b) Z! T1 q; ^# T9 w2 fDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
; s+ p- k8 @" M) O. H; h& p6 S& SDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
* A& }9 y% X* |: ]Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
. Q) K7 T/ Z# T7 q9 |Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
' S" y/ B! _9 }! E* E7 lDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
2 S- K; x/ R! r$ F# T Z$ Z' HDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
8 ?- i& V$ m) ~- P. k' xDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;5 {2 q4 _! i9 q4 `* Y* y
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
0 L6 @/ v V$ u" jDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
2 q2 g! o; f* r$ vDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
8 g: n+ i' m0 B; hDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;0 c5 j5 \9 j- a" O
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
: a2 x; y6 {: }' g' g2 [7 r8 T4 r: G+ Z* A0 v; u3 X/ K+ Y0 M0 E
/* override diags mask for selected modules */
8 x9 a1 h+ k0 Z( K# ^xdc.useModule('xdc.runtime.Main');
/ m5 [1 C! r8 o+ m$ k( c$ [Diags.setMaskMeta(5 e' Q3 f6 Q' T" g8 p( X
"xdc.runtime.Main",9 i1 w1 P- I0 C) u$ l
Diags.ENTRY | Diags.EXIT | Diags.INFO,
+ \) i: U$ V6 P9 f6 X/ f3 r8 Q Diags.RUNTIME_ON7 n/ W8 t+ q" ^ x" I
);
: Z3 x" l, U) U( `% j: [
) }7 e: J/ v1 a* ~var Registry = xdc.useModule('xdc.runtime.Registry');# a; M1 S8 A9 [1 v
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
& Z: I& v) }( c6 Q+ e' Q2 ~Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;, P( U- t( `2 _
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;& U, `% d; W; F" u# r
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
Q/ v- @7 G+ V y4 N6 w& j2 I* F# ?# y
/* create a logger instance */
: O& k/ s* P4 y2 @6 {& Kvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); f" R7 l( g; Y) D( B6 R
var loggerBufP = new LoggerBuf.Params();8 _5 n2 q3 M3 n& T6 _
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
+ K5 A" x# e/ C9 s0 U' O T+ |loggerBufP.bufType = LoggerBuf.BufType_FIXED;
, D4 v% E1 E. v5 X7 w& a8 Z1 }$ s0 H; Z" s. }% T. `
var appLogger = LoggerBuf.create(loggerBufP);9 Q4 I/ U' b1 b* O0 u5 i5 O7 ^
appLogger.instance.name = "AppLog_Core1";! [) ^5 p( C; r3 t( V: J: ?# s
Defaults.common$.logger = appLogger;' t: a! c( I' N' \) {: ?
Memory.defaultHeapSize = 0x8192;
+ j; |( n# n# o9 b8 CIdle.idleFxns[0] = "&LEDStatus";
! K* M4 M8 E1 e/ x3 BCache.initSize.l2Size = Cache.L2Size_32K;) g2 f8 v) K$ ^3 N% p! `+ w
; q' [) x# L* {: b/ U( q |
|