|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明, e m4 H; }& D* @
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
, o' _1 T+ F* l+ g(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
5 {- k7 W& B, i+ V7 p7 p% B% _% C( C2 k& [1 k8 y0 b
是不是需要在DSP.CFG中进行配置( P8 y- H& R) {6 `
我现在的配置为4 @8 A* ^ h+ `3 |: H2 i
, N ?$ _1 L- y4 N( S1 g5 _1 e/*
% Z3 \3 N# R! s * ======== Operating System Configuration ========% |) z0 O% l. R5 k' O8 p$ S
*/
! y/ P7 n$ R3 g' |+ V5 B7 u2 v; L) Q
/* no rts heap */' P/ `& Q3 Z; E! M! o
Program.heap = 0;: y, J( y: _7 O7 _
Program.argSize = 100; /* minimum size *// V$ E* s! W; [( U
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大, N* T' q7 M& I* i4 z% B$ B' k2 {; b
; v5 X ]7 r- L1 n
/* create a default heap */
* I r- h e2 A" ], d5 R8 j! x$ f( bvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
4 @: z5 T5 f4 B/ jvar heapMemParams = new HeapMem.Params();2 m V# }+ M0 {9 F1 z: J
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
7 G! m; a% ]0 r7 ?% o7 Q* ]9 j
) _6 F6 A# N. evar Memory = xdc.useModule('xdc.runtime.Memory');
! j8 U I7 t3 G$ }Memory.defaultHeapInstance = HeapMem.create(heapMemParams);1 g" ?2 t8 L1 S* W! X+ o& e r/ N
* W( p# a9 l1 m: ? G' _5 E/* configure System module */
5 O) H8 \ ?! {( b! [4 o5 C5 Uvar SysMin = xdc.useModule('xdc.runtime.SysMin');+ ]: C; w. j2 Q8 v* J4 [" N
SysMin.bufSize = 0x1000;
- E% n' F/ t4 rSysMin.flushAtExit = false;
, j3 r7 N# S0 Y2 g
/ t9 c* W3 y0 E: _9 K, T5 Uvar System = xdc.useModule('xdc.runtime.System');
2 |: @2 M5 G2 W0 S# jSystem.SupportProxy = SysMin;0 f* v' [& r7 n: x; n; w! V
( I- x0 k: [7 d* F, i1 _1 p: X/* configure SysBios to use the lower half of Timer 1 */
- f0 v2 H" e5 _8 U n6 d6 ivar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
0 p7 t) X5 r+ F/ W. ^/ C+ j5 G3 Xvar Clock = xdc.useModule('ti.sysbios.knl.Clock');& K7 d" M2 j) |- {5 C1 `, r* ~
Timer.timerSettings[1].master = true;
8 E, B3 s5 {* d" P3 fTimer.defaultHalf = Timer.Half_LOWER;% j$ U1 f! T' b( Z+ N
Clock.timerId = 1;
# t: L! e8 t% }) [* l6 A0 Y7 V
( V/ o6 R, F; }' O a
5 x6 t9 |9 V# M# I( V* D/*
2 Q0 g3 n, n1 r; I4 r) \# `& R2 b * ======== Miscellaneous Configuration ========$ E1 o( F* l `, h
*/
; X: K p) o6 \, n
8 p. G) \' A6 d: C/* set default diags mask */3 {6 I: e+ B# c
var Diags = xdc.useModule('xdc.runtime.Diags');) @7 y* ^' B @9 C4 ^# y
var Defaults = xdc.useModule('xdc.runtime.Defaults');
9 T* \4 I) z) t5 p0 b9 n8 z
9 d( d$ V1 A F; {; G' fDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
7 |) |9 D4 k& @( O& w' cDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;. K1 ~, F0 K6 S, r& y# o& Y
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF; k# v$ p ?( d- o. w2 n
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
; w6 d x% \; |' i# l: WDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */- C( C4 z. I+ m8 j
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;5 U9 p- a' m M
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
$ g F# q# H, v7 I/ a+ d, Z0 tDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;. V N- b H1 c2 M# L* f
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
$ [, b; h z6 R5 t% T) ODefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
! A, K8 b7 B4 t1 v. L4 w, o' N. {Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
2 h: [3 ~- H, z5 }5 S$ b8 hDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
Q* o: ?' I5 ]' g2 kDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;- f3 q2 {9 G0 O: }2 Y7 O% [
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;% d% t/ _$ c: x6 U; w) q4 M
$ a' F& o- r& E. M/* override diags mask for selected modules */
! G2 L! `+ J- P8 {0 q6 Y! u* Qxdc.useModule('xdc.runtime.Main');
: D" i$ H, b; B7 Q: JDiags.setMaskMeta(
2 m ^9 x2 w& h4 Q1 U0 J& w "xdc.runtime.Main",
* g- c) I" s/ K5 j# v8 x0 r Diags.ENTRY | Diags.EXIT | Diags.INFO,6 |9 Y; X8 X( M ^9 v/ e8 D
Diags.RUNTIME_ON
$ G% \/ ?( g7 V: M3 ^6 x( w2 f& F% V);
, ]6 X" e. A! e l; g$ y% w+ D& G- m! u9 ~7 z
var Registry = xdc.useModule('xdc.runtime.Registry');6 U3 I- U- s7 b& ^" M& x
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;5 w# n$ a, C: k- ]
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
$ w- k( r. {- G' i+ B$ T' aRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
3 N% \+ U! R; H+ D2 j5 G& Y3 Z5 zRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
+ K6 J+ {& ?8 |) w3 E( ^1 k9 G; _
' c/ e" s7 `- c: @7 j: w! R/* create a logger instance */6 J- \; |0 v. l# |8 p" e4 g. n
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
* l2 [, P9 j+ [' K. M+ tvar loggerBufP = new LoggerBuf.Params();& P; F7 u8 m8 K c4 f9 w9 [
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */+ W& }8 }) C8 S
loggerBufP.bufType = LoggerBuf.BufType_FIXED;: u+ B" |9 m4 z$ y
) o. M# T4 c5 r6 b- n# z/ _var appLogger = LoggerBuf.create(loggerBufP);: k+ v6 F5 D7 t s* \* `
appLogger.instance.name = "AppLog_Core1";
; S# X3 I: n9 y& o5 y. n, l8 sDefaults.common$.logger = appLogger;
2 n' p# S! R2 V JMemory.defaultHeapSize = 0x8192;
% A& o3 y) P6 N7 \9 M% XIdle.idleFxns[0] = "&LEDStatus";
4 r# K' d4 W; y0 {( P JCache.initSize.l2Size = Cache.L2Size_32K;# F$ q6 d' j7 T1 N3 G9 Y
/ u( V4 T3 A% Q. [& t. \4 U/ v8 m |
|