|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
3 G+ V9 X0 E* [我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下% d% ~: } H2 t1 u% @
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)9 A: N9 S" w6 J' y
# ~' g$ o9 ?! R6 A7 a. d/ {是不是需要在DSP.CFG中进行配置9 v$ t; n# j {/ V2 ?' f' `
我现在的配置为
4 E+ s+ Z; W9 F( C8 C# R
4 f' V, S/ l9 y) g% E4 i/*
1 k0 b; d! e2 I& h( L * ======== Operating System Configuration ========! c* V3 D8 ?6 ^5 J! I+ t- M' m
*/
% h( z& @) R: y# ?6 @2 H! c/ P2 Y# m( z9 A+ f+ o
/* no rts heap */
0 |* i: r( i& s* O) m: @( bProgram.heap = 0;- r% D$ K" n, d, D
Program.argSize = 100; /* minimum size */$ B$ v/ g3 k4 u5 @7 J8 q1 h# |/ M
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
5 w$ K8 Z" {6 A" I$ H8 k- \; ~4 w9 j( T5 D2 g
/* create a default heap */4 |/ b! b/ k) P6 O0 q* b
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
3 ] C5 _$ W* @: B, xvar heapMemParams = new HeapMem.Params();
$ e- X( |3 ~# b3 _3 s- HheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
6 Q3 i& X0 i% _% X# Z% T+ N) a2 Z4 R# u/ k) u7 i- u/ I. Q6 z
var Memory = xdc.useModule('xdc.runtime.Memory');+ ?% Q8 E, ^% B* x# H1 W+ z
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
5 e) f6 n1 A1 y9 O* `$ D# a
8 V: L7 l# K4 P1 w, @! S! u T v/* configure System module */
9 v4 ~. B) m% x7 s, w. r2 X0 Jvar SysMin = xdc.useModule('xdc.runtime.SysMin');
6 e* N4 t* A. xSysMin.bufSize = 0x1000;
1 `2 R, s- [6 B7 e3 T) xSysMin.flushAtExit = false;$ v* f, b/ E; g; L
( P( L8 v% r4 u1 C. k+ q2 P# |6 H
var System = xdc.useModule('xdc.runtime.System');
3 H' g/ J, k# O" |) zSystem.SupportProxy = SysMin;
" {0 u S9 m7 c, \/ {8 L) W! z& [5 a d3 ^ F, F% g
/* configure SysBios to use the lower half of Timer 1 */, ] Z; c. C0 D3 t6 u
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');- H; i4 H, `9 C0 x3 P b- }, V
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
8 Y: N$ p7 `# g/ ]( D1 x# yTimer.timerSettings[1].master = true;
$ S% u5 F; Z+ `3 p! F( I( b: RTimer.defaultHalf = Timer.Half_LOWER;
/ p6 o6 e0 F1 fClock.timerId = 1;
) U# [* [% x9 ^7 \ B( f
8 u1 U: d% n8 z0 M4 M/ R1 `
/ V1 Y$ V. b1 X/ f; K0 J/*% ?! h3 K& h$ r2 F
* ======== Miscellaneous Configuration ========* i3 G: Y9 V% l. A7 e2 M7 X
*/
# [' v, S' y9 b! S6 S9 ]* S: I; u. i1 z
/* set default diags mask */
4 e% W" _3 t9 e% ~! P8 Cvar Diags = xdc.useModule('xdc.runtime.Diags');/ b- S. e' e3 R4 q. m' t/ D$ Q
var Defaults = xdc.useModule('xdc.runtime.Defaults');
$ f+ o- A- c/ @! }( U. N
. c8 z! V8 z, zDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
- a1 ]& x. H; L; N+ P7 L' hDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
+ M1 H' S$ Q+ P6 l. ]% ~0 HDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;% P: r2 o! ^: X+ k! j6 n$ |
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 W% S% [: J% X0 b7 F
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
) ?- F2 u P1 i5 Q, @" d* DDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;/ w+ N. s4 S% u' j) P* @( \
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
/ l2 z. Z5 e: UDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
- X# T: N9 ^) s6 @# ]' `Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;- _8 Z* X: x/ t% W, @
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
) w2 Z. X1 Y8 jDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
: a0 o4 {- y: h( kDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;- |2 {* w3 L: Y; h
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;: x4 Q3 |, q* z2 v4 z3 M! v; ~
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
- D9 f7 i/ {) o' s& |; o: o& z7 x* e- o4 i& i# H$ m; N/ Y7 v3 l8 {
/* override diags mask for selected modules */
* \1 y) \/ u; T7 ~0 ^xdc.useModule('xdc.runtime.Main');
% x: E. K7 `: `. s& H- vDiags.setMaskMeta(
% k( g: U E! T8 n3 f "xdc.runtime.Main",
0 D2 F, }' X8 f$ @! C Diags.ENTRY | Diags.EXIT | Diags.INFO,
1 b' W, p& A& N& j/ ~5 O Diags.RUNTIME_ON
6 a) }0 u5 l7 E! I6 ~);7 j8 B. e+ f. ~! n& A6 T. n) `
H( S; q$ h2 F6 X, Avar Registry = xdc.useModule('xdc.runtime.Registry');
0 p% \, U. t6 f& F- gRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
6 Z0 r0 J# r' `" ~0 ^, G" hRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;$ H+ P) U' w4 c8 c2 x
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
0 e( L3 P$ x$ B$ P4 `Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;: x- M( k& ~# H. A: A% k0 X
, P: b, o6 P; a0 `2 u
/* create a logger instance */% a" E5 d* H5 u, ~8 Y5 O7 c; R( ?
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
# U' G- ~3 J& Y5 c: xvar loggerBufP = new LoggerBuf.Params();
4 x* U: E" _1 M1 g6 jloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */* O- O- Y- }( J4 [# i' s
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
5 L' v$ P O- P& Z' Z7 @! l7 B( f! Z) U! b
var appLogger = LoggerBuf.create(loggerBufP);
$ K2 w7 i* G2 ]6 }) u8 o- o0 l2 z# MappLogger.instance.name = "AppLog_Core1";
- T! y* ?- G( P* [Defaults.common$.logger = appLogger;
, S9 b2 h2 q. }+ h/ W8 T8 M1 @Memory.defaultHeapSize = 0x8192; $ p# ~; Y: @! N- m4 K, b2 M3 x
Idle.idleFxns[0] = "&LEDStatus";0 g0 {& `' t2 |
Cache.initSize.l2Size = Cache.L2Size_32K;
2 F$ E, }$ l+ A6 A W5 f1 G# w5 Z* O( c
|
|