|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明- B) B7 R+ n- \: _$ @
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
, O e" p" l: n; B& ^(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
9 g: g! Z' A9 f7 b5 a- f; { k: p3 j0 n& `9 a) L
是不是需要在DSP.CFG中进行配置
/ H0 V3 m/ X/ D/ G( O& K, d我现在的配置为
4 n/ P# g4 y0 I9 d; V) r2 h0 |+ P) H4 t, ^: t8 [ g
/*- n* V' i& Z9 G$ E7 n$ M
* ======== Operating System Configuration ========- B2 y( t( V/ S7 `, u
*/
: _7 k9 r9 T- |0 ]: H# i8 ^& i4 W" Z* P2 l/ U3 `2 N
/* no rts heap */; j8 [9 W) F; [ X- ?) Q
Program.heap = 0;' [+ v; l+ o( [5 Y9 w' O! H
Program.argSize = 100; /* minimum size */
4 f2 z, `- ~7 R" U% yProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
1 U! W+ f+ x: Y* w, I' [7 V% u1 X; M' y7 T' Q$ h3 V
/* create a default heap */
7 X$ H, \2 ^% X* J4 L3 ^: Q0 Mvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');3 j& ^* l1 B5 l. ^
var heapMemParams = new HeapMem.Params();* Y" w9 E/ b1 \# s5 V
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
" _" u% ^# Q1 A3 R3 c, k
- G2 V* h: L4 Jvar Memory = xdc.useModule('xdc.runtime.Memory');
; I( A0 x& i6 U T: r/ BMemory.defaultHeapInstance = HeapMem.create(heapMemParams);0 t1 `3 i) n' W9 l1 X, w3 I2 g
) v% S- ~6 B4 }1 d2 e1 P7 F2 s/* configure System module */
! E. y5 Q- o+ e( o( \var SysMin = xdc.useModule('xdc.runtime.SysMin');
6 f3 M% v' j+ ?" b: S4 E) I1 [ ~7 X/ ASysMin.bufSize = 0x1000;. V) N% W0 a9 e: x
SysMin.flushAtExit = false;6 Y+ H, f+ G3 v" l3 o
" Q: D& K7 c, z$ m0 J! Y- v% U5 k
var System = xdc.useModule('xdc.runtime.System');1 n( G: e7 k/ q8 p, B
System.SupportProxy = SysMin;
/ l4 s( B1 {! s5 `+ u* a/ j
2 [" s- C) C6 {: i/* configure SysBios to use the lower half of Timer 1 */
1 g$ n; U% e% l3 o3 u$ Rvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
0 k% t$ Q/ E* J$ c) Avar Clock = xdc.useModule('ti.sysbios.knl.Clock');
1 ]1 g6 @+ m1 v B9 `Timer.timerSettings[1].master = true;
6 G/ ~- W/ Q$ |5 r* OTimer.defaultHalf = Timer.Half_LOWER;% i- t- G3 `4 P
Clock.timerId = 1;
4 F$ E( G. ?; V' o" x1 N2 G5 j) a. j! W% B% V' Q. Q% `2 F) J% z
) j- L \+ h* N$ I5 m& |! a2 K
/*8 x) `8 M% _ e0 \# V+ ?& A# p5 M1 R
* ======== Miscellaneous Configuration ========
( q0 c' s7 V- K1 ^- C */
) Y9 \( q2 H; x% O9 \* e& \) T7 d$ @, _: h, t. B5 a3 M% x* ]
/* set default diags mask */
/ T( M6 P; b' I1 J, t& X$ gvar Diags = xdc.useModule('xdc.runtime.Diags');
9 ]8 Z9 r% t1 T$ o; evar Defaults = xdc.useModule('xdc.runtime.Defaults');) v; x8 Z H" _% I
/ E& W5 G" g: o7 w% X
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
: K, G! r/ ]+ k# p: j6 T0 g* _5 g yDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
# U9 D+ q8 x" z+ Z/ r7 q: lDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;- o' Q1 l& Z5 x9 G' j
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 C% H/ _( T w1 C. T) ]
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */5 V' M- q- j6 c# K U. ]; K$ b
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON; i( b: s4 X8 i% U/ t/ ?
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
0 q' \% n- H @/ rDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
. n$ G6 g4 N* f/ D* ZDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;7 O/ N" d! k. \
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
7 ^8 D; O, W2 W% H1 n+ @+ m- H* N8 T/ VDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; }5 D8 C3 u1 g3 t) H9 t/ LDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
4 R, D+ M8 u* zDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
. \5 ]3 k6 W( G: ~4 o% D2 NDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
( v' M9 j" I1 F' y9 H, l
" Y4 z- R% g+ ^+ b# l0 ?/ ]9 H/* override diags mask for selected modules */! o( {2 w% {4 a; g# E& ?* \' u: A
xdc.useModule('xdc.runtime.Main');
6 e/ Q: k. Z M3 [Diags.setMaskMeta(
# s' f" j, ~8 t+ U1 F! q "xdc.runtime.Main",
3 m+ u4 {0 U' Z4 J2 k0 d Diags.ENTRY | Diags.EXIT | Diags.INFO,
1 f9 l, L+ p' J6 G9 A% k9 A7 C x Diags.RUNTIME_ON N( J! _! y( ^0 t( e- P$ {
);
; Y& G6 T6 P! b" `
/ a; s- V; W3 |' x Pvar Registry = xdc.useModule('xdc.runtime.Registry');$ g w" |8 X4 g+ C4 I6 g
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
6 F, @: Z! y# h5 tRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;; n7 b$ b: E3 G6 G+ c1 t
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
# Z9 i9 O9 K( @) M* {" X# P# J2 eRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
( M$ A- d/ S/ t6 m
6 m: t4 P. o* X' m. p7 a, h9 X3 Z$ I/* create a logger instance */) w! A8 R& a7 a7 Z' G1 y; G
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); S7 \" O' K; s& M' o4 w5 P, U" d
var loggerBufP = new LoggerBuf.Params();* c1 c% K& u+ @6 X6 `' L
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
* l. Q9 M' Q2 _* V4 R' RloggerBufP.bufType = LoggerBuf.BufType_FIXED;
6 A' l4 {+ v6 }* O; i! G, f! W6 t2 R$ a
var appLogger = LoggerBuf.create(loggerBufP);' ]3 f0 M3 h' `" Z r- b( Z' [
appLogger.instance.name = "AppLog_Core1";: ]# x$ g5 l8 w/ B
Defaults.common$.logger = appLogger;
) c! [% Q6 j: W, w0 U% K1 pMemory.defaultHeapSize = 0x8192; 7 E: y, Q/ ~( ]/ l2 G
Idle.idleFxns[0] = "&LEDStatus";/ s0 z5 Z' p1 B0 \
Cache.initSize.l2Size = Cache.L2Size_32K;1 r/ w7 P" k6 x# ?% y# V
, }, N# m* @% L |
|