|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明7 r8 k N! p. _- C6 `. [6 f
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下% ?6 R5 i% T( O- V7 W0 x* z. {6 R" ?
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)/ i1 ]- r ?: o' m0 }5 L' R' E
. r% a" Z: M- d" h5 H; q; K1 u; v% K
是不是需要在DSP.CFG中进行配置
! P4 Z2 q0 J$ D/ C G我现在的配置为
* `: \6 f: l- v6 }' ]3 }2 p; t4 B+ l$ R) `0 O: H: \# b; _4 E7 e6 A
/*
; S6 z( n8 @, a# Q5 ~, l * ======== Operating System Configuration ========
8 |2 @9 v6 D8 s5 ?% H& } */
x2 x% s0 G8 z/ r* E [) ]! t" U, A" x8 D0 V4 A
/* no rts heap */& i K; x4 T) y
Program.heap = 0;/ s- {3 m$ t5 X) y
Program.argSize = 100; /* minimum size */
! k8 ~, {8 y' SProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
: J% J3 K. {9 I1 Y9 O1 d X0 p) T9 x8 b I* ?+ |6 y2 Q
/* create a default heap */
& L% T4 Y3 j9 }# i% V* U2 yvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');2 \& ?. l& H1 Y6 D0 g
var heapMemParams = new HeapMem.Params();& x" \. W7 @) E# F$ S
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大4 ^ F: g! y: Q+ I C
8 f6 C. W- n& F" c& ?) ? r
var Memory = xdc.useModule('xdc.runtime.Memory');
" x* Z w, R. l: A* ]Memory.defaultHeapInstance = HeapMem.create(heapMemParams);0 r- S$ ^% ]1 ^8 Y- w/ |) y
* b0 J: s; Z! [. v
/* configure System module */2 z% m, k @2 U: s5 E9 B2 i0 m
var SysMin = xdc.useModule('xdc.runtime.SysMin');9 B0 |( X" t( N3 e5 M4 _: e/ r
SysMin.bufSize = 0x1000;
' R- s/ [% I+ B0 }& f% XSysMin.flushAtExit = false;
' U* D1 j' a# o, W6 ]6 J5 H. F3 S" p [: ?6 t% d' ]
var System = xdc.useModule('xdc.runtime.System');8 B1 K) _& p- r0 m
System.SupportProxy = SysMin;0 H5 }' F. r# J
' v" `- ?1 I- R7 Q) K/* configure SysBios to use the lower half of Timer 1 */
/ |7 p& i; {3 c# ~) ]var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');* g- B( c# y5 Z: v7 q) p- o. m" K9 i* F. F
var Clock = xdc.useModule('ti.sysbios.knl.Clock');1 j! k8 U7 ]8 o' m6 z
Timer.timerSettings[1].master = true;
& p# o: A+ F+ y6 c9 ]Timer.defaultHalf = Timer.Half_LOWER;) r+ k. [7 P$ K. a, }
Clock.timerId = 1;) {9 r p2 [7 E( r: M" n) M8 W/ |
' D- K8 c( q4 v: C9 u5 \% T
C3 L% `+ H7 i& H
/*
1 V/ ]- S! y8 S5 d1 _2 G * ======== Miscellaneous Configuration ========) x) f3 J. i3 E2 t9 b
*/) |# k# p5 \3 l) ?6 b
/ Q# h) J# _: z; k& D/* set default diags mask */
* F0 ~' ?9 A; I# e" Ovar Diags = xdc.useModule('xdc.runtime.Diags');
2 P5 C* b' e( t+ q$ c5 {3 Tvar Defaults = xdc.useModule('xdc.runtime.Defaults');
3 w5 I' {$ ]: C- e5 h. f& x! t" X, @0 I7 G9 d9 p' t
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
* I$ r$ S/ ^* d. NDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;& ~1 A) C# j: v- a1 R
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;5 Y2 b1 Q- N' w* T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
9 l( _; G+ b# l: @7 KDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
- `3 M4 g! z( h1 S+ H( v- \3 `Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
) `- N% c7 m: p( gDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
/ Q: k6 U; {) q2 `% rDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;# i5 S6 A2 f2 u7 ^
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
( {0 [* p+ p pDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;: F$ T7 Y% m, `# \
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
$ G! @3 ?2 p1 Y, u# WDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
" V. H- N- S6 A9 FDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
2 c) x( t' t7 ]( E) D) h1 kDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;3 M; s- l Q O; x8 l, h
5 u1 Z3 \4 A" P! G2 D
/* override diags mask for selected modules */
, S: }* a8 H' rxdc.useModule('xdc.runtime.Main');
' H* _% Y5 L, N* H+ N5 J; Y+ x) t; UDiags.setMaskMeta(' `+ k7 }9 p O
"xdc.runtime.Main",
8 M' B# z _ j. e Diags.ENTRY | Diags.EXIT | Diags.INFO,
" X8 Q" C v9 p. n Diags.RUNTIME_ON( ?* }" v: a; l9 f& L9 D# v; u
);
2 B9 G. Y+ C0 n2 q
/ y# }! a l F' C$ Avar Registry = xdc.useModule('xdc.runtime.Registry'); n% E8 [7 F0 b: Q3 o( U5 L- H
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;2 P: `3 M+ P) b
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
7 \. x: j" u) l+ b9 g8 o$ V: U# jRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
4 S5 L/ G6 r+ GRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;/ r/ K& K7 g+ c/ i3 I$ |
) {6 X& `" F5 ~( t. x. Y I/ F/ g
/* create a logger instance */+ D& S9 V7 R2 L4 ~
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
" e" D4 k; R! n2 w4 O1 m4 i' P/ |var loggerBufP = new LoggerBuf.Params();
2 f# ?# \2 D8 w$ @loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */1 R, p; w$ _+ ?' s8 ?) u, y( J
loggerBufP.bufType = LoggerBuf.BufType_FIXED;! G% }* N* Q3 f' K
) A3 X' q9 g) Z1 f% `( g8 P4 F) Cvar appLogger = LoggerBuf.create(loggerBufP);
2 q3 O3 F, c9 s& `6 Z4 u2 AappLogger.instance.name = "AppLog_Core1";. ]. ]' s8 R9 j5 B
Defaults.common$.logger = appLogger;/ {2 a* F) a" R$ P Y3 t" D
Memory.defaultHeapSize = 0x8192; * I# h2 i8 [9 I2 c0 B
Idle.idleFxns[0] = "&LEDStatus";
1 q. ~+ l" x5 S4 o# BCache.initSize.l2Size = Cache.L2Size_32K;
. P$ B7 t* @" u y$ J0 d) a: f1 v1 N" R7 t" A. i
|
|