|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明 w, S# s" _$ s+ N$ [
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下) E# v: @' P/ ~) y0 f! @
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
- h! w! X4 Y+ W4 Y) e+ ?- G
8 [4 Q& o9 V, c是不是需要在DSP.CFG中进行配置
6 k& Y% T: Q0 Y5 t2 F; ]4 _我现在的配置为
3 V6 V% Q' Z# h! e% Q2 n$ O3 a$ J. M8 I9 g0 [& B w
/*
7 r8 C3 }( Q, _$ p * ======== Operating System Configuration ========
: _) `% f( U6 W& R5 I( k5 I. Y *// Q% E' k5 L4 r% `
5 k. p. @- A, v& Y, N3 D; ?
/* no rts heap */6 ~$ }2 U9 l3 ^9 P3 w
Program.heap = 0;
" a" B! H2 z' l, |" h7 Z, t5 vProgram.argSize = 100; /* minimum size */
5 d. a5 q" }/ ?( i% a% n5 n9 oProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大( S& i7 `! r- h9 D, Z
; x9 M- H, ~: d
/* create a default heap */6 P( Z# i a% D" T( U, j* F/ H
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');$ G/ \* P! V! ~; K
var heapMemParams = new HeapMem.Params();1 p) i5 u8 z$ e8 T+ o! I. v
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
0 C4 K c" n4 N& ]: R4 z: I0 {
7 s$ A! u7 M& q3 }var Memory = xdc.useModule('xdc.runtime.Memory');
# w6 h! P7 S( ?, [$ g3 m' e- t2 dMemory.defaultHeapInstance = HeapMem.create(heapMemParams);$ i3 e2 Q( Y, B8 r
. F6 v- h1 t; j8 C
/* configure System module */( d+ o( J& g5 I3 @
var SysMin = xdc.useModule('xdc.runtime.SysMin');. L- p9 x K/ K+ H# F) R; p- G3 ]' A
SysMin.bufSize = 0x1000;
4 G. Z6 ]" D+ G! ?* e' X6 A! k% eSysMin.flushAtExit = false;
& @4 f1 q9 b. ~- k$ x) i' P* @
) \6 k v0 k% s. j: |" B5 d7 L( fvar System = xdc.useModule('xdc.runtime.System');
6 _' y+ H# I m: Z7 F) DSystem.SupportProxy = SysMin;. k3 x V7 n. o6 E# U
' z* t5 a4 G9 ]. Z6 M' d9 i
/* configure SysBios to use the lower half of Timer 1 */
7 J3 m) [' e$ I2 E6 x8 Nvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');$ M6 B8 V) r6 X) \2 T
var Clock = xdc.useModule('ti.sysbios.knl.Clock'); T. O6 T+ \+ _3 L5 K7 C6 u" i
Timer.timerSettings[1].master = true;
; C0 V; T, g) j0 [ OTimer.defaultHalf = Timer.Half_LOWER;
/ `' G9 R- ^& n9 o- k eClock.timerId = 1;$ y* e6 a, C" O: g7 `/ H
8 w( x9 L$ t2 t% x- M) {9 V! J/ b
) {; r* ]* l0 l6 ^9 I/*8 m9 D' Q* d+ P. M- X
* ======== Miscellaneous Configuration ========
" N! s% Z$ D. ?; k+ ^3 ~ */
- J' c. }$ m' X; ?
+ }! [! g& [% N, Q# t/* set default diags mask */
( w7 z& C% H0 c9 V0 X+ y1 uvar Diags = xdc.useModule('xdc.runtime.Diags');% c+ ] r4 m# F
var Defaults = xdc.useModule('xdc.runtime.Defaults');
" ]+ \1 D7 G' M7 W7 D2 e! ~* X- L2 H
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
" }* d5 [' n0 G7 G" H6 m! GDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;- S7 e3 e& Y5 \7 d; o
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
; o O( d6 N- I% K0 {; N A2 Q6 Q3 RDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */! B n s! U1 y
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
& C, A# N* k/ Z, x* J2 D1 K# X' M; xDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
8 A" ~; c; R4 R! z( GDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;1 p( |1 m+ Y. j( \4 @
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;' j2 J, y3 G5 M, }& h/ a$ H
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
5 e G/ [% K2 P1 Y& p$ nDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;/ g% |5 c3 e/ l" P
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
, v" M' Y% l+ d: B/ WDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;! Z# V. z( \7 m7 x+ d2 Z0 {
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
" u; b$ E: s8 U' EDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
1 N& L/ j7 s7 y4 S
: `! B4 n* C: C/ m/* override diags mask for selected modules */" X7 P! j2 [3 f9 i- B9 ]2 Y
xdc.useModule('xdc.runtime.Main');
- p& u1 z6 J3 R4 k9 y% rDiags.setMaskMeta(
9 \! Z: l& T- ?$ y5 _ K# _3 { "xdc.runtime.Main",1 F5 w6 M0 T+ l* d2 c
Diags.ENTRY | Diags.EXIT | Diags.INFO,
) r1 \6 T# O7 h( {. d/ ~8 {, y Diags.RUNTIME_ON
) G& ]9 X9 z( n# L6 F+ L( j3 e);0 y7 E, D+ B5 G3 y# i' O( O- n+ Z
- m9 E# T5 y' e# C& Jvar Registry = xdc.useModule('xdc.runtime.Registry');% {% E, ?/ K3 p& _$ | {
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
( H+ j* n6 T& M+ i! G% _( [: IRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
3 N+ e3 F8 w4 q* y9 Y RRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;" R {& G1 ?$ v- l
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
( l; v" I8 {/ ~/ U1 p
$ b% O$ E3 @& L8 w) h$ D/ h; l/* create a logger instance */
- J4 L" D" I- L( D& g7 f2 P) N, |/ Dvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');! t# i- j- A' Z( n
var loggerBufP = new LoggerBuf.Params();& H/ g d/ O% C/ N- _
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
7 z1 J I$ @: w9 ^" K* A7 GloggerBufP.bufType = LoggerBuf.BufType_FIXED;9 D5 W" s; v' c# a$ k
- x7 G9 Q) V4 q2 t; ?1 \: Q! f% k& i
var appLogger = LoggerBuf.create(loggerBufP);5 j6 Z7 N: T. o$ D8 l) ]! z
appLogger.instance.name = "AppLog_Core1";
8 q: m$ u- P7 G" q3 n) C4 |2 ^4 jDefaults.common$.logger = appLogger;
; n4 e" N* @# D9 s+ F6 N. p) i: y+ rMemory.defaultHeapSize = 0x8192;
* l" `4 j1 H2 A" FIdle.idleFxns[0] = "&LEDStatus";
0 v2 W- Q" |3 [+ v9 _* UCache.initSize.l2Size = Cache.L2Size_32K;
% G. K1 ?" ^5 V4 @; ]# ?; g- h3 i7 p! j! |: z( S2 L6 b
|
|