|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
# J0 s5 M2 j; F( M我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
" C: q5 `8 I& f% [(不过疑惑的是,为何单独DSP仿真就没有问题呢?)2 x" [- g: G5 V& Z' E0 K+ Y% l
, y9 C& p8 W$ ~- C是不是需要在DSP.CFG中进行配置 n7 @+ Q3 w. d6 {8 t2 E( O* `
我现在的配置为
* z8 w6 O+ I+ e0 X# R6 Q2 p
) n( V) ^( N& t+ P, `( i6 T/*
$ R% C4 S9 t. H0 b- Z. s5 s9 g * ======== Operating System Configuration ========. ~4 t) C M% H' \5 B
*/
1 H, T" m. u2 E6 Z- L/ A; a8 H& F& o. a {7 [( O
/* no rts heap */2 J6 `' v0 Z5 h% {, A
Program.heap = 0;
" ?0 y3 T2 R* l& R0 }4 yProgram.argSize = 100; /* minimum size */# O, F7 c( u! U
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
7 ]! d! N& A8 d, t- e, ?8 }5 l& C% a& ^, M3 C
/* create a default heap */
& ^" N- B" X3 L9 z& i/ vvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
8 `8 q2 v, r/ e: w0 l! K3 I0 P+ |2 ?var heapMemParams = new HeapMem.Params();
! J# M5 ~/ F3 [- M. J3 RheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大, P# \0 Y3 _( L- `& J1 M
' M6 r+ ~5 A2 D, evar Memory = xdc.useModule('xdc.runtime.Memory');6 J4 n( I9 }1 R0 T
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);8 }6 l7 q/ @( h$ j) {) t: E
! p# V1 s( [" \8 ~/* configure System module */
/ f v3 C: O+ N3 w H' vvar SysMin = xdc.useModule('xdc.runtime.SysMin');
/ f/ D4 \9 Q" ^) M+ |* h; m6 j# b$ [SysMin.bufSize = 0x1000;
1 {3 M2 V- Y/ J6 A) E) `SysMin.flushAtExit = false;
. ~8 `, o" D, c
/ J: f+ V2 M N& _6 kvar System = xdc.useModule('xdc.runtime.System');
* R* m! F2 Z7 u& ]& sSystem.SupportProxy = SysMin;
" [! h" I8 }( A$ [# q, k$ G# O0 b8 i/ a! @ q S- k% ~. P
/* configure SysBios to use the lower half of Timer 1 */6 }5 L& p5 `9 a# e
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');# d T. }& a+ f* A d5 H2 H# G
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 n6 k# v0 A8 I0 C" {Timer.timerSettings[1].master = true;1 v6 k8 y# B% d! O0 X6 g) z V
Timer.defaultHalf = Timer.Half_LOWER;
* A8 L& C+ J1 s( JClock.timerId = 1;
# Q0 P. Y+ v @' [
! L0 _% Z! }# @. Y3 h$ D! t2 S3 g4 Y1 e) u% }9 O
/*# H& m! Y( }) v' L$ k* O( b5 B
* ======== Miscellaneous Configuration ========! Q- |& @+ O" ]5 G& F. k, {2 @
*/
( O e+ E* q& ]* m H* Z, z, I0 H
- S2 h) [. ^+ @/* set default diags mask */
* z a' u' W8 ]var Diags = xdc.useModule('xdc.runtime.Diags');/ c4 Q1 S( h- C1 }
var Defaults = xdc.useModule('xdc.runtime.Defaults');
' L) m" T8 {& o( o* T B& g j0 @& _4 _, g
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;1 y3 A4 ], c! z, g; G- \$ `: T
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
3 i7 C; u4 ^/ i5 g( E6 j2 NDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;2 ]! {8 w( e8 F& E1 u
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
+ \1 Y& l8 i3 x: {& k# i4 Z; ^Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
7 R. \! c- G4 V' G) C. | tDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;6 C' G4 Y* g' ?
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;- d7 C1 U& W8 j4 i
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
' N" m" }9 _4 r: S7 U+ gDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
% \- J7 @1 X2 pDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
; _$ \' Z* W- g+ s- n4 S$ @Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; u$ c+ f1 l6 {0 N" a/ M; f- g qDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;- V- C+ A, [$ m+ m$ V( { T: |7 n
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;; v1 t6 o9 S; e
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
- c/ v" o1 R# l$ ]0 M \7 D' G) D% h: |$ D& {# I- p3 C
/* override diags mask for selected modules */
0 V: _+ G W2 S2 L1 E. ]9 Mxdc.useModule('xdc.runtime.Main');% G. E3 l2 |0 F5 S s
Diags.setMaskMeta(
# x6 z1 n& B) I( Y( K6 w "xdc.runtime.Main",7 q7 [# V9 |! c$ p! R7 T3 E/ A
Diags.ENTRY | Diags.EXIT | Diags.INFO,$ o8 y% u t- V6 I* g8 p
Diags.RUNTIME_ON
. A! V, I0 [; k6 ~/ F4 a: u);7 b0 `( p$ D: e2 C* x2 e( B H, @
9 V8 P/ U; U* r: [9 y; W% Nvar Registry = xdc.useModule('xdc.runtime.Registry');
3 f, _' E( s, l) L( U e3 [! H7 xRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
0 K" ~( F6 b d/ ]- w" e% _5 NRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
, C' Q3 x2 N% S, l6 QRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
. ]: [: g) p0 ]- n0 }$ V yRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
+ j! ?' N6 F) N l$ R1 r% I( m" l4 O2 L; X
/* create a logger instance */
; S2 H3 @& G4 N; Q- Qvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
& _9 a# a# P# [ O+ y2 k! }5 lvar loggerBufP = new LoggerBuf.Params();
2 k8 I3 k5 N. X2 `9 F2 nloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
& C2 G* J5 i# M2 IloggerBufP.bufType = LoggerBuf.BufType_FIXED;
9 u1 a( J& K+ m1 l/ V2 V
/ w. }. d9 M/ E$ y! Y2 Y# avar appLogger = LoggerBuf.create(loggerBufP);
3 ^" N0 p1 J- h5 W( h3 [/ W9 dappLogger.instance.name = "AppLog_Core1";+ }: _' d' M3 N! B) ^, \3 U
Defaults.common$.logger = appLogger;
# h S" ?( [2 E1 NMemory.defaultHeapSize = 0x8192; % b# u& Y0 b4 C3 o# t
Idle.idleFxns[0] = "&LEDStatus"; U. c3 b" Z' v, S
Cache.initSize.l2Size = Cache.L2Size_32K;- b- D4 g0 j7 Z6 c1 G8 B) J
, |: W" C4 G, Y5 b# T
|
|