|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明7 S; l# J J4 c9 B" Z! d" K& I
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下; O/ B: m& n. ` D! K$ z
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 p9 }& M# G8 N6 c0 r. f9 p2 c2 e
$ b: h: c) E4 O" ^* y
是不是需要在DSP.CFG中进行配置
3 m0 A2 S# \( r3 ~( z+ `我现在的配置为& A% a! F6 q9 E" E% l! z- X/ A
! |7 T. X' `# o' ~- J/*
: }6 y! N. G6 _. G3 W8 e- S * ======== Operating System Configuration ========
8 q9 m" h: S- J% y& Z- B( }: h+ e */+ T% ^% W& Z7 }8 ~
M8 `0 ]+ K7 H& u+ l) X/* no rts heap */% d5 Z4 B! |. e/ s8 J
Program.heap = 0;' q' o" C4 N2 L; R2 e2 ]8 f" u- J
Program.argSize = 100; /* minimum size */: |. @2 D- H5 F7 R; k
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
$ N7 j( O9 d. c; N. {1 o. \+ Q- }8 N$ m& H x! n
/* create a default heap */; V' F% o5 t- [. s$ E9 i
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
: z; L- f# z- c6 q6 J) fvar heapMemParams = new HeapMem.Params();! C1 S7 j/ _5 @9 M/ e' z
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大. Y3 z* Y/ S7 v& Z& `( n
8 \9 P9 v; u3 B; e. y0 X. dvar Memory = xdc.useModule('xdc.runtime.Memory');
2 e _, K3 p& J5 KMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
}! B( u3 q7 a3 x4 k6 s3 N. M% O- ]3 s, }. W' ^3 e8 V, e0 d) M8 Z: ~
/* configure System module */
) E$ v+ e5 W' G5 Mvar SysMin = xdc.useModule('xdc.runtime.SysMin');; |. j, ^" g% W
SysMin.bufSize = 0x1000;
/ T o( A* {0 X4 J A+ ~SysMin.flushAtExit = false;; I% u/ H4 U k, L8 _* o
, w. O* |: ?9 m, D
var System = xdc.useModule('xdc.runtime.System');! c [% N6 n& W5 z
System.SupportProxy = SysMin;$ p+ }' s P! U7 J7 r, Z& O
. w) X! q' B# ]; l; w3 j/* configure SysBios to use the lower half of Timer 1 */
6 T/ S6 g' c R5 {! `7 E1 l+ mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');- m2 t% v) z9 P0 V7 n4 d/ e
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
' z2 x* F/ k0 F/ uTimer.timerSettings[1].master = true;
4 E( w a6 ]& d0 VTimer.defaultHalf = Timer.Half_LOWER;4 z' m5 G' }8 T/ ~ _ X
Clock.timerId = 1;
8 f M# D4 }. O" Y( \
2 X7 v2 j! ?/ ]# G3 L- E* Y C% ]& C( z9 H; G
/*' d/ |- k; F& g* n' w; @
* ======== Miscellaneous Configuration ========, Q$ q' p9 @" C- ^: Q
*/
( n( ]' k* B- S$ P& X; C4 y/ a) j( }+ S4 i% Z
/* set default diags mask */
5 ]) D/ S. T0 Y3 xvar Diags = xdc.useModule('xdc.runtime.Diags');+ a* e! c6 l- S+ J6 u! ?$ {# `+ |
var Defaults = xdc.useModule('xdc.runtime.Defaults');; d- n4 E4 U6 F$ K0 y
: f$ e) `1 l& K9 I9 g! @Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
& ^. t5 c+ z8 Y4 f v* g5 @# ODefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;! z" U, ~+ |8 ` {
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
* M* Y; A- ^) c" |Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 ?) e! f' C. H1 S$ c6 R5 h0 J& F
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */6 L. M& R. ~% O. g& Z& |% f. G
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
# w- D, \6 q/ R( L% [/ n9 DDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;4 }: R. |( t$ p* G1 ]
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;& g2 f( S+ c# w# C
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;* C; _$ w, j, k7 w& l ?: h! a
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;- e7 d" ]/ V& p$ b4 P. J
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;& @5 u+ O7 m# K
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
7 g: i+ g- [1 V3 P3 {; VDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
5 [! N# L9 E2 p8 mDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
* O7 F5 g3 K, ~- d. p/ t3 V2 ~' [- `/ t& H2 D
/* override diags mask for selected modules */
& e3 n2 r7 Z3 Z5 exdc.useModule('xdc.runtime.Main');/ [4 _+ p8 B1 X- ^2 N2 D) N
Diags.setMaskMeta(6 i! A( _4 ~- h$ o# `
"xdc.runtime.Main",
% L+ `3 i( J% k m Diags.ENTRY | Diags.EXIT | Diags.INFO,+ a, o, ]: ^; h6 A2 b% o
Diags.RUNTIME_ON0 w4 U" n; {7 _9 l( ~% W3 p
);
0 f5 t2 ~' e" l, U2 e1 G& X% q$ \8 C2 Y. G; O4 T
var Registry = xdc.useModule('xdc.runtime.Registry');
8 f: E) u$ N9 L/ O5 }Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
$ s9 S3 k& B* t6 M) @Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;: q( [! H% h0 @$ i, v7 m1 s1 u
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;4 C* ?$ V( ~. G, P0 W
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;1 U+ D0 U, w6 E" n
& Q6 t3 _! j6 a8 S+ C. Z- d0 ^/* create a logger instance */$ b% C) W o2 `* Y' D
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');- {6 f- s: o% N/ e
var loggerBufP = new LoggerBuf.Params();
T+ Y$ X& w/ R4 z; m" Z7 a: d( P0 |/ SloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */3 j- ?' j1 V/ ?% _. Q. {% z
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
2 V6 w! V2 L. N/ T
0 F: O6 U7 \0 w, ]6 Y/ L: G# lvar appLogger = LoggerBuf.create(loggerBufP);6 ]# c' p. l/ m0 ~ I
appLogger.instance.name = "AppLog_Core1";
! S B' O9 D& b, l f) ^Defaults.common$.logger = appLogger;
* c! b( L x# v% F1 C9 q- q* {& {, zMemory.defaultHeapSize = 0x8192; 0 G& b8 R/ }8 N/ }9 _, a3 @6 o; c
Idle.idleFxns[0] = "&LEDStatus";
3 Q, t; b6 B2 X1 V: s/ wCache.initSize.l2Size = Cache.L2Size_32K;3 e. ~3 ^$ S& t' n( {) n+ b2 Y$ h
# A2 s/ t* S' v* Y' l, a. m
|
|