|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明/ f. o; R& I4 k* ?3 g' Z
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
9 |" Y; j5 \4 l) K& L1 i' h) m(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
5 p1 C$ H* N1 ^$ Y# z9 Y/ O) ]
7 f# J& u) l* f5 d: H' Q+ \是不是需要在DSP.CFG中进行配置" y$ V1 n+ ~) `, h
我现在的配置为% w2 ^; u8 r# s
E8 a* [9 c* y) U1 S, H) R$ L3 m, P1 u
/*
5 e& e( c1 L: U" B/ E * ======== Operating System Configuration ========1 N1 |% h- m- h
*/
/ o( w/ Y; U" p$ B' C7 p
+ A$ J3 i5 O$ }) {3 p5 r# |/* no rts heap */
+ w+ q+ o4 d+ x: i0 ~3 ~" P* MProgram.heap = 0;' M: W, n+ H4 o, O
Program.argSize = 100; /* minimum size */
. A# F3 w& H& q7 {- I' N: xProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
% s5 z. ~) K/ Y
- p* _& m+ v" ~3 i( g/ E/* create a default heap */" C ?. `& }$ s# e
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');# W( C o; V, i1 J. d; x+ r8 ?
var heapMemParams = new HeapMem.Params();! B. u) W8 t& `! W; u3 S8 b/ j% F
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大8 i( j! u4 W3 ]2 Q+ l9 }* ]( H
' |# r. B4 V$ F! K( c/ {var Memory = xdc.useModule('xdc.runtime.Memory');% y% `6 V4 M3 m8 g
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);# k7 D9 @" v: D" A8 } k4 _: \4 g1 |
0 X$ T" ^5 r2 E* ]8 Z' q' Z- K
/* configure System module */7 \* ^( g% T4 E3 L. H; i
var SysMin = xdc.useModule('xdc.runtime.SysMin');' F$ d7 |2 E& u& i
SysMin.bufSize = 0x1000;+ f' k) T/ }0 Z8 a
SysMin.flushAtExit = false;/ v% J; c1 P$ b
5 f3 Y2 _' L7 J; Q( z, [( T2 wvar System = xdc.useModule('xdc.runtime.System');) s* J4 l0 s7 s& b" ]% m& U( q
System.SupportProxy = SysMin;4 ~+ V2 R) ]' A/ u& d0 W
5 k( A w+ d- x* f3 I- B5 W2 m/* configure SysBios to use the lower half of Timer 1 */
. R& b8 {/ N0 f* wvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');$ l$ S5 \+ M3 w* m* K- U( u
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
" p( D+ ^, Q" t6 ~- a% ETimer.timerSettings[1].master = true;) E6 k% Z; [2 Q' a6 j, L3 _9 w
Timer.defaultHalf = Timer.Half_LOWER;& B+ B5 w6 f1 z: Y- q( N( g) X
Clock.timerId = 1;" L+ H, S$ L n8 j7 X# _ v8 P0 G
; N \1 s# ^% G0 B' b9 h( h, N Q7 T4 M4 ~# }
/*! f3 h0 x) N' `1 j |6 F
* ======== Miscellaneous Configuration ========: Z5 k6 S8 m! R/ S6 t, ?$ x2 J+ Z
*/
. T q J7 a4 T. K& x8 k* Y' _! u# c8 u2 y
/* set default diags mask */8 C( ^! c' ^* p. }! F) ~
var Diags = xdc.useModule('xdc.runtime.Diags');6 R( r8 C' q+ q% c, x
var Defaults = xdc.useModule('xdc.runtime.Defaults');0 |- x4 C5 q& S! E
5 ?" g0 k) I4 k
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;5 v; |+ L) F+ u' u3 W
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;# G& i6 x! P }; m) p& @
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;+ N# q* b9 M. j
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */8 X. b. k0 Y2 H! H( c
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */7 \, K/ y: ~2 e5 d8 k9 W( v& Y
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
( a w. l G4 qDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;; ~1 ?# ^# V, J8 f2 s. e1 r
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;7 i3 o+ w, O/ C7 U. X6 O
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;& S% D; P" \! F/ `; b& E: b9 i
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;$ ?& k/ o7 g' K9 B
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
$ |. G8 s1 E) K0 o ZDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
5 y' o& q* m* b- r' CDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 Z0 B3 Z. z4 L( y {( N- @Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
& q6 T7 E1 w4 L2 Z' ^% f
( D1 L* G3 `2 m( _1 I1 R6 n/ H/* override diags mask for selected modules */
+ O$ P" W- e3 Sxdc.useModule('xdc.runtime.Main');
% M( \1 d& s' B( B1 L9 gDiags.setMaskMeta(& I% c! m8 G/ F
"xdc.runtime.Main",
: g5 ] `; _1 f& |6 ?. b* {. C: D# S Diags.ENTRY | Diags.EXIT | Diags.INFO,
. Q5 C: j' a9 ]; x! r5 F; T Diags.RUNTIME_ON
9 P5 i5 l. q2 J: b, I, _);
1 X" o# E5 S2 M; e7 c3 \
! D, p3 S! a! `" {var Registry = xdc.useModule('xdc.runtime.Registry');# c. y! d, H: S" u7 U2 q' t
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;5 A% T3 ^% u9 U: A
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
( u6 E* t& u) H3 K$ nRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
, m; M" Y4 t/ u9 \: P$ ERegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
z$ Z$ [. g- N# a6 X+ i! w7 T5 y$ E7 Q/ E* L+ {4 }; a- \
/* create a logger instance */, o1 E0 o2 w' `) i) o9 V+ i
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');- }6 O: w4 O c: A3 E' X" T M. f9 b( z
var loggerBufP = new LoggerBuf.Params();
- `+ b8 v+ L: M( h2 eloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
* h3 i0 V) s0 V3 l( {loggerBufP.bufType = LoggerBuf.BufType_FIXED;
; K# N: q& O$ V
' v' K! K3 M' X' A+ Z8 Yvar appLogger = LoggerBuf.create(loggerBufP);! G( m- k% e4 N, o* n' }
appLogger.instance.name = "AppLog_Core1";+ F. q1 k0 B! p0 k7 H- p* h" J
Defaults.common$.logger = appLogger;
' d5 d" f6 n4 M' a9 k. }Memory.defaultHeapSize = 0x8192; 0 Q6 U8 S5 Y" p& J# v
Idle.idleFxns[0] = "&LEDStatus";
' C8 J+ T7 v# C3 z0 u* ^( N0 r1 Q( h$ GCache.initSize.l2Size = Cache.L2Size_32K;
: \" w( r9 V, h2 _! j
4 s$ V4 K3 H3 {* v6 \% V |
|