|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
3 D; @: _! M0 \. X, A+ ]/ G/ N我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下8 \6 r0 x- c# L: m4 Q/ A n! _
(不过疑惑的是,为何单独DSP仿真就没有问题呢?): M3 w. C8 l: N* w }' U! @7 |
0 \* w( ? u2 }; r是不是需要在DSP.CFG中进行配置& t! h, p# o: i; g- r/ `6 Z
我现在的配置为
9 b' ~* H1 g# Z0 k, R% \4 ~. A k! \! R7 Y
/*/ ?0 U9 z' r5 u# J
* ======== Operating System Configuration ========0 A2 X, ]7 A& y9 E% A/ G. @0 d
*/
- e0 F6 N2 q9 I) ?' R0 D6 z2 V5 B0 U3 c6 ^1 z: Y* b6 B
/* no rts heap */
0 q; j, c7 \3 s5 [Program.heap = 0;
{$ q' \) Y6 a: T5 d3 tProgram.argSize = 100; /* minimum size */$ h: P `1 Y0 i, Z1 K
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
# F" `# ?: ]# s; n( n. g+ R& c
( i. x3 A( g( D7 p- f2 D/* create a default heap */; ^/ Z# X1 w. Q; C5 }- \
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');+ |% o) Y* V% N' O, p
var heapMemParams = new HeapMem.Params();
7 d" a* f% N* OheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
* p8 {" ^/ y) ]; R* A
6 f; H7 W1 }# _. p+ }% Vvar Memory = xdc.useModule('xdc.runtime.Memory');
+ H. Y" }7 U) }; N6 H. w3 ` z5 |8 JMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
6 J$ G; F; k! G8 F/ B: y/ Z/ b% Q, r( H% Z5 H0 n5 E& X
/* configure System module */' d7 N9 x }8 |
var SysMin = xdc.useModule('xdc.runtime.SysMin');
( u$ q+ o5 V- H( ]0 F3 o7 p) kSysMin.bufSize = 0x1000;
, W7 z3 K6 Q3 |0 ]/ {& v1 B/ v$ C4 j% wSysMin.flushAtExit = false;
6 @2 H8 M9 N7 p9 t; S. e) t4 q) [. x
var System = xdc.useModule('xdc.runtime.System'); w3 k7 N8 I4 q& N1 y7 y6 y
System.SupportProxy = SysMin;2 B* Z8 Q9 \$ O
7 ] ?7 a) [, Y/* configure SysBios to use the lower half of Timer 1 */
1 X3 O- x7 [" @7 b% Y: p9 @- S. {: ivar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
7 D6 p7 [8 M3 ]' N- x4 i# evar Clock = xdc.useModule('ti.sysbios.knl.Clock');
6 [' ~: s+ f" d9 r; C/ xTimer.timerSettings[1].master = true;
* P: M8 u' z& s n b- [. [Timer.defaultHalf = Timer.Half_LOWER;- S8 P! C# X3 H! |$ `
Clock.timerId = 1;
# A# {; X) m( O( k
& w, _9 x( z6 G$ @
9 t! W: y: w0 |; m/*
! H& I1 F8 o+ p * ======== Miscellaneous Configuration ========
6 W) I( e v8 f/ o */
; j6 p0 U1 v" |/ y' d. }$ A; w, o C+ r5 n& t# D
/* set default diags mask */9 F3 b2 d9 ~5 _( `
var Diags = xdc.useModule('xdc.runtime.Diags');
1 ~: p" F& Z& X( |! c; Gvar Defaults = xdc.useModule('xdc.runtime.Defaults');
1 ` I, x/ p! w e- N3 f( f. A* `# o
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
2 b8 R( f- Z# f, V7 sDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
E5 z: @0 X' J) i6 A" s0 \) GDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;$ o4 Q+ T5 u. X
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
- e2 Y6 D H4 a2 z1 c6 MDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
8 b8 t: W( r. E) E/ d# m( Z; y$ U8 qDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
3 `' t' J( h1 B) w. uDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
$ i& W9 J Y% `6 I8 b7 cDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;0 W) ?8 b, n y. G- U" c5 v
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF; b1 V0 |5 P. n' A4 j9 s
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;% c( l: ] U# Y
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
- c/ e% t/ W- L3 Y" { r$ `Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;, a2 x; `% N( h g: X$ T
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
% j; s' r5 Y( ?- }/ P+ ^% LDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;; Z- G2 x. f7 s. N0 Q- b$ Z- x
) g6 g- v; m: D6 U6 J9 k
/* override diags mask for selected modules */
5 K% M* [. K: Rxdc.useModule('xdc.runtime.Main');: V4 j1 @! [, ?- [$ a0 q
Diags.setMaskMeta(/ W6 I, [. u4 F1 t( M4 }2 w
"xdc.runtime.Main",3 V5 y9 E ^8 \2 D8 A* L: D, X
Diags.ENTRY | Diags.EXIT | Diags.INFO,
' J/ B$ ^3 t0 h2 n; u, H( A Diags.RUNTIME_ON- A7 C" Q7 A2 s
);
T- I- U/ u/ ^% Q5 r9 h. r2 S+ p
! j% u6 ]! _# t" i. _7 Cvar Registry = xdc.useModule('xdc.runtime.Registry');
) w/ _/ g2 \4 U- Y$ ]& P8 ~Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF; ?# Q$ d$ K" I
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
) Z+ L: _! D/ H' R, hRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;! E+ T+ X) M+ G8 A0 C2 y
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;) o. {$ h$ P6 u( W7 Z. |; I, g* E
' A( A# S' v5 u) x/* create a logger instance */1 @% \5 R8 j+ {/ K; a
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');6 e! ]% r" j" f8 Z- q' G! t
var loggerBufP = new LoggerBuf.Params();
) ]9 `) o" Y* _" A6 u6 D6 ?loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
6 r% v% p6 k- \loggerBufP.bufType = LoggerBuf.BufType_FIXED;2 D/ @' I7 [+ R P# j
) O' N# s; h, n
var appLogger = LoggerBuf.create(loggerBufP);2 [4 _! M0 ~" t$ Z1 v
appLogger.instance.name = "AppLog_Core1";/ Z* S, _$ |9 V9 @3 H. S5 g! L! u X
Defaults.common$.logger = appLogger;% ^* b; ]4 Y$ w2 W% z
Memory.defaultHeapSize = 0x8192; ' v. z! n7 p! P3 t2 K5 O
Idle.idleFxns[0] = "&LEDStatus";
4 u( I: h8 I/ R6 B- w! NCache.initSize.l2Size = Cache.L2Size_32K;
" j: E5 ]. W. w+ x) m3 c& U. ~& o5 W% H
|
|