|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: p5 y6 C1 }8 ~3 H: N4 d+ t我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
. E7 K# J `- R$ f$ h$ r(不过疑惑的是,为何单独DSP仿真就没有问题呢?)2 L1 Q, [" t, O3 O$ k! T
; |$ X+ Q; q8 [- @是不是需要在DSP.CFG中进行配置
5 n3 ^2 g% ~( w我现在的配置为; g: ~6 X) @" A4 r' e' U; }# D2 s
' b4 r7 I$ B/ M; D
/*
$ W! A0 X; i/ A. k. m% _. h# _( e * ======== Operating System Configuration ========
5 B4 O- x9 {$ j) S. @4 I */
( B8 D2 H4 l% E$ u" F# Z1 A5 a0 A8 h- ?3 u
/* no rts heap */. U$ A9 ?8 w% y. n3 h, l
Program.heap = 0;
+ a- _1 {% ~9 e2 Y i$ sProgram.argSize = 100; /* minimum size */! T' e& o0 ]7 i, n+ U! Y# u0 M. M5 c) C
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大5 O% R1 y w/ @" K7 D, C7 ^9 w' [
7 \, [" @+ `/ f9 [; K
/* create a default heap */# N9 s. _# n/ R0 D+ u4 _3 {# p
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
4 f" x; s0 I: y. qvar heapMemParams = new HeapMem.Params(); @* \ Q; K/ v( \) V% l
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
0 z, @5 ]1 D$ N/ o9 f- S& t, K
) I8 C* U6 L; H& R/ @, b# {7 Yvar Memory = xdc.useModule('xdc.runtime.Memory');4 }9 T8 L9 [8 h8 j' J: F' T
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
& m) ?6 w+ k1 ?" e8 p; d; K: F8 \* m4 @6 M- N: m* n
/* configure System module */0 i V# i; N* S5 p& e( J6 V* g% u4 L
var SysMin = xdc.useModule('xdc.runtime.SysMin');! i% n6 n7 N8 i* C+ X% |7 j" G. D
SysMin.bufSize = 0x1000;/ D/ T2 S+ S8 ]; d
SysMin.flushAtExit = false;
6 J# h) c+ Q& Z8 i- D& E6 B8 l2 J) D
2 x- \- S( L" r4 [4 Y% [var System = xdc.useModule('xdc.runtime.System');4 e! C! O G. Y1 s6 l
System.SupportProxy = SysMin;
9 o7 s. J" w+ O8 [( T* U8 v7 d& n; Y2 e' R8 T: \: |
/* configure SysBios to use the lower half of Timer 1 */
) `) @, {/ Q/ j$ `( Hvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
& Z2 V: S9 N- bvar Clock = xdc.useModule('ti.sysbios.knl.Clock');7 U+ O" F1 S& o
Timer.timerSettings[1].master = true;" Z; { L6 F* N4 b" d
Timer.defaultHalf = Timer.Half_LOWER;% b, a: y& U# X! @; \/ ]( o6 e w
Clock.timerId = 1;' c1 N/ d" _' U9 T& G
5 C `" S8 V* S& S0 S
' E S% ^& e5 h6 e/*2 C: n0 U% Y) u c [
* ======== Miscellaneous Configuration ========
" n# P. V1 M3 Q( T7 T */- @$ G& u/ B" O/ _6 Q( W
! Q4 O& s( h/ x7 ^7 V: C. K X
/* set default diags mask */
6 f, d2 E2 V( E8 A# ?) r5 Nvar Diags = xdc.useModule('xdc.runtime.Diags');
: `" r+ z! u: Gvar Defaults = xdc.useModule('xdc.runtime.Defaults');/ p1 X) b% W p \
9 Q6 Q, c% d" V" p7 kDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;: p1 i3 S% Z, l% K' A) }
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
* o! o$ }- [9 A! U P+ NDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
3 _( b X2 [6 x" l* JDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */# ~1 V; ?9 _! u" e
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
) C( b2 u% F. D8 kDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
" X+ l) v+ B. }. I0 XDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
. Y8 @/ |$ B* PDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
3 d0 K1 M% F" D. O/ bDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
$ ^# ] n7 ~6 } R7 `Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
1 P& o0 u- E G! N* YDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;0 y& G: i, g/ A0 z9 o0 h
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;% v. m6 l5 F- \/ Z0 \
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;/ x$ Z3 S7 Y. h$ H a ?
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;. f8 \, Q) s' w6 e6 H. f2 R
6 j& `9 B1 h, k3 x+ H5 n# Q. u
/* override diags mask for selected modules */
$ W( p( h9 g/ Sxdc.useModule('xdc.runtime.Main');
2 m9 [5 h9 F# x9 t* b7 Q; _Diags.setMaskMeta(; U/ O; n; E! |. \2 g1 R; t" ~
"xdc.runtime.Main",9 L) S4 U3 ?- P/ y9 A0 g
Diags.ENTRY | Diags.EXIT | Diags.INFO,
K5 Q9 u) V6 [8 G( n9 D$ j4 s Diags.RUNTIME_ON
' \9 l- E4 p) y8 z. L$ N, b);
3 g4 O0 C+ }! j7 I( U3 [+ [3 p: H
" ?5 z% }6 |, yvar Registry = xdc.useModule('xdc.runtime.Registry');
- U% ~4 P3 n- c/ eRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
! x# c9 f e( }/ {8 SRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
- ^7 v4 H2 k7 v, g9 Z* \Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
- {! B) W& ? z2 F1 k* A# X: TRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;' F: Q! [/ F2 w" E9 Z/ I9 o
( B9 A7 m6 E% A/ B1 O/* create a logger instance */
) B) C; q. H- t& ?" g. y- _var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');- Y0 k# ^; K- l
var loggerBufP = new LoggerBuf.Params();
% k' s& `, |! E8 F: S) R4 b/ \) yloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */ P2 P7 X: b! M2 X4 H6 x2 H9 S1 j
loggerBufP.bufType = LoggerBuf.BufType_FIXED;9 S+ _) @) u. l9 A# w
# x3 ]) s- H1 A+ |, i% s3 v
var appLogger = LoggerBuf.create(loggerBufP); g9 H: g/ B4 J$ E4 O, v8 y8 @. k
appLogger.instance.name = "AppLog_Core1";
' `; W, I) T$ X" m2 zDefaults.common$.logger = appLogger;
8 g+ O! |* ]1 a/ E+ c; L% O9 ]; BMemory.defaultHeapSize = 0x8192;
2 {! I0 n; o/ ~) |$ \0 ZIdle.idleFxns[0] = "&LEDStatus";
: U3 c) g6 Y& ^- o; I* jCache.initSize.l2Size = Cache.L2Size_32K;, c8 q+ F: j! o& k* X) L# k7 o
0 p P! M7 `$ ]& O: u4 L
|
|