|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明7 c0 M# M3 i) w' o, @5 t! z! g
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
: o! P* [" r& ]4 R# d(不过疑惑的是,为何单独DSP仿真就没有问题呢?)8 G- W2 o% N4 ?
8 i8 y7 A+ M& h4 F* l6 W8 {
是不是需要在DSP.CFG中进行配置' J7 i0 A% {/ ^0 H7 ~1 ^1 ~
我现在的配置为. g3 P( P3 z9 ?3 n$ l) W+ Z
6 W# S5 h4 a8 h/*7 Q: r) x$ Z3 D3 T% @: x( a
* ======== Operating System Configuration ========
( g# A5 X3 `" [$ ^+ _" y3 a */( y+ [: l! K: a# n4 ]5 `+ z1 }2 X8 }
& ~$ n, k$ L+ J( X# }9 a0 P( W: o
/* no rts heap */
7 [$ x2 m1 z. w( H* S1 xProgram.heap = 0;$ q5 y9 M- [/ _; M w# o8 y) H5 ^- |
Program.argSize = 100; /* minimum size */2 I) ^ e U9 @/ l: Y) D& m+ L
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大" m+ c6 u, p; t2 N" m8 r- @# n1 C
% {' ^% J' \! @7 G: H4 P0 @1 j- j) O/* create a default heap */3 Z- t: s0 j1 ]% t2 [7 r! M
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
4 D$ Q, I, ], V6 f. y4 v% Z, M0 Vvar heapMemParams = new HeapMem.Params();
! [0 a, q/ P$ W/ G- z$ w TheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
9 U9 M% E" k0 F2 @. I
! {" q/ R' u! ~) W: M6 ]: j; i9 j5 Dvar Memory = xdc.useModule('xdc.runtime.Memory');
~' s4 D5 _. u& [( xMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
) V% b7 U% x/ Y5 M8 d8 v# z
/ A- G* Z5 ^' w' g9 o/* configure System module *// m$ O+ ^* O0 d# S7 w4 D0 b' O& a
var SysMin = xdc.useModule('xdc.runtime.SysMin');% p, K2 L G* ~! @$ A8 h
SysMin.bufSize = 0x1000;$ k( {! C: \1 M1 |' D$ f
SysMin.flushAtExit = false;
. n" d% `) k0 j1 \8 o/ Z) R/ o( T- O
4 r. r" A% K9 c7 E0 ?. m9 _var System = xdc.useModule('xdc.runtime.System');6 B. v5 [5 T0 H/ f! d
System.SupportProxy = SysMin;
$ h/ I4 j8 s3 P; Z: G: z7 R s" Q$ F$ M' X
/* configure SysBios to use the lower half of Timer 1 */
, {" J8 D( |8 o5 [; V' W) b( A# X Avar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');$ M% Z' t5 m* e0 ?1 j8 m
var Clock = xdc.useModule('ti.sysbios.knl.Clock');$ v' n) Q! G" l/ V( S n( q
Timer.timerSettings[1].master = true;% k/ T O6 o) Z6 _! ?( |! k0 U x) [( }# }0 g
Timer.defaultHalf = Timer.Half_LOWER;
2 h9 L/ g/ ~: z) ?; k; AClock.timerId = 1;
9 S ~, \3 v/ X2 H% I B$ s' T) g0 |. ~; [& N! P. s S2 g
. V8 l2 p$ p P2 G/*) h7 X% h! L8 \' U& K9 m
* ======== Miscellaneous Configuration ========
G T0 O( x+ F1 } @* M */
% \2 q5 J: ^1 J: ?( V8 O) m8 ^1 Z d+ i
/* set default diags mask */& z( R' l) A& i3 |9 b
var Diags = xdc.useModule('xdc.runtime.Diags');0 ?& x V% U* r& U. G
var Defaults = xdc.useModule('xdc.runtime.Defaults');, Z* U- T6 C! ]; g9 u3 @
+ [" m( l9 Z( |2 t
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
) Z+ E$ h1 s2 ~- u: L5 uDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
7 P/ P3 q0 Y! |( S3 M' m. {Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;1 s. S, o5 @& @" C! B& b6 o" I5 I
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
2 u5 n8 A4 m2 g3 g- P! _Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
' Y2 l# g" w" Y4 d% f8 mDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;& X/ A# m% g2 n
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;# Y0 R4 }0 P. }! q
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
3 g: V# d+ \# ]- {$ k' TDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;' y* z3 l4 @4 n b
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
b ^+ C) r1 K4 d5 lDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;# i4 z$ x* J+ y
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
( ~6 y0 q( }0 j1 l. GDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 J4 ~$ L+ G, z$ G, e1 Y$ v; FDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
E- i. r! U+ U! \' p1 Y4 H0 i
5 ~1 U* w4 f8 `+ A/* override diags mask for selected modules */
7 r, ^) V ]6 e2 N; _7 w2 h: Yxdc.useModule('xdc.runtime.Main');
* k% b+ P5 o2 P: ^8 V0 T$ bDiags.setMaskMeta(
* c8 V& \) F$ t9 Z: X# k0 D5 a "xdc.runtime.Main",% X/ D( o: h' k4 j
Diags.ENTRY | Diags.EXIT | Diags.INFO,) {! k. o K! h0 d& y4 ]. t% A
Diags.RUNTIME_ON
4 u a2 |* w& A; S! g; @" M1 m/ z);$ u; f. j. O, U$ ?
6 v o' w2 y0 e6 V
var Registry = xdc.useModule('xdc.runtime.Registry');) e( o, |, q# n. h# l: O; t7 M
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
# W. i5 ^/ S* s6 W- E1 u. ORegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
7 }0 }- v. r" s5 W* R/ e0 t: j' y kRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;1 W2 r1 z) ~, [& _! C* {% r
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
, W* B( ?6 ?8 \) R; M
7 z+ J/ H0 {. H' M% k/* create a logger instance */
! M0 N6 g/ h$ Z2 y4 o* ^+ qvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');- H+ B8 W6 {& X; V
var loggerBufP = new LoggerBuf.Params();0 x; W1 |& g% I" [ }0 b! \/ e
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */7 [) |3 l9 ]) _6 x7 [
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
. H5 K% ]* R l$ J; v2 F: ]* M# z4 j; |
var appLogger = LoggerBuf.create(loggerBufP);( `5 [0 y) G4 ]5 L
appLogger.instance.name = "AppLog_Core1";
- U9 e/ s j" r! _8 s* ~/ o' A zDefaults.common$.logger = appLogger;
; c. ^; o( u. D3 r; uMemory.defaultHeapSize = 0x8192;
% q2 j. r0 F1 ]+ h$ qIdle.idleFxns[0] = "&LEDStatus";
0 n6 \/ ^! u: P4 S6 J; o6 \$ wCache.initSize.l2Size = Cache.L2Size_32K;+ ?* H9 M: q* P/ e. `+ [
" J6 j [$ O8 k# Y+ X |
|