|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明3 T" p. M( ?6 |' `6 }0 t1 @
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
- {, D' J# P0 u5 t% E(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
. K+ S' C$ ]3 _9 v6 B) [# ^( y$ k" z1 s' l F
是不是需要在DSP.CFG中进行配置
3 q# B/ K) \ t# T7 U我现在的配置为
7 P: L7 c* b7 k" K# w9 d+ _/ M% j& }* h! o
/*( M" D" K- a: y9 o$ d3 k( V
* ======== Operating System Configuration ========; z7 N$ w" b* a2 ~
*/
, Y9 i8 I- n) S1 ^) k3 i
9 z* ], Y% J6 o* `. G1 q. t0 M/* no rts heap */
# w+ p( x% ^% W% IProgram.heap = 0;
$ Q: K& u `, z# H; ]# Z; oProgram.argSize = 100; /* minimum size */
* I3 M7 _: N+ Y% G' M; v& K8 {9 TProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
, b- r% |% U4 `1 o
4 d( |2 ]1 b: n+ |2 E5 l/* create a default heap */
8 O' O; O5 V' H C% z2 Z+ ~var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
* h% F& ^3 B9 }9 a O6 Bvar heapMemParams = new HeapMem.Params();
9 J7 N, [& r" J Z; ~+ }, g) [/ rheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
( @, q' h+ M( X8 F6 m S. O& K: F3 C' N" q
var Memory = xdc.useModule('xdc.runtime.Memory');
' K4 i5 j" s1 TMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
- z: F6 [: s! W4 ?+ [) O# D' |/ I
* p+ B0 V* j+ q$ a* C5 G2 n/* configure System module */
* Y$ u$ j) P1 p; N4 ?& T9 T, avar SysMin = xdc.useModule('xdc.runtime.SysMin');
2 H5 \9 \. |# p4 m! [SysMin.bufSize = 0x1000;
u3 [( h+ B$ {& u- D9 XSysMin.flushAtExit = false;
: T1 b& z/ j0 C* ]- U+ r' Q
1 e' A# Y) e! a+ T' Nvar System = xdc.useModule('xdc.runtime.System');! X& s0 S& G) o0 E- U
System.SupportProxy = SysMin;, V/ @' Y H& T; q2 p0 X
7 R/ f& l, T& a
/* configure SysBios to use the lower half of Timer 1 */, D1 w# u8 W' l6 A
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
E2 w) x) G9 g; O5 lvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
! b+ n8 v* P1 D8 NTimer.timerSettings[1].master = true;6 r5 ?$ V1 w% F" |4 h2 U( H
Timer.defaultHalf = Timer.Half_LOWER;& s! l# P% ~0 G2 P1 N
Clock.timerId = 1;% m/ F9 o" Y) t$ _
6 ^3 M6 m) f. u: D6 a; h/ H& {! T( Y
/*0 B' r! @/ h/ X+ s* o, s
* ======== Miscellaneous Configuration ========
8 m/ O: A& ~5 C, H; B) R3 @8 @0 J */
4 p. }& i0 q: {8 V1 s" a8 F/ Y- F) _% U$ d2 T- ^+ S
/* set default diags mask */( ^: X: c `3 o4 S: D+ |
var Diags = xdc.useModule('xdc.runtime.Diags');
7 G( p" c, R- i0 V+ d( Kvar Defaults = xdc.useModule('xdc.runtime.Defaults'); C0 O! V( `( w w; o
# }7 p, k3 e9 P9 d8 Q
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
% J7 K f V; a& I2 c3 Z$ vDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
3 [0 V; Q2 C3 [& f" k/ dDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
) E2 o$ J8 V' f% s5 U1 w" hDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */ q# q8 p# e; u* p2 P
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
. H6 R- `- w* S) [8 ^$ V& O8 oDefaults.common$.diags_STATUS = Diags.RUNTIME_ON; g$ _ W. [, Y5 g* T5 u0 B. M
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;( D0 e; x6 l' |1 z- r
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;8 s6 S2 c% w, A5 i; i
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;# w8 X, Y0 o% A( f4 G) G+ R+ S
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" a _$ H* @. L6 [& j4 N6 FDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
' H: D7 N0 q% g. PDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
! O3 X, d2 X$ W1 m# n3 ?Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
}# Z0 }# k8 |1 ]6 [6 YDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
9 r( w! ?- K& A6 E$ B. b0 k+ q* H3 G4 x$ Z# y1 T" O
/* override diags mask for selected modules */; u- U. \9 K2 e! k0 h' s
xdc.useModule('xdc.runtime.Main');
: j) p, W0 V9 r9 ~2 ~9 b! VDiags.setMaskMeta($ e# p. `8 p; d3 U. g8 x* T
"xdc.runtime.Main",
: X) ]7 N; Q$ I- Z/ U7 S Diags.ENTRY | Diags.EXIT | Diags.INFO,
$ c! o$ [# n [2 z9 x( E) o Diags.RUNTIME_ON
, T! ]' W2 l f; H6 X4 X6 e3 Q);: _5 f# w6 |7 m9 l( T
8 m+ _, _% Z* ]3 i. c u/ q+ |var Registry = xdc.useModule('xdc.runtime.Registry');
2 l7 t! W9 D- lRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;9 H6 O3 A" r* X$ y% u- {
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
" X* m- o# f% M0 D1 DRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
, F; i/ H, @( ?% e7 `3 eRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;+ a' w: C% h1 F8 h: X+ L% L* \# |
. ~; h0 `9 u( [& n5 v% t' O: V
/* create a logger instance */
& o/ ?/ Z' C7 X" @3 j7 v+ x7 pvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
$ s: Z9 w: Y% U9 R4 ^var loggerBufP = new LoggerBuf.Params();
h" P/ G) s7 _6 jloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */4 n# k. u5 G% x, W, B
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
$ E U" f% p X/ o/ J- W
0 b/ F' v' [, _" \8 g0 D4 Dvar appLogger = LoggerBuf.create(loggerBufP);1 P7 T. ~! y, i, u) M. D4 R
appLogger.instance.name = "AppLog_Core1";
N4 \- `/ f+ f. N* V2 {. A3 p1 oDefaults.common$.logger = appLogger;
/ N$ j0 C; Z2 `$ C4 dMemory.defaultHeapSize = 0x8192;
: z$ v; f' ^* z$ S* W( S5 A* k1 XIdle.idleFxns[0] = "&LEDStatus";( R/ s5 R) { ~; m, l8 v) i
Cache.initSize.l2Size = Cache.L2Size_32K;- E# k5 z' S9 _% H) \) F, `6 \
& x4 w5 d( o) w n9 d N |
|