|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明6 |/ l& `1 |1 ], A# m/ A
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下6 Y ]/ o+ A4 O1 n9 x
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
6 r% C6 B* y6 }8 ]0 N H0 J4 r2 l( \8 |1 |5 Q! j" B% U+ I5 h
是不是需要在DSP.CFG中进行配置
( ]6 \" d3 g+ x" s+ R0 v我现在的配置为
$ r% v( O V0 K% Q# I" J: w& T/ B; o4 ]% T: j
/*( r7 k8 M$ n) B7 O
* ======== Operating System Configuration ========
# Y/ C# b+ W4 r) D) X8 X! s( O */
( q- m+ N1 |0 L! k6 N: B* r; L+ V
% C# E( t4 t5 r$ n! G/* no rts heap */
; {8 b# s- V: K6 A9 F! B2 j) h; dProgram.heap = 0;
5 K' c7 T; I0 M S6 U4 l1 HProgram.argSize = 100; /* minimum size */
$ i" j4 L/ V: K1 B; i" i* g. vProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大$ E* a( c. ]1 q( f
0 Z0 N2 @! g1 n; I* `/* create a default heap */
: e6 R- e' j/ `) qvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
- A- m7 Q8 E, jvar heapMemParams = new HeapMem.Params();; O$ A- P$ u Y1 E# h0 r0 p
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大/ {8 I- K. @# q, e2 P8 E) P1 [
o% v' P6 I/ ?( D: ]$ m
var Memory = xdc.useModule('xdc.runtime.Memory');
# c. l+ K v" D' m1 xMemory.defaultHeapInstance = HeapMem.create(heapMemParams);. ~+ ?! ~& ~: w R4 r$ O1 n u
C- K& @; j: B1 `* w" v; C& e/* configure System module */) S1 K! {* o; ]9 H$ j
var SysMin = xdc.useModule('xdc.runtime.SysMin');. ], d9 M3 C0 r( c8 D# h5 q
SysMin.bufSize = 0x1000;. k2 u0 @* C; n! I2 V g; Z
SysMin.flushAtExit = false;, H x1 e- B, t7 b+ O. |
* E, Y0 t# h: k. ]+ i/ [var System = xdc.useModule('xdc.runtime.System');& l; F: N' b" d* a) k" R. u) E- H
System.SupportProxy = SysMin;
: Y+ b: B7 z! _1 d
& l* N& \/ O2 w! F6 i/* configure SysBios to use the lower half of Timer 1 *// H }/ V' i! d5 f3 {6 }% z
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');6 v) Y, }- d7 D, F! W
var Clock = xdc.useModule('ti.sysbios.knl.Clock');: O! f8 W: g( a/ Q6 |0 e! }3 X
Timer.timerSettings[1].master = true;
- `$ k2 w. T5 z) ZTimer.defaultHalf = Timer.Half_LOWER;, j7 R/ h5 `- k2 z2 j; b* u3 u9 ]
Clock.timerId = 1;
1 q. s9 `$ h" `5 K; K) G( A
7 I# w" r. h! n3 Q0 W2 _, w5 c$ U
; u0 v' ?2 @# S* E/*# l) K2 r* T' n9 g7 C: c
* ======== Miscellaneous Configuration ========
: i$ B* X$ ~. k# C: _8 e2 A */
7 ?2 K8 {4 m4 [) _% D0 Y) u% o% a9 q; I7 ^: o
/* set default diags mask */. _. x% a" ]( h2 L9 n) a1 U
var Diags = xdc.useModule('xdc.runtime.Diags'); q% ^. P% Y# w, D8 t t! g% v
var Defaults = xdc.useModule('xdc.runtime.Defaults');
$ b# {/ O+ |% U% j! |& h
0 G4 v8 `( u, v1 I/ o, oDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;6 L! f/ c7 V, y. N' W# |+ e3 ^
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF; k% |) u2 B2 K& e( J
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
# G( ?" {5 F0 S* b8 uDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
) N, M1 e/ R1 C( G7 pDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
% n: C- I! t, y& _: A! R) zDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;% }+ c0 c) F1 K7 S
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;2 I% {8 T* y/ L9 x! } I) G7 _/ ~1 |
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
6 W# ^# Z# K, @Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;1 u7 x4 f. U5 @ |& T8 I
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;8 N/ Y* L0 N! a% D1 t+ {4 m! p
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
6 }" }* C+ g9 g) r8 JDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
3 R' i6 Z% Y$ uDefaults.common$.diags_INFO = Diags.ALWAYS_OFF; y3 m: C2 Y( c
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
3 m6 h+ p% X( M1 l, ?
3 ]# O" ]' T! ]' R/* override diags mask for selected modules */5 X) \' z5 C7 B$ c2 ~
xdc.useModule('xdc.runtime.Main');
[+ ^7 l' O& M5 l$ i6 UDiags.setMaskMeta(+ z' `: u, G3 z, W
"xdc.runtime.Main",; e4 ]. [9 t; k5 W
Diags.ENTRY | Diags.EXIT | Diags.INFO,( i* v- V9 B' d+ r, i F: p! p, r
Diags.RUNTIME_ON( L, i/ R1 o* ^" r( Q
);
/ \9 z1 C# g; E+ B# t( D: y+ w9 @2 w/ c$ \5 Y, u3 d; f% B7 l+ V- |' T# f
var Registry = xdc.useModule('xdc.runtime.Registry');0 T/ M. Z& e8 Z, y6 L* h+ \
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;, [- w( @# Y4 g9 o- P5 L. ?
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;, A. D6 x8 [4 Q# O# M8 q& c+ Q
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
6 D7 o2 ^/ G1 ERegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;! g1 k& y2 U, N7 ?! D
# I7 F7 L3 @/ }$ q0 q: B2 `4 C
/* create a logger instance */
9 f; |% I( P. ?, B1 tvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');/ J" l5 f, a- j& Z6 j
var loggerBufP = new LoggerBuf.Params();
7 U3 V3 e2 ]+ c& n+ K5 V' D. ploggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
j. x E `) [2 ~4 r0 w/ VloggerBufP.bufType = LoggerBuf.BufType_FIXED;- d$ i- B2 F# K! Y
; {4 Q s. a$ evar appLogger = LoggerBuf.create(loggerBufP); J {' v; u; h( B( o! f4 v
appLogger.instance.name = "AppLog_Core1";0 L+ |" F/ l9 a3 L2 f3 x
Defaults.common$.logger = appLogger;
+ {' {( N$ e$ D, b( J& L2 AMemory.defaultHeapSize = 0x8192; : G8 B: f' H0 B2 X) _
Idle.idleFxns[0] = "&LEDStatus";8 P7 z. d9 m5 z2 u4 v& y
Cache.initSize.l2Size = Cache.L2Size_32K;
& ^ F2 t4 a# e F) J# X
. L+ T% ~' q1 x |
|