|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明: n0 f5 y8 f* z) E' F0 f4 k l
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
# d7 X9 D! e/ j* s2 Q0 M& G(不过疑惑的是,为何单独DSP仿真就没有问题呢?)# ~- F* C8 `2 E# O j8 W) ~6 v
% f. p; y U6 B) l: A* }; r是不是需要在DSP.CFG中进行配置) m4 {/ S5 V5 ~
我现在的配置为
+ [# U- `, d4 F7 h0 A( a2 W8 k Q& Q* D
/*6 Z" B) r( E4 X/ Y, G r; z
* ======== Operating System Configuration ========
. y3 E- G; T+ v% X! s7 R! G */! I4 {$ f. J) s9 F
% y2 `3 L! R4 i4 m
/* no rts heap */. [# E% d0 |2 r% R' B
Program.heap = 0;4 C$ O! D, P4 H p% o% e2 ^
Program.argSize = 100; /* minimum size */
; [! r0 K$ w: V$ o0 w' \) e) gProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大. {8 m. w6 _' w
4 j5 D b6 b- A' ]+ a+ l
/* create a default heap */
+ N4 K z* z/ F3 J) pvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
! {( D! F6 e4 U! K Yvar heapMemParams = new HeapMem.Params();8 ^! }" ~* q* t$ Y" {' [
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大# n8 W8 A/ H/ u4 ]8 B
9 G, l5 Y3 f5 j" A- Bvar Memory = xdc.useModule('xdc.runtime.Memory');
( k: a$ a' K/ }: k8 Y2 |5 a0 dMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
% _. W; c% X5 Z+ u( [4 h: _8 L, h; ?- J) g
/* configure System module *// t2 U9 x" I; e$ V0 P# q
var SysMin = xdc.useModule('xdc.runtime.SysMin');" H' b9 H- b2 v( Q! e/ U3 P9 z
SysMin.bufSize = 0x1000;* @0 a( e* c/ w, W9 z* K
SysMin.flushAtExit = false;- v! p/ i- G# F8 T1 X! _
! B2 P: D8 A7 {2 h9 Y" N" Z$ Dvar System = xdc.useModule('xdc.runtime.System');
4 a/ E2 b7 h Z5 }3 Y1 m% MSystem.SupportProxy = SysMin;5 Z0 }: ]7 D- ~7 e- N! ?; m2 P
- w" w# ~6 X$ i) V, y7 Y$ W
/* configure SysBios to use the lower half of Timer 1 */( L8 ^8 `+ ?: ^$ P9 r0 X
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
) W; J0 R! }1 V0 X! ]var Clock = xdc.useModule('ti.sysbios.knl.Clock');
- ]4 V% V2 E+ wTimer.timerSettings[1].master = true;
6 P& P* L3 M( c/ r6 R4 o1 xTimer.defaultHalf = Timer.Half_LOWER;
7 o0 h/ Z5 k) C7 s% s9 lClock.timerId = 1;
- ]. I, J" G' ~( g& C4 _9 {( C; i0 V& G, _. b# d, i3 f
- B H. C/ ~9 u
/*$ Q" y( D9 V3 k$ i" i* T4 \( a5 x
* ======== Miscellaneous Configuration ========
8 _3 _( Y4 E2 \, ^( D% R */! L0 S# g4 C1 s8 l, h" I
0 }3 s1 n' y( H: t
/* set default diags mask */7 a6 o! M, F( S8 w1 n( V5 ^
var Diags = xdc.useModule('xdc.runtime.Diags');
' Q5 r# v( l, x5 r/ G. Y ]var Defaults = xdc.useModule('xdc.runtime.Defaults');
& ^6 L- W* t1 l1 |( p# W0 h1 N# J
8 T5 N$ M* J5 l. ], t1 v6 @ e, \Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
1 b) S: ?; o( j+ @9 u2 _- XDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;$ i0 m0 q4 V& f! g& Q' }5 C" c
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;5 X6 w: n% G1 G4 R" ?/ i- T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 ~! a/ x% p0 ?
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
. Q2 [, a- O. u+ O# N/ u; ?Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
( H2 p3 t7 @# d: P7 u2 |( H- qDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;9 w$ b; E2 d1 t* I8 U0 D
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
, z1 K7 F; P' e; y6 E8 nDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
6 `, {! @% E) l9 SDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;; Y$ {; n' |5 N6 @( {
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;' r5 H9 H' b7 [) T/ H5 P
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;1 q7 s& O8 U3 F& E% ^6 r
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;, H3 O- f; N$ `* Z/ U
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
) f- R1 q$ S4 G* J% Y8 s% R* B, d# k1 l5 \4 y2 C) |$ t
/* override diags mask for selected modules */0 ~3 R. X- H2 k: t6 e) a
xdc.useModule('xdc.runtime.Main');
" p/ ^; V @, y k" ~+ mDiags.setMaskMeta(
( [2 b7 N# _/ J$ P: A# l% i "xdc.runtime.Main",
6 @' z( ]; Y" l7 y Diags.ENTRY | Diags.EXIT | Diags.INFO,
4 q0 d2 h+ Y2 L. D! a' d& [ Diags.RUNTIME_ON
% U# @# E2 ]' e" P);
' T1 h4 E/ S- U- N' j- _% }4 P6 {0 H" L
var Registry = xdc.useModule('xdc.runtime.Registry'); S& X) _7 |. J* K$ k$ @3 v
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;+ P8 E9 Z8 B- u) h
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;6 r# B' o) W: t$ O" d7 t4 k
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;1 S, C/ @: l# v% V' I8 |
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
* h6 Q4 W' K6 c2 q) @; q k4 n" ]. D w0 j# G
/* create a logger instance */
, g3 x: S" J) ?' S7 E- W" p/ g8 F( lvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); n' B7 o* C/ `9 b
var loggerBufP = new LoggerBuf.Params();% ^) W2 J9 O3 L, v: ^5 H0 _! W8 U9 Y
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory *// Q" x3 w |9 j. n; U8 Z
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
, a6 F) M5 I2 |+ v+ J
. P$ q+ E5 Q% h/ E' lvar appLogger = LoggerBuf.create(loggerBufP);! F" X" j9 b9 ?. T S
appLogger.instance.name = "AppLog_Core1";% x7 F! T* |/ y, ? r
Defaults.common$.logger = appLogger;$ {% H9 n( Y, Z( I
Memory.defaultHeapSize = 0x8192;
$ k1 E ^& @ B, aIdle.idleFxns[0] = "&LEDStatus";' G2 J% ?0 d$ l
Cache.initSize.l2Size = Cache.L2Size_32K;6 D' O9 x1 Y+ \6 W: p
( g: U. w' A$ V1 K
|
|