|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
2 X6 I$ I8 i0 O0 y# t8 x" {我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
9 Y9 t7 r) }2 H1 P- |0 y" s# A(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
; j4 ^% H4 w5 e# B, x& c* a6 s" ]4 [3 d+ Q( O% w1 c: V6 e
是不是需要在DSP.CFG中进行配置! f2 W5 |* @0 O9 G
我现在的配置为
( t% K$ }$ v6 X+ o! Z: C# Q' M! c+ j" P# Y _7 @ B; d
/*8 `3 g2 x0 ?+ A! m$ Z# w3 R- b
* ======== Operating System Configuration ========
: O5 E- u2 s( ]& _; P2 B- N) y */; f# r) o5 T) G3 p$ D6 M2 v
; _: D; @% }1 `6 f( ?# Z
/* no rts heap */: I- W9 v; a p: }/ k1 r t
Program.heap = 0;
: d+ A) N2 _2 M( fProgram.argSize = 100; /* minimum size */; e( a. U8 A9 J3 R1 {3 u. M* X
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 G7 R6 t$ H2 t+ A1 f C/ q
: ^$ o% x2 _6 P
/* create a default heap */
5 r7 Z# g. G* j$ p' s4 X6 bvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
( {+ H0 J0 H9 e+ I( S, evar heapMemParams = new HeapMem.Params();
2 i$ p0 ]0 V I3 {7 Y( f5 PheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大' y; X+ I, ~; b) v! g* T' [
4 B5 _3 Q$ @; w0 g4 k- v8 {6 z! Y3 F# cvar Memory = xdc.useModule('xdc.runtime.Memory');! s2 i$ ^+ D, Y, t$ [' x4 Q8 V6 U
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);) W2 o5 |* g5 A) \( h2 O- Q
/ y8 a" E& ]# D; ^% j' Q
/* configure System module */
- R' f& ^' \6 o: w& t, zvar SysMin = xdc.useModule('xdc.runtime.SysMin');
( G6 K, x7 S. D- i3 K3 O1 ]SysMin.bufSize = 0x1000;
$ D2 o* c# I" }/ `6 N4 `) ?9 ESysMin.flushAtExit = false;
: r0 D1 P" z, @* m% y3 T9 O) F3 G. G# a2 x
var System = xdc.useModule('xdc.runtime.System'); V' q* S& H% \1 I
System.SupportProxy = SysMin;! w& {- W) u1 T' L% @
; l0 ?! g9 c5 P5 s9 W7 h' n" N/* configure SysBios to use the lower half of Timer 1 */
7 U* ^3 ?9 K3 V" N* Q- zvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');% s. B# L* G5 a( F
var Clock = xdc.useModule('ti.sysbios.knl.Clock');5 v n* n% F) u3 Q' i
Timer.timerSettings[1].master = true;
! v$ f" [; ^3 p2 U) H( n. U9 q5 YTimer.defaultHalf = Timer.Half_LOWER;
+ a% \( Z) l O4 i( {3 gClock.timerId = 1; W8 t" f, y' S% y
6 m6 x) ~7 `6 T8 N$ C4 S' I
6 _3 {2 e& D/ L" B/*
8 b+ @1 K4 U0 e2 ]' Q: F2 Z * ======== Miscellaneous Configuration ========
( _! g( `6 G5 r$ y6 F */+ U+ [) Z' c9 U }. `( e2 y
" d$ r2 |0 e( o5 W4 X/ J
/* set default diags mask */
& i8 f( O: G! r- mvar Diags = xdc.useModule('xdc.runtime.Diags');
! i1 }- g1 a; a( i+ s+ @1 m0 Bvar Defaults = xdc.useModule('xdc.runtime.Defaults');2 T% t/ Z& Y( ]( s6 _% E/ V5 e
+ I. n( H- h" `9 _0 `+ U! v7 }Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;! q6 V3 K4 u6 A
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
3 ]* g+ ^+ I% b1 w# V- p* dDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
* S8 z% s7 b8 A& {& Q* |Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 |" u: w& B( ]0 S% e
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */, H+ E/ {; F4 |, @5 c% b
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
: P3 i5 P0 K. e' xDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;* r7 V% n* t+ O6 \. W# q
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
9 N7 g# }& y$ p+ z: @ t' GDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
, b- Q% F6 R3 F9 [; qDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;$ U+ m& d8 T2 ]6 a: u
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;4 \: h$ K4 { h& M7 K/ f) @
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
9 c. K. ^& h$ f3 Z, VDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
' Z+ F5 i2 x' h: m6 c) y vDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
/ F% F" U' A) e7 B! ~8 F1 w
' G6 h' X7 ?9 E6 M/ w/* override diags mask for selected modules */
& W& [6 ~# P1 r0 v: Q/ ]xdc.useModule('xdc.runtime.Main');4 L- r. S2 C4 k2 m3 }
Diags.setMaskMeta(& t ]9 y" V; N
"xdc.runtime.Main",' T; ^( b1 r. G- t
Diags.ENTRY | Diags.EXIT | Diags.INFO,
6 w: a4 b8 \. f# F3 X* o; O Diags.RUNTIME_ON6 v0 c0 Z5 W: r. [5 l$ B" W
);
4 o+ H. F2 H7 ~. J
1 {" V- K* w! F2 g7 w2 }$ \" fvar Registry = xdc.useModule('xdc.runtime.Registry');
( o( c! x! K! U" p9 l. Y$ KRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;/ g7 W2 K1 ^$ F6 M# `8 [
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
) z( s1 x w6 B8 {) KRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;2 Z" K# M9 q7 a* b, `, N$ ^
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;5 d' ^$ L# D1 R) R/ w3 J; p2 D. F9 b
4 }* u7 a; ^& P$ P
/* create a logger instance */% B' E6 A4 a; E, M/ z/ S
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');0 w1 @0 m! U" \+ x4 C# w0 t
var loggerBufP = new LoggerBuf.Params();
8 X' {; y/ }0 A3 qloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */% A0 E3 u: q5 Y( R
loggerBufP.bufType = LoggerBuf.BufType_FIXED;# I6 M2 U2 k% e U: E0 g/ q
- a8 s# V! Z2 x. g0 p7 Zvar appLogger = LoggerBuf.create(loggerBufP);) I5 R1 s3 r4 f. A% W
appLogger.instance.name = "AppLog_Core1";
/ v6 b( q9 t. _! s A4 VDefaults.common$.logger = appLogger;
- C F, k' ]2 B" f* ]/ ^' |0 b" v, j3 VMemory.defaultHeapSize = 0x8192;
' v! n$ R) a4 R+ [& XIdle.idleFxns[0] = "&LEDStatus";
. k: B+ D. U5 u# `8 a$ KCache.initSize.l2Size = Cache.L2Size_32K;; c. H; l% }# j8 y! i4 v4 W
$ S: d4 e8 a% b% F @ |
|