|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
( C! Q B7 L/ T$ n# \3 M2 G( N我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下/ L% H' W2 c, A2 M2 T
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
3 ^: M& [% I6 A0 [$ C. o8 h6 l# G; b6 e! W+ y+ A' f
是不是需要在DSP.CFG中进行配置
( p- \* T( E4 r6 i7 r2 d我现在的配置为+ @8 ^7 V0 O3 h" s9 Q4 b+ |0 w
0 g+ O- r. t6 t( d5 S" x/*/ E& o4 @: f) z N
* ======== Operating System Configuration ========/ G) f2 k9 a8 S: N/ b
*/& a0 t' ]- M6 W4 Y$ U4 K5 q/ s
: `: \1 J- Y, M
/* no rts heap */
+ v# K, d$ K8 [' m" ~$ I' d7 m: q6 vProgram.heap = 0;
) {0 U7 x& _' R J# XProgram.argSize = 100; /* minimum size */
( J. l5 ^& J. C# N" w. m1 r( J4 B$ rProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大( p; j2 V) B/ l; X, z9 _' }
1 f+ K4 g% G- V4 O: f
/* create a default heap */
% V7 i9 s {8 ?% S6 w* r& {( evar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
. O2 u: k( S q! h& Q1 e0 v8 yvar heapMemParams = new HeapMem.Params();
. J3 F* b1 \/ V2 G7 k3 O& V, @7 iheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
$ P& f' E, k3 [4 @0 z4 \& t3 a# b- U( @) l
var Memory = xdc.useModule('xdc.runtime.Memory');3 j: S; N" s/ y- ?! _
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
1 J) U8 Y- h& Y+ B
" W9 E9 M6 A6 I+ Z6 S/* configure System module */: j8 V5 l ~- t! V( A U$ o0 y" G
var SysMin = xdc.useModule('xdc.runtime.SysMin');: q+ s2 ?. v0 W6 N- I' f1 | {" C$ {( W
SysMin.bufSize = 0x1000;+ `& n( t k* `# g$ k
SysMin.flushAtExit = false; m7 ~ @+ O/ p( S
6 \) q) P0 G: L- ~9 S. g
var System = xdc.useModule('xdc.runtime.System'); b& z1 V& T5 z! n& l$ @0 a
System.SupportProxy = SysMin;
+ ^% q3 I: ]0 m+ d9 y d# d% k& E. ^- U8 N& j2 i7 Q5 a; C
/* configure SysBios to use the lower half of Timer 1 */. u( r/ B" r4 f* J( V' l
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');7 z, m1 q/ ^$ d; A9 q& ^
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
0 D- d4 t+ J2 \5 NTimer.timerSettings[1].master = true;. z& `3 a4 W" |( m4 T* j0 A
Timer.defaultHalf = Timer.Half_LOWER;
2 Q/ D. d& S) E( oClock.timerId = 1;
8 L/ W7 H: H( q2 u Q% P T- h( n" {% C, i0 h, v Y
) Z, |% Q) d `7 |9 u! b; k/*
8 c% r% T* w. A$ e" e- l' ^ B, J * ======== Miscellaneous Configuration ========1 O; x) j5 k/ j$ T! _
*/: }! ^- E1 [8 ^
6 q, `5 [& J) g( z& X! B
/* set default diags mask */
$ o0 I. b2 c0 {( z5 F, hvar Diags = xdc.useModule('xdc.runtime.Diags');3 m0 \( ?5 e: V; M5 o
var Defaults = xdc.useModule('xdc.runtime.Defaults'); U' r6 m/ L) S7 t; k E
' N3 ^8 d: [& s4 }Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;' j3 j1 }3 v+ \0 }) s3 X) f) l. L7 A
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
v0 @7 U( a; x8 [Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
& Z; \2 q8 ^; }6 KDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
& v2 u% _$ J7 o' M: ~: |Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */4 w& \; t7 Z' h7 Y' M) _
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;: m( L4 q V: H$ v0 X O
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
* T: L, F# }3 ^9 }; @$ ?% xDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
! S4 P B0 W/ t& f% }8 V% x" hDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;" F1 U# q6 v7 }- Y
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;. ~/ m% B: e& I5 n! l
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;0 n, c' k) F! s3 S! k
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 S z- Q7 A& S5 VDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
- f3 Z8 X' Q" `. Q% H! A" VDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
/ Q4 d8 x1 h1 S( `! w. z4 ?9 d: U- L Z* _* S
/* override diags mask for selected modules */! F- u; S6 ]& A2 i# Y( X
xdc.useModule('xdc.runtime.Main');! ?6 x, }- m+ U
Diags.setMaskMeta(
9 j) i, {8 ?4 s6 b$ h% d# b "xdc.runtime.Main",$ Q) s( r- s# Z0 K" F1 d
Diags.ENTRY | Diags.EXIT | Diags.INFO,
! ]( t; i- Q( f+ Y! I' S& Z Diags.RUNTIME_ON- ~/ A/ r' J8 |2 w+ b. h
);
5 v" I* M+ Q( C2 L+ v1 J& I$ b2 w5 o o# f/ I4 Q. L
var Registry = xdc.useModule('xdc.runtime.Registry');5 m J. d, p% D6 z5 C
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
" t, k) A% t& g, U# y5 _% kRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;5 D N) V+ Z4 |0 F/ ]1 e
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
3 @- x9 M. G9 A. P/ E7 SRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;1 J, t8 U2 r0 j! ]( T* a. I
/ ?7 y6 t! x% s& w* S% g3 M
/* create a logger instance */
2 N3 c2 _7 j. h) ~3 o% ivar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
( S- o5 r0 U$ f0 L3 g* Vvar loggerBufP = new LoggerBuf.Params();
4 D6 h( P3 M% K H8 `, mloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */6 r3 E( S- m. g+ r
loggerBufP.bufType = LoggerBuf.BufType_FIXED;6 Q* y6 C9 I2 t
- R2 O) K$ T& n/ K, ivar appLogger = LoggerBuf.create(loggerBufP);% Z3 S" c3 ?' l: v4 b5 \
appLogger.instance.name = "AppLog_Core1";
. d0 r) O( j0 Q7 j' o TDefaults.common$.logger = appLogger;4 }: a6 f+ W1 U* n; A
Memory.defaultHeapSize = 0x8192;
& h" G' \0 K: [2 N, p& ]- \Idle.idleFxns[0] = "&LEDStatus";; O7 Y& V9 n C6 n8 ~
Cache.initSize.l2Size = Cache.L2Size_32K;
2 H* I2 O/ _5 ^9 {5 b8 Y
8 L; L- O* C% a; S6 O |
|