|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明5 d" x6 {/ u- \; I* [$ p8 J( K0 U0 b
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下) q$ Y" t# R1 }
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)' S* P& ^& Y( @3 j7 h
5 k2 s/ o1 Q/ R! ?9 N# P. |- M是不是需要在DSP.CFG中进行配置* Z, c, E5 L3 t6 o X! T# y
我现在的配置为2 B3 R+ h& S8 {9 ]) S
/ K' m, ^+ V" v3 `1 n$ ]. C/*
# n! z+ ?7 F$ h3 R * ======== Operating System Configuration ========
7 m/ s& H5 g' e/ r# L */
' z& Y" X4 p, ]/ N* `' X1 `, {, O$ W4 X; N5 C+ V
/* no rts heap */9 }1 s" Q, i9 k, Q4 {% r# L3 T' j
Program.heap = 0;! e9 O5 V: a( k# S9 k$ r) j
Program.argSize = 100; /* minimum size */
5 l7 |7 y4 {( _. g- DProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
' g* O$ O+ x! c9 N' G. h" b: A. b6 I/ p, N$ L( W
/* create a default heap */9 I8 u+ T, I% ^3 K' |; h# O
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');9 w4 K0 U( U" L% c* W
var heapMemParams = new HeapMem.Params();
' Q1 ?0 m6 Q0 d6 C: eheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
' h2 J; V- j: H# a
$ t5 X( {' K' a! _" }var Memory = xdc.useModule('xdc.runtime.Memory');8 O0 q( {3 u3 j
Memory.defaultHeapInstance = HeapMem.create(heapMemParams); [5 l; G+ u+ j, G( J p* F6 A
$ N! y: P9 I6 s7 v L! C- O3 ^/* configure System module */5 o, f* u- n; d; h& w
var SysMin = xdc.useModule('xdc.runtime.SysMin');
1 E$ [9 p+ k0 A/ ?9 f* [5 W Y7 R0 XSysMin.bufSize = 0x1000;
( F- T, _. _" G" C; e- \& I U8 qSysMin.flushAtExit = false;
$ [+ B0 Z8 X2 R0 U ?3 U
2 t' K; p' N% ^2 s* uvar System = xdc.useModule('xdc.runtime.System');& O! ~* [5 \* I/ f% Z# f" N3 B
System.SupportProxy = SysMin;
9 o1 P& c# a5 ^ q$ P5 u
}- J2 ?: m1 K( q' `. S/* configure SysBios to use the lower half of Timer 1 */
Y4 V4 ~: ^0 N3 Y3 e9 c! ]var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');% x: e$ G& b1 t+ @. H! s* G
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 s, p, _: s* fTimer.timerSettings[1].master = true;" R/ p4 r) i/ W
Timer.defaultHalf = Timer.Half_LOWER;
, {$ P) r! k7 T& ]$ KClock.timerId = 1;
: X+ p6 S5 Y5 G% v7 ]) V* `- ?. b# F5 r4 P; x: |
+ l0 ]; E0 S: x# G2 Y; t
/*
1 } w7 r& b% |; S! G# C * ======== Miscellaneous Configuration ========
5 n7 {/ s$ \5 T% Q5 A) L/ G% z */& }3 o( K: q6 f, }( K
; p/ }( p7 e0 x8 U( w
/* set default diags mask */& t0 [; l" k4 ?/ U: [
var Diags = xdc.useModule('xdc.runtime.Diags');- ^2 U( C, Z1 N' a% z7 d( {
var Defaults = xdc.useModule('xdc.runtime.Defaults');' f; i q2 S) R2 c. g
. l& Y- G; c4 ^/ bDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
0 F) \" B8 T. LDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
6 ^5 F( Z5 |8 ?& ]5 [0 m9 C; mDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
' g% l k5 i; {# L0 n% J* oDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
% F# ?, J. B: G# q- M! }Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
' |- V6 m. e9 ]$ BDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
; n- X D1 x; t4 c0 K( mDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;/ {) Q2 t! V6 p0 @, T
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;; N3 e- v& B; Q% u! G
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;8 D% W- x6 c8 o7 h% c- {
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
1 w e" i% j) B7 SDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
2 F0 L5 y& V9 o T. P' i9 e5 PDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;3 L' A x2 u8 i% X3 f
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
* J4 h' y" Z, E: L8 ?- x3 c5 K/ \Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;# ^" W7 `5 Z/ Y
1 I9 X$ q: _- {6 ~$ f9 c" v/ {" T
/* override diags mask for selected modules */' Y \7 r$ a8 l, k7 b9 B9 j
xdc.useModule('xdc.runtime.Main');& \- W" Q: d4 V* I( D' {& i
Diags.setMaskMeta(, V, Z6 b9 [! `2 f6 L6 T
"xdc.runtime.Main",
( Q2 c; L2 _9 G Diags.ENTRY | Diags.EXIT | Diags.INFO,7 E, G7 q: x, l- c" }
Diags.RUNTIME_ON5 i+ S% T( {" S" y: @3 ^1 w
);
1 u- [3 t* {$ U$ V$ c- t5 R. \6 x5 p. s- C* A
var Registry = xdc.useModule('xdc.runtime.Registry');
1 ^# \" N# c8 L URegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
/ l; X K& p% MRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;7 i, \; i" L" m2 e
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
. b; Y; B f- u" V3 A2 E' zRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
3 w( E& S5 U' x' @. S2 g4 N; b- y$ z# y- J0 Q1 |1 I- [: |3 f, o. n+ ^: l
/* create a logger instance */
# r7 z* j) g4 t* m) O( e/ e& m0 B0 Fvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');* C4 o- G9 u2 E% s- K! }$ `8 {
var loggerBufP = new LoggerBuf.Params();* `" \0 F$ Z. W6 _
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
: W" M! k- c7 v; P6 i& p7 c* xloggerBufP.bufType = LoggerBuf.BufType_FIXED;
+ @% ]8 i6 k- L& y' h% m# p5 D+ F) {/ C# n! |0 ^+ _4 \
var appLogger = LoggerBuf.create(loggerBufP);
2 |) H0 w* }; m( Y7 ^. ^# eappLogger.instance.name = "AppLog_Core1";* k7 a2 {- l* r ~& D
Defaults.common$.logger = appLogger;) O; Y4 }! C6 W# s. S! x" i1 X
Memory.defaultHeapSize = 0x8192;
- v, z0 W' g7 F8 ^2 V- MIdle.idleFxns[0] = "&LEDStatus";5 v# K. P. g( @8 @1 i; C
Cache.initSize.l2Size = Cache.L2Size_32K;
. J$ F+ y5 }9 [* G' k9 h& j5 T' [# W3 @
|
|