|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明7 e3 B( _$ S% Z( B1 [9 A
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
2 l' m' h6 ~3 n" [5 l# S(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 z0 \6 l2 x$ Q; P% B) t
3 R# N9 f2 n- Y1 F0 I! G/ G+ D是不是需要在DSP.CFG中进行配置1 P6 w# X2 {: s( q& O3 o
我现在的配置为5 [8 v( t! d6 f. _& `
& F2 K4 e) F! [( j- N: H
/*
: E g' s4 y, Q( C5 j i4 y+ A * ======== Operating System Configuration ========1 Y2 ]; C; i7 }
*/" E! v% x0 D/ \* `9 r$ K4 d! E" f) ]
5 u) M" C# m- l( }- t; n/* no rts heap */8 ^0 v. z. ^+ M; o
Program.heap = 0;
" o6 ?8 F3 p2 p+ R) T& G& N" AProgram.argSize = 100; /* minimum size */( z0 M j' _/ |2 `
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大) u; C$ R3 V5 @/ B8 U5 l, G& ~3 l* W* `
9 y! k# f7 Z+ k" h7 ]. g3 x4 K
/* create a default heap */
6 H6 d- i* {# _4 P8 I" J% o! avar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
9 k& f" z5 D o% Evar heapMemParams = new HeapMem.Params();
3 `! Z+ d2 }4 ?heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大& _$ v9 x0 f5 M; W+ K3 I
# ~% a' n) J: G8 c! n
var Memory = xdc.useModule('xdc.runtime.Memory');2 W n( V$ t" v. L, ]
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
9 I# p I$ H$ C3 y
/ e+ I9 I/ ~! m! c5 O! ]6 F: ]/* configure System module */3 ?$ Y/ S y& H6 Y
var SysMin = xdc.useModule('xdc.runtime.SysMin');
1 T& H' _8 R1 H" k7 I v1 }6 f) ]SysMin.bufSize = 0x1000;
6 T5 [1 ]4 N7 ~4 A# xSysMin.flushAtExit = false;
! R( q5 j0 g0 U' i/ q2 R8 ^8 U" C+ [: P3 d
var System = xdc.useModule('xdc.runtime.System'); C+ N! s2 [) Z" k' p) K! \- }) I
System.SupportProxy = SysMin;
n: K% E0 z; U/ a( z: a0 r
, u% V7 D. h c1 e$ \( f8 |6 o* }. v/* configure SysBios to use the lower half of Timer 1 */) l' E/ @5 e* O- N, W1 s
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
1 b& {5 S T Vvar Clock = xdc.useModule('ti.sysbios.knl.Clock');" M- {( G* b0 g) L6 U$ s
Timer.timerSettings[1].master = true;9 b6 Q4 k9 F- E0 | }$ O
Timer.defaultHalf = Timer.Half_LOWER;* y' z; |5 B( u7 X& T
Clock.timerId = 1;
" @' a: ? y) L, {) v7 h5 a) Z5 F8 \; }
; x: o$ q2 T- H" F( E& { r2 B
/*5 l* d+ D: a9 n6 H
* ======== Miscellaneous Configuration ========
$ w9 I* [; u& c/ B; A6 O# M */4 n- L7 f& X" v8 B, K
6 ^7 w- e( i: F% Q
/* set default diags mask */' q+ s! F! ]1 I# m. ]- ~8 X
var Diags = xdc.useModule('xdc.runtime.Diags');
9 g5 s. l3 ?; A8 cvar Defaults = xdc.useModule('xdc.runtime.Defaults');5 s: A! `; }! V `9 w! k9 E
* @5 c2 _. ~/ {/ W7 x6 \Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;! s6 P2 @" g6 V p9 n$ h
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;) ^, g" {3 r( T) L
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;1 J5 ]4 ~: f5 X; i" `
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 x1 _0 o4 ~! i* P7 A0 F5 ]5 Z x7 N
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
* }" `4 h7 n% `! C' ADefaults.common$.diags_STATUS = Diags.RUNTIME_ON;8 J2 F! D: g* Y" r
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;+ p" X2 r, }; m1 E
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;2 ~4 b# ?4 b0 X }* x( O1 C
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
' N( K3 i! F3 }Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" d- a& I6 {: C! L- F/ y ^" XDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;5 l! `. }7 } \; z1 a, S. m/ L
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
* J3 V5 t$ H7 A: B( P; zDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;3 Z9 P& g, S( N0 g3 x
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
" g# f( V9 f/ z
3 G) |7 o( S6 |: b/* override diags mask for selected modules */% ~' k u* W6 H5 K0 U! O) z
xdc.useModule('xdc.runtime.Main');8 M- @( [, D" F8 a$ g
Diags.setMaskMeta(
T8 M& @* g6 M0 U% C "xdc.runtime.Main",9 `9 X1 U7 B. N2 M6 a: d
Diags.ENTRY | Diags.EXIT | Diags.INFO,
; K( H: g% ~9 Y2 P4 k Diags.RUNTIME_ON. Z" T; B' s4 X; C, p4 @- a' F5 u2 J
);
3 q* b M) ^0 H( ?; K$ C; ?" H
1 M3 D1 {: g4 V4 k: d8 v1 R" ?var Registry = xdc.useModule('xdc.runtime.Registry');7 |: N! F" s; V7 n7 Z0 f
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
: u" a1 d7 Z5 ]) j) y1 ^+ D; URegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;8 o1 g" Y; K( j% u+ F7 I6 `% j
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
" C. q# ]$ [# L* w6 qRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
~8 R9 n% n" }
4 D% {2 P3 \ u7 z% |; ?; s/* create a logger instance */
5 L. G9 @) ]0 lvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
}0 B4 ], I6 j! p9 h4 K, F, tvar loggerBufP = new LoggerBuf.Params();
# t5 z. e o( E1 W' RloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */2 P& h) {$ T7 d
loggerBufP.bufType = LoggerBuf.BufType_FIXED;& J' g% Q; N% D5 b$ \
9 ^* w& O. {' C6 B( ?5 k3 s0 I
var appLogger = LoggerBuf.create(loggerBufP);
( w: S- t; Q& n1 l* Q, u* SappLogger.instance.name = "AppLog_Core1";9 W( x, v9 l% ^3 Z4 B
Defaults.common$.logger = appLogger;6 M& F1 a X% A3 W6 b) d
Memory.defaultHeapSize = 0x8192;
/ w, D, H( L/ }/ T# Q7 p, x1 _3 t! } fIdle.idleFxns[0] = "&LEDStatus";; {8 `) i" X" X$ a
Cache.initSize.l2Size = Cache.L2Size_32K;( k1 {2 M7 S k V/ A
* h. Y& W4 [9 p' l |
|