|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
- v6 B5 e0 R2 I) Z5 R$ A! c7 ]" h我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, ` Y( \9 I" t9 K1 A2 {- \8 L6 k
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
( _" v+ K% }; [$ v
2 A& b% K, P; H, S* \$ S4 ~是不是需要在DSP.CFG中进行配置1 B* @8 `3 O \7 z( M
我现在的配置为
1 s' J/ R$ V; g! W' h: ?# x( M% J1 q0 k# d3 j" n' ?* D O
/*
; N- U/ x0 j7 M) n/ z! ]0 s * ======== Operating System Configuration ========
; Z- r+ S) t% P2 _! c, X$ x */
$ K/ R6 {! O) P& z& Q+ T1 }8 F7 \9 ~1 J7 E" }& P) E7 V0 f( ?
/* no rts heap */
$ p) j1 I; A/ c: x7 K( H3 ~3 K iProgram.heap = 0;( |! Z$ Z; c5 Q; Q4 q, i
Program.argSize = 100; /* minimum size */3 j/ }& i% u# f+ E, v9 R8 M
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大2 G+ w5 `% S5 x) H2 L% c
0 N% f* P6 e: t/ F% }
/* create a default heap */
& ~4 s1 D8 |% [1 H2 F. K* zvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
6 L- x& b) o* }. |$ c$ Nvar heapMemParams = new HeapMem.Params();: V0 ]1 Q6 O: V" t0 K" Y
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
- R9 @" z' F" c2 V6 R. J9 y' U5 q
+ m' z. g( i9 R- T8 u Kvar Memory = xdc.useModule('xdc.runtime.Memory');6 ~% X1 i+ o: u$ ^5 E
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
* b& K+ m* z. T7 ?) \ B
8 P, P, m3 L! C+ v9 l/* configure System module */
8 I; w6 ~' ]/ ~& Q5 J$ yvar SysMin = xdc.useModule('xdc.runtime.SysMin');
( v- D* i% K% N! ]! ?SysMin.bufSize = 0x1000;
: J/ j/ `: ~5 B8 f7 v2 GSysMin.flushAtExit = false;0 R9 x7 f' K( M# J* o+ b
1 W9 N' P4 y& R$ l; [' [9 d2 c1 ivar System = xdc.useModule('xdc.runtime.System');" I1 c9 {2 t- |4 r. t) [
System.SupportProxy = SysMin;
6 y1 }: Z4 x, f# I8 q
5 v( d$ J5 u3 i g1 r/* configure SysBios to use the lower half of Timer 1 */ p1 c5 c9 U0 P- S& v. m9 |: x
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
# r/ c$ _3 X! @0 ?var Clock = xdc.useModule('ti.sysbios.knl.Clock');
" C$ E9 @8 K9 x- m" Z6 I* DTimer.timerSettings[1].master = true;
( a- g' P1 H5 O4 P7 Q ^Timer.defaultHalf = Timer.Half_LOWER;
9 S }( Q0 |3 g$ {5 I. uClock.timerId = 1;: e8 O7 F7 P# L% v$ ~! z0 L
0 a% s" j2 I! X7 v! Q
, y9 {9 H/ S& t* e+ ^/*5 h% U8 X+ t% y" U* G5 O
* ======== Miscellaneous Configuration ========
' O# P8 y4 v1 M" V */ h+ M7 T# j! q0 ]! ~ \
$ x& F N+ ?" y& j* V# }8 N
/* set default diags mask */3 K- [9 n( f7 K* S9 C' \
var Diags = xdc.useModule('xdc.runtime.Diags');% Y5 `) d2 N3 g0 t. p5 h( T
var Defaults = xdc.useModule('xdc.runtime.Defaults');
2 x: w: m8 v+ z4 n* ^% u5 F3 h( t4 r% k; q% B6 Z
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
1 K( Q1 L1 s QDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
; u+ F4 P2 s$ X5 lDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
* d# o' l, b+ |6 pDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */% k( P2 ?5 O& p2 A. [ J
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
) i2 |+ V9 Q/ U7 ~Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;+ I0 j- e* ^* o$ }. [* w
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;/ k2 x" V; ?% W/ p
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
$ U% I3 O% X6 g7 D ?Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;. ], k( K9 ~7 n) u3 J( n
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
0 n- a( p% h6 A+ V" c9 M+ ~Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;. w0 B1 N) R1 M' Z3 k. r& G2 S
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;) t- z; @+ {/ t' Y/ k- l
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
: ~7 E* P( a+ y/ |3 KDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
0 j/ c! ]! `7 U) O) P( X/ f
4 `: V$ X2 W5 r3 s- o/* override diags mask for selected modules */- i; u( q* ^# T- r3 Z
xdc.useModule('xdc.runtime.Main');
3 o! J1 S: A, n) U9 vDiags.setMaskMeta($ f3 ^$ C! p+ V0 t; r
"xdc.runtime.Main",8 I8 S3 P( S# m @- Z% h
Diags.ENTRY | Diags.EXIT | Diags.INFO,
& q9 d% {7 e* H" r$ F" @ Diags.RUNTIME_ON" n' }. ~" O3 P
);
4 w6 I2 k" g+ E, E2 ^$ [% w- s" D) Q+ i, \. @
var Registry = xdc.useModule('xdc.runtime.Registry');
# ~7 ?8 Z! }! l! V% ERegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
/ o+ H5 D% F, m: e5 I! yRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
& B7 ^0 f2 u H" v/ YRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;3 e4 C1 U& w7 ?% T% ~; B/ g
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
/ C6 G. C( {: {' N* s( E1 U [) e; w& i
/* create a logger instance */
1 J) b2 A% V) O, j! }var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
; b: G' N5 T4 T3 a4 q1 z, avar loggerBufP = new LoggerBuf.Params();' V' P. {) m" X" O7 P9 c
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */( H" |& f" o$ a w* g; T) `9 R
loggerBufP.bufType = LoggerBuf.BufType_FIXED;, t, Z& w: d8 W) @. C# Q4 ^8 I9 M
' b* U8 I$ U. ~) ?4 C. P
var appLogger = LoggerBuf.create(loggerBufP);; ^+ n) k0 a8 j5 f( J1 z+ v3 L
appLogger.instance.name = "AppLog_Core1";
~% B* t! b- X8 R& S7 A6 P, u& KDefaults.common$.logger = appLogger;
9 U$ u$ }+ H- W; yMemory.defaultHeapSize = 0x8192;
8 F& j' s3 |! I3 W" KIdle.idleFxns[0] = "&LEDStatus";# {2 N7 E' s" t6 W7 \, |
Cache.initSize.l2Size = Cache.L2Size_32K;5 b, f: _% u' q" x
' x& l2 m2 ~" }+ a1 L0 j+ x9 U w |
|