|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
, J, Z. Q+ e4 O我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下. p) O$ S! }, }! \2 O1 x0 W% f
(不过疑惑的是,为何单独DSP仿真就没有问题呢?): ?/ A; F+ Q' U2 @8 i: c8 ?) U
5 m3 A9 F- [! M: ~3 A是不是需要在DSP.CFG中进行配置* ]' y/ K# f4 N: `) M
我现在的配置为
8 U3 v) X6 a* p W) O4 x3 E
5 a* U& {7 y3 s0 ?9 K' K! J/*
. {0 s# `* K. M0 Y: K% K7 m8 l S * ======== Operating System Configuration ========8 F6 E7 k4 {- h* ^- \& S' V
*/
9 P4 c1 h) U( c, H+ V
+ j% H! S `" N' O i: d/* no rts heap */
0 k+ Y' J1 x) Y) X- lProgram.heap = 0;" h) y1 _: Z7 G1 ~ y; e3 O! ]/ ?* U
Program.argSize = 100; /* minimum size */
: M h* I+ X; [( `7 R$ \Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大5 I$ u' X# a& P, O1 Z @
6 E" a5 j) \0 g' |9 n
/* create a default heap */
' d3 l# X' b& v/ `# rvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');1 f* E: R8 V/ B) Z0 J* ]
var heapMemParams = new HeapMem.Params();6 d* |( z9 M! H( l7 f6 Y
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
/ }4 t, x( o, p6 L) i: U
% F: f: m4 r! n4 f6 M Ivar Memory = xdc.useModule('xdc.runtime.Memory');2 O( Z: S; B' N+ B: m4 [5 O7 q
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
X9 P5 P) U4 f- b+ U5 \( W
5 p0 r e1 P' E$ ~1 b: w% [/* configure System module */
$ F; N+ q& k& j% k' x5 F, hvar SysMin = xdc.useModule('xdc.runtime.SysMin');
* x. c# V7 w' x; s9 P2 WSysMin.bufSize = 0x1000;( w1 p0 F$ }0 Q) G3 Y* j( K; N/ b
SysMin.flushAtExit = false;" r1 v) t" C) F& ~# B; i: C
) m8 P+ T) A! h' o; jvar System = xdc.useModule('xdc.runtime.System');0 i! U2 H/ g$ W4 a, C) }
System.SupportProxy = SysMin;
4 s$ e' R$ ?' p7 m2 E4 ~9 I6 p; `. S- G' I& N
/* configure SysBios to use the lower half of Timer 1 */
$ A d* ~" g ]" W' C) z! s) ~$ Dvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');' @* m- J- X" J, X; `, e0 o* Q3 E
var Clock = xdc.useModule('ti.sysbios.knl.Clock');- O) F) ?, h# w0 O4 ~
Timer.timerSettings[1].master = true;; M' y$ z" ?( q( _# p* Q4 k% U- Z, l ^
Timer.defaultHalf = Timer.Half_LOWER;
" ?' ^ B* W8 p$ E$ L! z( JClock.timerId = 1;3 }2 P/ k9 f) ]2 P6 M$ E: ?: h
; f* Z6 a8 [0 w7 E7 x" M3 \0 Y
8 k, {! a6 p; [1 ~2 A/ s' e" a
/*! Q3 P+ b" ?9 I4 W' q6 X
* ======== Miscellaneous Configuration ========
1 G" ]4 l/ }& y: c */9 g, C- C: f$ o+ ]" A, }
/ g) w' N+ J8 a) H, o; j7 ~9 n0 F
/* set default diags mask */
! |" `5 R: ?5 ~7 p& N/ H5 s" |var Diags = xdc.useModule('xdc.runtime.Diags');
. ]4 J, r3 U- N, m6 X/ ~var Defaults = xdc.useModule('xdc.runtime.Defaults');6 }+ l, n3 @ R1 v4 D( z3 u
( C. E! p$ x( h3 X4 Z
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;7 u+ k' y* L# N! d0 p3 _
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
3 k% ]# {$ W5 W* p& Q7 t7 gDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
6 P1 t! B6 q7 U7 B* _" V( g" fDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */$ ~/ w& H$ r8 _- J0 `! J
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */0 n" q6 m) V' T3 ?
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
! E% z9 X" ~, N- I: g& w+ MDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;3 _9 n+ _& y, P- R, x" C$ j
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
" l+ w4 Q8 h" `# d# L$ ]) S$ Z6 |Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;* E' k( z7 G% k0 l; @6 `8 ?9 B5 U
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;$ ?- V+ ]( m8 S: p* t! X
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;1 K& [/ {0 @4 J& D0 g& M6 J w
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
" T, H# ?: s' Z. n8 C3 R6 k9 rDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
% |: q }% v: d& X' {4 t3 fDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;3 n9 g# i( }9 n8 j1 D1 f" P4 }
5 ]; n3 j3 k! } _3 R; S( G' K, R
/* override diags mask for selected modules */
" h" [; k0 _& ^' S, X! F axdc.useModule('xdc.runtime.Main');, g! t) ^$ ?) C, Q6 o7 a2 z
Diags.setMaskMeta(
$ r' T7 b0 \: l7 |$ d! B6 r# n l "xdc.runtime.Main",
. k0 p. _7 E. b- T+ M6 p# _% `% P Diags.ENTRY | Diags.EXIT | Diags.INFO,) X2 @- E& G3 s( Q5 y+ q
Diags.RUNTIME_ON
# j6 D8 q! C# M+ d) n+ C; p! a);" I5 i$ y+ r. x: G; |( W
6 h# x) l$ R* S3 ^) Wvar Registry = xdc.useModule('xdc.runtime.Registry');" w; w& [5 Z6 n# [' e+ A
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;4 ]- R+ n& G) S: w" b
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
* M5 H) z8 \4 G( [4 dRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;; B) z1 W. X$ e, `0 d) \
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
+ Q/ e& R" p' q8 [7 a" D+ X8 N) M" O1 p
/* create a logger instance */* c% c0 T1 W/ V! X" n
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');. F0 R. |# v/ c A, p
var loggerBufP = new LoggerBuf.Params();
% n1 g/ \ x# E9 Q, OloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */" @& t: q9 ?; |) S
loggerBufP.bufType = LoggerBuf.BufType_FIXED;0 z) o8 }# k& x& {. R
$ v3 q7 V' F- P% w: _
var appLogger = LoggerBuf.create(loggerBufP);7 H3 J9 Y2 K4 x3 e$ D9 F
appLogger.instance.name = "AppLog_Core1";
+ [2 B* t ]8 Y9 lDefaults.common$.logger = appLogger;; @; ~& R+ n0 g' `, w
Memory.defaultHeapSize = 0x8192;
; G4 O$ l7 a x+ H3 P EIdle.idleFxns[0] = "&LEDStatus";7 ^, L, B2 W% \" U* n
Cache.initSize.l2Size = Cache.L2Size_32K;
5 o# n5 ]) v# n# Q; D; c+ r8 m
5 N6 h3 H4 r5 N& d3 }. K |
|