|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
8 }% G6 R. R/ G) L, J我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下$ I3 {; g; C9 v# e G3 u! l+ F5 g
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)9 t- ^' P& D. Q+ Q& E( y
( z4 R' L9 K$ ^2 D" {% [* R5 x
是不是需要在DSP.CFG中进行配置5 c) M( H# g+ j' s
我现在的配置为
- z9 [+ a( U: o6 _& @- ^
9 `- z* {5 a0 [0 ^/*
; d9 ]- \, Y! H * ======== Operating System Configuration ========+ l/ F6 O* ?/ e9 R! z6 T
*/* @: X& Q, X& ?7 F5 x3 Y
9 h8 r$ l3 s; m/ w+ U5 A- w
/* no rts heap */
4 i% _, H% W4 @: l. w. ]Program.heap = 0;
& {1 `* b5 \2 {Program.argSize = 100; /* minimum size */
1 k: m" K( U* X, p+ m% ^Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大% r( Z; F P& d5 v0 O' q* W
" ]6 ^6 D2 A/ s
/* create a default heap */9 o) P+ h; J2 {1 [: `0 ?, S* ~
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
, o2 Z5 E9 t q7 k& ]var heapMemParams = new HeapMem.Params();& j5 e, A" n* F
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大3 g5 z% l8 {! `# ~$ v1 o& W
, F+ {/ c9 w! A6 J# ~/ Fvar Memory = xdc.useModule('xdc.runtime.Memory');# y7 ~7 ]8 `3 r% }1 M" G! ?% J% R
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
; `$ @, |, O$ v5 f7 n3 d% m: h9 i3 U; e @0 W
/* configure System module */5 E9 h9 s' ~- I! F
var SysMin = xdc.useModule('xdc.runtime.SysMin');: h0 I# Z. o" v: B% z4 r$ k
SysMin.bufSize = 0x1000;
& M! V* W! K* L$ C; f1 z0 `SysMin.flushAtExit = false;
: c5 S! g0 [$ y! X, u6 l
% o& c" j( m! wvar System = xdc.useModule('xdc.runtime.System');
3 b( z# ^8 v4 u! TSystem.SupportProxy = SysMin;9 n X* O$ o b# A: w9 e) b2 w
4 l/ k" `2 E: D* X9 K. ] ~$ f0 t/* configure SysBios to use the lower half of Timer 1 */
4 O! Q: ^- [4 P8 L }% s* n$ pvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');/ S; ~" U J0 |" x& b6 V8 X
var Clock = xdc.useModule('ti.sysbios.knl.Clock');$ m( F8 U; y, \( I4 ~! K: m
Timer.timerSettings[1].master = true;
" d, X r9 Z- p5 S5 e8 s/ ^, R# GTimer.defaultHalf = Timer.Half_LOWER;
$ J) ?$ }# z1 s' e0 d" XClock.timerId = 1;
7 G) Q! g; Q0 l2 r# v$ h: X4 V# F" I2 w% C* N" P- K d# {
. M& ?5 q4 n" O
/*
, a! Y6 U A/ }( j, Z * ======== Miscellaneous Configuration ========
/ h9 [7 X1 t7 l& Z */
. ?6 P) ]/ m- a3 w: P+ w3 b* `( n4 K- o$ I a- A6 v
/* set default diags mask *// R6 \2 K& ^: a! s
var Diags = xdc.useModule('xdc.runtime.Diags');
; [/ h! w6 V" C5 Avar Defaults = xdc.useModule('xdc.runtime.Defaults');7 Z$ `; j9 V, v5 v) g$ j7 f
/ F* M5 H3 d7 Y/ H0 X
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;- H+ J, @) ~8 [( d) z. }8 {
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
, y$ l9 e+ ]9 rDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
: a/ s- Q9 J. GDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */: O1 w7 r# y6 I6 E. l% ?
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
7 h# _, o+ `& R! kDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
7 h W6 n$ L) \1 x5 zDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
Y& Y+ }9 A" TDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;' t6 Q* _9 i) J, N0 D% V
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;5 c0 }& S! w$ @: ^9 S
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;" U1 a/ j: Y7 S! [( y! b
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
' Y6 ~6 n% e8 ?Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
2 v9 J$ o7 ]$ w9 W- S! ^2 N0 C2 EDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;3 U& v& o2 T# |- Q$ g
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
4 V r- ^3 N. R( [
6 B6 c9 N7 }9 O" B) }$ O) n/* override diags mask for selected modules */6 B R M: W1 y- L; ~$ B
xdc.useModule('xdc.runtime.Main');
1 a; Y2 f" ?: EDiags.setMaskMeta(
; y" b" d$ B+ c7 R( u "xdc.runtime.Main",. o4 f8 [9 c/ p
Diags.ENTRY | Diags.EXIT | Diags.INFO, ]; G- }) {3 l
Diags.RUNTIME_ON( ~6 O0 m, O: d+ i3 @
);
1 N5 S8 y! y7 b7 _1 T/ F5 ?' }6 |' f
var Registry = xdc.useModule('xdc.runtime.Registry');
. C% `: |& Z0 u5 CRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;' z0 x8 G h9 H+ b5 o
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
3 v6 l, I' v9 L& |: X3 o5 _Registry.common$.diags_INFO = Diags.RUNTIME_OFF;5 q. Z' z0 q- p( E1 }
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;5 |! A/ S1 f5 M! [; ^: `
8 @' W9 @/ C$ z9 u1 E" ]4 f" A2 c( w
/* create a logger instance */
: S- X( u$ }) e4 H8 zvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
% ?/ e% ^- C1 F j2 K z5 m; z1 {var loggerBufP = new LoggerBuf.Params();
% ? T9 E! Y9 c* l+ JloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
. c8 P: S1 Z8 D4 o* b# xloggerBufP.bufType = LoggerBuf.BufType_FIXED;; ?+ Q" ]# I5 v* }4 b6 S q3 m4 V
8 d; @3 Q" W* r/ b9 s' g- E" K
var appLogger = LoggerBuf.create(loggerBufP);( C- v1 ?& m# m/ D8 o: Q
appLogger.instance.name = "AppLog_Core1";7 Q: |6 l* [6 K' E0 C# e( B. |
Defaults.common$.logger = appLogger;. l5 Y: R1 v' a* g" \* Z% m$ Y
Memory.defaultHeapSize = 0x8192;
: t$ O, L. `+ H% H% D9 ~. ]Idle.idleFxns[0] = "&LEDStatus";
' ^+ o/ \0 j) r8 u/ s0 D) lCache.initSize.l2Size = Cache.L2Size_32K;8 h, F) G% M- k1 d p+ D+ C
* l+ ~/ c2 M. e$ W$ a! o+ [
|
|