|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
0 d( S) Z6 r. F$ F( T. M我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下5 Y! L: U/ Z8 Z, n8 D3 |' f
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
0 v: B8 b9 Q$ I
5 }, N; o# r [: t, }是不是需要在DSP.CFG中进行配置3 d2 T( c# l% M$ l, z1 }
我现在的配置为
, U8 z' p7 h j1 J: ]3 h3 t4 `6 W# x- F" v6 a) n' s* b
/*) V* Y5 o; y2 B6 _! Z
* ======== Operating System Configuration ========; ?8 [/ L& q/ e! n) @# E. _% N$ c8 \3 V
*/
* X7 w( N8 q6 U T
p" [1 z; u9 H2 T' w4 g/* no rts heap */
, w* x' _6 _. D5 j( HProgram.heap = 0;
, U! y" Y+ f& ^7 U0 j5 WProgram.argSize = 100; /* minimum size */) y: M/ N9 D* K- T
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大7 b0 Z0 z2 O9 H1 w( @
. d7 M0 d/ D4 y, o
/* create a default heap */8 n# A* d* H3 a$ O5 }
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
4 U: j9 Y! b& _" svar heapMemParams = new HeapMem.Params();+ K5 d( Y" j( b0 T6 q
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大& M/ p E- H9 h8 a6 P; K* ]
0 j) X6 G$ A% {3 V1 ?. }! t2 P4 o
var Memory = xdc.useModule('xdc.runtime.Memory');9 @4 G" i2 h. V5 {/ X4 j
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);- ~6 |* s" j% m7 X, L, M( e
3 ^( L& K: X1 q7 y+ i3 X
/* configure System module */( K! z- W; \* T7 [
var SysMin = xdc.useModule('xdc.runtime.SysMin');
/ F* W U& b9 w! v2 t; YSysMin.bufSize = 0x1000;
& F: F: N6 m/ _4 E, g# \& N7 NSysMin.flushAtExit = false;' Y. `3 d3 W" m6 A9 z
- V2 ?. z; o- z s. i' kvar System = xdc.useModule('xdc.runtime.System');
) {' d5 \+ m/ O DSystem.SupportProxy = SysMin;
: L' W. c. f, ]3 s, v# e+ `6 Y9 _5 C' ~% F/ A
/* configure SysBios to use the lower half of Timer 1 */: R: i) ~. h- X. R( @& d8 Q, p6 v
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
% r# f( B0 K* r; Bvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 E+ S# |$ W1 k% ATimer.timerSettings[1].master = true;- l) `* J( g- L; ~- s3 E! Y% @
Timer.defaultHalf = Timer.Half_LOWER;
1 ?; l+ ^3 B# T( zClock.timerId = 1;
7 g( f8 v, P8 X8 g3 R2 \! w) P1 e: S' }
8 V1 [( U+ ?: n5 |# }' p
/*6 b, e2 g+ i& V3 v) q
* ======== Miscellaneous Configuration ========
# y3 u8 a# L$ q J/ B* {9 w */
3 M, p& W( |( q: I6 K* H+ S( p' O3 L9 A
/* set default diags mask */( e5 @' C: p" D/ K; e f ]
var Diags = xdc.useModule('xdc.runtime.Diags');' D! H$ x* w! L. v1 u
var Defaults = xdc.useModule('xdc.runtime.Defaults');# E7 x) Y; H9 p: i, S; e
/ |. [9 o* Z4 `5 E3 v$ G+ G
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
* Z, |( }: j- T9 L. ^. _3 vDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
" }& {$ ^2 k# q8 U i5 ?6 xDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;; F* g+ H! k- h" E* l5 M/ ?/ x* g$ T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 x# j2 B4 g0 Q3 N& C- \! G0 q' t
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */8 B' }2 _! i' N8 O" M6 ^. { L
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
6 j; O9 u. @% ^" v4 C4 KDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;% I* F: F4 o& A: h; Q8 V+ t
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
& r- ^( f3 O4 m2 G$ R( t2 V6 U8 j! O( @Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;: y `) v6 P% c0 z+ d
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
6 @5 I. X# v) X( P/ I/ QDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
* s- }2 L$ f+ G# H- ^Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
- ]/ h' f6 U" o5 d! J7 g* ~; O7 BDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;( c4 }6 M: Z/ f5 T2 I
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;2 U2 B2 H+ Z" l
i/ e! M: D% v( o9 l6 z2 b
/* override diags mask for selected modules *// `! K, z( S1 p) ]: ]- r
xdc.useModule('xdc.runtime.Main');
/ {0 C) m) H x9 ]0 kDiags.setMaskMeta(
) f& C! h! _6 f( N "xdc.runtime.Main",( G: }" {8 P' f' v
Diags.ENTRY | Diags.EXIT | Diags.INFO,
" { T4 ]0 W# A0 z" A" I Diags.RUNTIME_ON8 T/ k/ @% k' ] [* s) L: J
);
9 }7 c3 _5 X1 @# M, ?
& i4 F' j |4 \var Registry = xdc.useModule('xdc.runtime.Registry');
M) g3 ^* b9 `& Y" dRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;# `/ _2 w9 Z0 g2 t" a3 M, J
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
% H, H; c( s" O; \Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
: O" J3 v0 P5 D) T/ ^8 r2 qRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;7 Z V. }4 H" t4 S B p' n" c
( ^; N1 @1 u; q4 C% e% I9 d0 p
/* create a logger instance */
8 n- L4 l! W3 L zvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');8 Y, O) x" }$ |
var loggerBufP = new LoggerBuf.Params();5 |7 l: [: ]/ y8 V9 m* z0 R7 `5 K
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
* B" T8 y5 z! s& nloggerBufP.bufType = LoggerBuf.BufType_FIXED;* Y+ M& f9 x l6 Y. t: J2 R _
" [6 K& m3 @$ E1 o8 U5 R O5 t
var appLogger = LoggerBuf.create(loggerBufP);5 a7 p, m0 P# S; Y8 x
appLogger.instance.name = "AppLog_Core1";6 P. k/ O4 U1 s4 v5 y9 k
Defaults.common$.logger = appLogger;* F8 }. [9 E2 } ]: H6 C
Memory.defaultHeapSize = 0x8192;
; S4 {2 ?7 E& j/ K' ?Idle.idleFxns[0] = "&LEDStatus";. r; A# k3 K: S9 S
Cache.initSize.l2Size = Cache.L2Size_32K;+ r# c1 K: Z: C' p/ ]: [
' [$ y- ?2 V( l3 P+ L
|
|