|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明/ n7 d1 Q! L `, C- D9 u
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
3 z. _! a, h I( h5 g& \(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
! d, ~( Z, Q) J. `5 I+ Q
; m6 n& N" q- ?* B/ I4 l是不是需要在DSP.CFG中进行配置
# a( i' [# E, p7 B; J; E7 @* d n# G我现在的配置为2 _1 C7 V. Z. o6 |, z8 g
% T3 H$ d+ @, I1 V: e+ g/ f
/*
5 W t( f! ^( R H * ======== Operating System Configuration ========9 i: o$ ?, d& \2 [
*/
7 p# }5 J9 O, h+ A: G* T: X1 i
2 {' i4 P& ~/ s2 n0 }/* no rts heap */9 L) I' i1 x% b# O6 ^& U- m
Program.heap = 0;. E4 P! U @; p
Program.argSize = 100; /* minimum size */4 [6 b! ]) i8 R! e7 H; }
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
, i1 v1 S6 S; r/ c! R& o2 ~* J: d& f6 d
/* create a default heap */3 z: H; Q, t5 r+ i# R( L! g- @4 T( Z
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');2 U6 l& d" n z3 A9 y) c
var heapMemParams = new HeapMem.Params();- j5 i0 e& @: ~# K) t
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
) U" j9 ]% e! H5 n( ~) S5 c! a
: I$ M$ v3 I& q+ z8 Ivar Memory = xdc.useModule('xdc.runtime.Memory');7 J/ M7 `9 g( r+ e
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);* L) R% k2 q- [( @% `0 p( N
: j4 N$ O7 j5 t1 @ L5 S2 ]# c
/* configure System module */8 ]1 K( y* a4 p! Y, y/ T
var SysMin = xdc.useModule('xdc.runtime.SysMin');, u3 q* J( U$ x* ^2 _ w
SysMin.bufSize = 0x1000;7 a+ [1 r V! z
SysMin.flushAtExit = false;& ^1 O; \. M7 S6 h1 I- m2 V
/ R8 Q9 e9 H- T n( C
var System = xdc.useModule('xdc.runtime.System');6 s# J$ Y9 ^7 i( ?6 J6 Y3 D
System.SupportProxy = SysMin;! w; @6 p5 y5 ~& F
7 e# [: L# C* N# F) D: j) ^$ K. m
/* configure SysBios to use the lower half of Timer 1 */
, v" o4 f2 l0 K0 v* \' s. o" mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
" T! h0 w6 Q" D0 {8 R% M. Qvar Clock = xdc.useModule('ti.sysbios.knl.Clock');* h& u9 {9 B3 ~( c3 K# s) p& ^$ A, f
Timer.timerSettings[1].master = true;
1 R' x( B9 ^6 b$ X0 R. r( K4 QTimer.defaultHalf = Timer.Half_LOWER;- `% Q0 I L. k; @
Clock.timerId = 1;' g) b' ]3 d6 z1 j; |. f3 a( ?
. S; ^0 q2 ]- o0 M" ]1 s8 m
) y9 z: I) R* f% C9 V& s# p5 ]) t3 M/*7 J2 Y: J$ q0 J& s7 {
* ======== Miscellaneous Configuration ========. j0 r7 R7 [* B4 ~. s$ T* S9 S
*/
3 D" w8 J F8 H' K9 L# R# e+ O$ V" Y" ]# Z
/* set default diags mask */
3 C1 ~) ^9 v, gvar Diags = xdc.useModule('xdc.runtime.Diags');
" c5 {; q3 ]5 Nvar Defaults = xdc.useModule('xdc.runtime.Defaults');. z2 Z4 o, H" K. _% O l) p6 z6 ?
& O( c' J/ M$ m7 Z1 [Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
2 `7 v! m4 o% M+ p" x1 yDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
?+ G: @4 a- U( L4 qDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;. }7 u/ r `% S" e
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
; D# B/ a+ h3 Q* y7 ~Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */1 r1 S% U. R3 @! _6 [+ |
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
6 g1 j ^' y C- S# v5 q% e# Q ]Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;) |) H5 F& c4 x- ]5 N* Q
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;5 S8 a: N0 D) b! }( G
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
3 M. V! P+ e& u! R: [Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;9 p% }2 {# g" E7 ^1 r6 z2 Q
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
9 _4 X) ~1 e( f3 l! u- B1 WDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;, T0 H; L: g' P( [* _1 D* C5 F# G
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;- T1 i; |3 w! g$ W
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;2 [2 N/ S% @1 }- P/ @
" S# k5 @/ B4 y F
/* override diags mask for selected modules */
& F7 |) D7 a1 k, i7 Rxdc.useModule('xdc.runtime.Main');# m) L! T5 q: K, k5 e6 p8 g3 h
Diags.setMaskMeta(! B) i, m! V+ e1 I- P3 u1 c( Z
"xdc.runtime.Main", ]0 Y$ n4 e% }, O
Diags.ENTRY | Diags.EXIT | Diags.INFO,9 w# A! X2 @ A& p8 m# S, \% F; ?
Diags.RUNTIME_ON1 `$ a+ ~3 Q6 K( |( _1 W
);
% ^+ N1 N4 L7 i
2 l) ?$ v! b- ?9 Tvar Registry = xdc.useModule('xdc.runtime.Registry');
/ T f! H2 C0 q- \& h6 v7 `+ u" E& _Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;+ @% x' |' j3 Z. K1 D& E
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
* z* z, n1 `) u! w" eRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
% _* p9 g8 }/ c: n. n, TRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
! N4 o# G( m0 P/ o
$ m. ]7 j1 I5 @) h. b" K. {7 {/* create a logger instance */% j5 K' z) V: f3 m9 Q- e
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
, e! c3 ]; l) Q3 N; \9 Wvar loggerBufP = new LoggerBuf.Params();
. K# X" \, O9 J% o1 y" b' LloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
# }; n M7 T% O& S- \5 e0 g, qloggerBufP.bufType = LoggerBuf.BufType_FIXED;& m9 M1 I7 D0 A# Y
' k: j( `( `8 k/ y9 n+ lvar appLogger = LoggerBuf.create(loggerBufP);2 S- X9 d1 N1 B; L
appLogger.instance.name = "AppLog_Core1";
7 a( i- Z6 Y0 n, h# yDefaults.common$.logger = appLogger;
# m- \2 o2 J7 N7 t- d& EMemory.defaultHeapSize = 0x8192; ' g- x2 L; g" e. m/ A1 Z
Idle.idleFxns[0] = "&LEDStatus";3 j( v. P7 ^4 G. R
Cache.initSize.l2Size = Cache.L2Size_32K;
* I. F3 D% y s0 M% F( i* T( Z* K0 ` J0 D- Y6 H' A
|
|