|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
3 g4 R8 W- l# H+ P* `' t5 y我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下2 g& l( o! R/ z! m+ m8 P
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
( s8 H3 ?* m2 e+ o8 G$ K, ^3 ?5 o5 A1 R" ^! [1 ?
是不是需要在DSP.CFG中进行配置9 r4 d/ I1 r4 G2 H0 ^7 w6 b
我现在的配置为* q. h3 M1 i8 e x
U- |& P; ]/ |; m/*
/ v$ Z% |+ {" ?: k/ u# V0 } * ======== Operating System Configuration ========. u, ]" P' [ y; }
*/
$ \' ^/ O0 `+ ^( L5 J9 U/ r* S0 H# Z2 Y% P$ F
/* no rts heap */
$ I7 o$ Q; Z5 n1 ?9 G7 ?Program.heap = 0;- A3 q* ^) y( D6 [7 o- u) K! T
Program.argSize = 100; /* minimum size */
& z9 e5 X, e: _4 _# m/ R& S9 @Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大# u% V2 H8 `; h! f. }
8 N% V6 m" s s
/* create a default heap */- }2 G; J( _! V+ T0 i3 J6 q
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem'); G n& {4 P; M
var heapMemParams = new HeapMem.Params();
4 [& X# S. p) i4 ^. d, X, AheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大8 S9 {; s6 E2 Z* |2 N" Z
; K1 u& D4 f* X r
var Memory = xdc.useModule('xdc.runtime.Memory');
9 G$ X0 y+ ?: DMemory.defaultHeapInstance = HeapMem.create(heapMemParams);3 L* `: L2 C2 _
0 e, `4 r% m/ g% S7 H
/* configure System module */
. G9 q" E' B4 T c; i. svar SysMin = xdc.useModule('xdc.runtime.SysMin');# W* a) J, [5 }4 D- g
SysMin.bufSize = 0x1000;& o6 u4 j, ]% y- T) c9 [
SysMin.flushAtExit = false;; ]4 m- D8 f; G* X
0 F" G' S+ }! z0 Y% C- n! f
var System = xdc.useModule('xdc.runtime.System');& c4 e) }. ?2 ]
System.SupportProxy = SysMin;
; C% r& e; ], c9 j9 R" l
1 `; `* j) ~$ D, h/* configure SysBios to use the lower half of Timer 1 */ C& Q p. ?5 H7 l# g
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');5 r" b6 w3 m' l7 L, p0 ~! Z
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
" q, i2 `+ k/ @& t- J& JTimer.timerSettings[1].master = true;; L V! |# r o1 {2 r3 Y+ V
Timer.defaultHalf = Timer.Half_LOWER;
7 d4 |* j" |' O6 T4 WClock.timerId = 1;) e" [# @! k9 ~! {0 C5 b V
' h2 ^/ s4 m' j) q
8 P( ]( A& n- z/*3 G/ Y, o* a- u- ?0 ]* E, h t
* ======== Miscellaneous Configuration ========
; U8 Q, a, c$ m% X7 O% n' E/ E/ x7 Y& Q */
0 \" r0 p8 K1 t8 i2 a$ X/ A
" P3 o2 e) J* m0 V1 W/* set default diags mask */: i3 g( o8 A% L8 V1 ~+ A) E- ~3 K8 `
var Diags = xdc.useModule('xdc.runtime.Diags');
( A, I6 x) r p, U2 l# U! jvar Defaults = xdc.useModule('xdc.runtime.Defaults');
?8 K7 d; e0 S3 E5 d3 [1 B ~& s) K* U' D
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
/ W( o2 [ ?( R, M7 ADefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
. x& b: S. ~4 ^ ^" x5 j2 ^Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;9 V+ A, H1 _9 z3 M' b1 r8 u% o
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */8 Z4 F \6 g; x0 A6 z+ Y+ p
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */& b( E- l. L. I! w# t3 G: ^! T
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;+ _+ {; Q. D8 w9 C1 `9 ^
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;/ }5 t" Q% e/ Z3 s, Z
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
+ i2 s' y& r k5 x* B& }$ F) v( YDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;- F7 P9 y, d: {" C9 h
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
# g5 Z% d, g$ B7 ~Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;' V. J) J$ {" [9 ^& A
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
# s* Q4 Z, H( |' nDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
5 y1 `7 x9 ]; D( y: N MDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;/ {' r: v4 x5 L8 {% M5 f) w& H
- R, H% m; D" f2 u. s5 [/* override diags mask for selected modules */
% a5 y: F5 T6 r4 _xdc.useModule('xdc.runtime.Main');5 r4 [ e" E9 H, J5 ^! a
Diags.setMaskMeta(
4 O4 R* ?4 e3 k# Q: I2 q "xdc.runtime.Main",
! M+ Q/ j' \( v& x/ }+ [& J9 w+ _. a Diags.ENTRY | Diags.EXIT | Diags.INFO,2 a/ L" b0 b: k: ?9 B5 I
Diags.RUNTIME_ON3 _4 I v# C1 m% l- C- s- q
);
1 G* V5 W, ^4 r
9 b$ }. z$ |, I) w) w7 Fvar Registry = xdc.useModule('xdc.runtime.Registry');) X7 w/ d9 ^3 `% r* F* M' j2 Q
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;( L8 j5 Y) A6 o! j6 m* Q. O
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
6 x; Z0 W P1 R% SRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
5 U c. P6 q1 sRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
: y+ o% b ~5 v2 f/ g# u" t+ ~' w+ j' W5 v4 D2 p: ?+ S
/* create a logger instance */
( D2 W) F9 c2 p2 g2 W0 v2 Xvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
8 B, `* m9 q! C2 b' Tvar loggerBufP = new LoggerBuf.Params();1 t1 t0 `& o2 w$ {* E3 b' H: e
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */# D( ~3 Q& m/ g% z
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
9 p, y. I8 u1 ?# X% o( }5 r1 E
8 H& K# |# X/ G1 wvar appLogger = LoggerBuf.create(loggerBufP);, [+ u, @, |" A% b1 C
appLogger.instance.name = "AppLog_Core1";
^1 \) [6 ]8 ]) WDefaults.common$.logger = appLogger;, R9 i( r0 q5 _ X
Memory.defaultHeapSize = 0x8192; & o5 y3 l( k# j4 F7 X' M# ]( G l* V
Idle.idleFxns[0] = "&LEDStatus";
& `9 k) j. K2 L! @Cache.initSize.l2Size = Cache.L2Size_32K;/ ~* k ^: l- I( D! b4 K
+ e. `6 f, R( h B. D
|
|