|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明% \ D9 g( p$ Y. f' u( u: N
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
0 f. `$ c. h: _0 {- R(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
4 P8 j2 z( K# z' G( G: F4 s! A
+ _; {% ]6 n* O) ~- n& E! M是不是需要在DSP.CFG中进行配置
# R" H' [$ y- r r/ ^& p( t我现在的配置为. c' [- o1 h" x% ~6 j
& ?: K9 {2 F$ k0 p! p
/*
. r: _/ {. {2 G9 i, q2 i3 X * ======== Operating System Configuration ========
$ [+ I! D9 I: d* z8 m- L. m0 H" D */
U% C* O2 d& z. s: _' Z: V- ]) U
q, M( ^( ^6 C' C$ i/* no rts heap */& O& ~$ D. j6 k& E5 [, m% ]% D
Program.heap = 0;: M' y- v, O4 M1 F) u1 W6 \4 e
Program.argSize = 100; /* minimum size */7 ^$ Q9 I* c" Y4 G
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大4 u9 M; d9 e% |" Y: o
5 M. D ~6 t3 U, V/ h+ ^# ?/* create a default heap */ L9 q; Q7 d; w2 a+ p7 [
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
5 p% r" L; { I' s8 fvar heapMemParams = new HeapMem.Params();
' r# ~/ M. ^: r3 K& g% @# NheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
. Z; g# v3 l* s. W$ |5 u$ S" P* }5 I
var Memory = xdc.useModule('xdc.runtime.Memory');# f. ~$ Q& ~4 K( n% c* R! e
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
# v$ z; p; }6 a' f5 c
# b$ Z3 C( @+ Y6 ^" {' n# O* v) t/* configure System module */
6 X+ b) K# C9 Bvar SysMin = xdc.useModule('xdc.runtime.SysMin');! U' U% Y, ^5 t- a
SysMin.bufSize = 0x1000;- _3 e$ n3 S6 v
SysMin.flushAtExit = false;
R2 N5 g0 v4 P) f, @8 n+ m9 t) p
var System = xdc.useModule('xdc.runtime.System');
7 f: ~8 C0 G. nSystem.SupportProxy = SysMin;) ?) y9 N( O0 {4 T- t& v9 ]' s
6 `7 e( K& P% L. ?; O: v
/* configure SysBios to use the lower half of Timer 1 */' l- c0 T- v/ W! n2 j, ]3 \. e
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
* s" X8 i8 _' s5 m8 K& K! F6 n" S" n( evar Clock = xdc.useModule('ti.sysbios.knl.Clock');
* Y/ |( Q) {% R3 @% rTimer.timerSettings[1].master = true;5 a/ Y# Y2 B: _- n+ x9 b
Timer.defaultHalf = Timer.Half_LOWER;
+ q0 {+ B) ]) K' x( Q/ f7 ?+ E( p, BClock.timerId = 1;" Q' C' @! z: l! R4 q, s
! f% i, N$ w# N+ t' Z6 W& {4 _
6 R1 m K) C3 V" h$ r/*
8 h! [- |, |' x * ======== Miscellaneous Configuration ======== C, t, E5 I, u2 X; n' g
*/8 l3 P% R" O, f( _
- ^5 J: q& Y: L# z# B/* set default diags mask */
$ T% I- s/ D) R% kvar Diags = xdc.useModule('xdc.runtime.Diags');9 D5 B6 H3 \& p5 X4 t+ h
var Defaults = xdc.useModule('xdc.runtime.Defaults');* z5 V, a0 X6 j3 ?
) z. }; A5 `1 Z; H3 pDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;6 d9 t: D3 N) {% G8 V4 Y, S. O
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;. |& \$ x0 Q0 P# Q
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
% N2 u& G! I3 C, H/ A5 H' YDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */. [4 k" z6 @/ R9 i% r: E1 D
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */$ d7 b p8 O8 g. `' r+ a8 ^; E
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
: A3 ~% G: E0 ^$ [& QDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF; ^5 Z( Q- Y5 U& F. U' E; T
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;( m E7 r. G$ ^7 v
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
$ n0 a" d9 M7 {# J3 M% c* c9 MDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF; b! y6 D' Z8 ]. p
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;8 @6 w6 [. P8 ?$ I, [5 g- g" K
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;0 A7 R1 j }' Z/ W0 c
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;1 Z3 z! v2 E* G) f
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;! u$ O0 B7 w( o( A5 Q* x
$ e( i& N! w! e! L/* override diags mask for selected modules */
" A+ U1 C0 n. ^; {6 O, |/ X8 Axdc.useModule('xdc.runtime.Main');; d) r/ D8 K3 F* n, F
Diags.setMaskMeta(7 |* U' a0 p' n! d& S
"xdc.runtime.Main",3 l* V/ I) s6 {7 U% k2 X8 X
Diags.ENTRY | Diags.EXIT | Diags.INFO,8 F8 {& h6 x; A; j6 v& |9 j
Diags.RUNTIME_ON( a* v8 q1 J* @7 I6 I |0 o
);
% V3 Q4 o( d/ e2 e1 m
4 H3 ^9 u5 G) l8 G0 Q) vvar Registry = xdc.useModule('xdc.runtime.Registry');( H1 o' m* s N5 r
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
+ _5 V' M B# ]# dRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;2 e9 Y/ s; a' C7 q4 M- Y, B
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
! _0 d1 W! R% a$ T. m6 u% Z/ t3 Q+ DRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
& ^9 U2 ]% K" x+ w, j% b) G+ t3 C. s! Q
/* create a logger instance */
; g4 K$ ]& y8 X4 }9 o! evar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');2 b* W9 Y9 @4 I: h% F
var loggerBufP = new LoggerBuf.Params();
3 u" }8 _- M9 V; x) N( o, GloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
" G- \' U8 l2 |loggerBufP.bufType = LoggerBuf.BufType_FIXED;
' Y9 f' `' V* P v% {0 R8 o+ W; O/ | |: @8 a
var appLogger = LoggerBuf.create(loggerBufP);
6 J! W6 J4 {3 Q' y8 ~8 aappLogger.instance.name = "AppLog_Core1";
E) _# y4 P" @5 q, RDefaults.common$.logger = appLogger;
& {) K# l, k! w7 V) J" mMemory.defaultHeapSize = 0x8192;
4 r; R9 @" ?% M8 C$ jIdle.idleFxns[0] = "&LEDStatus";8 @& \7 z9 W* ?+ h
Cache.initSize.l2Size = Cache.L2Size_32K;* `- A% t. f% s
$ C( @, V6 G' T# |1 L% L' M |
|