|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
$ Z+ r7 d. p2 P: `8 g3 z我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下" N7 X% o% J* l& c) [. E
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)2 q8 l$ d* U5 o9 L
5 Z# ?* X' Y f5 T是不是需要在DSP.CFG中进行配置
) m8 J' ^0 B& ~$ a7 z& W1 I* j我现在的配置为
% q, j" Q5 O" j) q$ W1 C" f0 J
! f- o. X v: q% t- V+ l7 O( K/*
5 w, [6 H. x6 c Z( |5 o; N# K( J( @ * ======== Operating System Configuration ========
+ |$ x. P1 D0 [" g) a */8 C- L( n4 O/ q6 m1 u$ U
+ U' |$ ~ r% G8 m- h( r4 R. t/* no rts heap */
. b& E) A6 o# }9 K" nProgram.heap = 0;
* c: |4 m x7 f9 Y! f# Q( E$ X: ?' jProgram.argSize = 100; /* minimum size */
3 b# T0 `) ^* k, }0 T! X8 s9 z1 j% sProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大7 t3 n$ B5 i% x; k( j6 b
1 ^3 K* H0 H% l A1 j( ?6 t
/* create a default heap */
( K L5 k& z0 uvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');/ i5 z1 G h! H& z* K! h8 G
var heapMemParams = new HeapMem.Params();# n5 h# ~$ j% C
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
' o1 h: a V: d0 F3 X! f0 R1 \
" Q/ r+ s4 l( r+ D" o! R6 }$ nvar Memory = xdc.useModule('xdc.runtime.Memory');
% w; c8 h4 S& N- vMemory.defaultHeapInstance = HeapMem.create(heapMemParams);. F7 W4 i4 D+ z/ k: i9 k/ P. S
: x$ W+ b! {+ z9 d+ K" d, ]
/* configure System module */0 S* r" ^. A; }6 g6 K2 c
var SysMin = xdc.useModule('xdc.runtime.SysMin');
# l1 w2 [. N+ w; ~SysMin.bufSize = 0x1000;
1 x# r/ q: k+ C* U" ISysMin.flushAtExit = false;! W0 h7 ^7 M" F5 P1 z# m( B
4 q/ z. u6 @7 a) N% `
var System = xdc.useModule('xdc.runtime.System'); k+ J+ q2 e b
System.SupportProxy = SysMin;
) e% s% p( r/ k7 ]; y
# O- r! c5 B) u/ P/* configure SysBios to use the lower half of Timer 1 */. t% @6 A! ^& g
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
- Z6 j! `( p& \. |7 Svar Clock = xdc.useModule('ti.sysbios.knl.Clock');
7 z. L) `4 \/ j' kTimer.timerSettings[1].master = true;
- L! g. u. K5 \/ N. T" i+ y# ITimer.defaultHalf = Timer.Half_LOWER;
, y/ m6 m8 Z& Z4 K9 I5 kClock.timerId = 1;
7 W, _/ l; P* I; r1 g& B. h6 v4 X. A+ y4 L& H' S1 E7 j
/ ]3 H" ?5 e, w3 `5 x9 z. a
/*- v* V% t' R: l; l* P4 L6 D" a, M
* ======== Miscellaneous Configuration ========. G5 u0 U/ U) |# C# I
*/ X! D5 I$ S3 f
% |2 ~, P. i' M. d; s
/* set default diags mask */
# I8 Y* {9 \: Vvar Diags = xdc.useModule('xdc.runtime.Diags');
" N4 p* ]/ {( O+ avar Defaults = xdc.useModule('xdc.runtime.Defaults');
0 `/ I5 H% ?7 m- l4 e2 d/ N
8 w$ f( j$ \0 Y0 VDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;$ U! p0 \& `0 r$ O) i4 `! L. o
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;# @8 j. T3 k, h$ {: \2 x+ M% N2 _4 c- S
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
" `$ k5 p2 E/ Q' b! V! NDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
- {% ]/ P9 H" Q. L9 CDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
- z% t, \6 w8 g2 ^; @. YDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
7 E( L3 O& T" Y" D, T( T7 xDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
: i+ l3 l2 H3 u: n" t Z3 NDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;9 y6 S0 @$ A* O' |1 e, z) F
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
6 R3 |- T! o' R. ~& u2 bDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;# l4 y2 W$ O+ j3 d& f
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;# _0 V7 }* r6 }2 f
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;3 [* }- J' J% }3 C2 S
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
6 l# d) l- O" p8 V9 J @: N3 dDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
* [" Z4 ?6 I6 U0 q# {% j& h5 K( } g' `4 K+ \4 G( j
/* override diags mask for selected modules */' W+ p" U/ Y, O& X. E2 t; ~
xdc.useModule('xdc.runtime.Main');
& u5 i& O$ L" |0 JDiags.setMaskMeta(
- \% B, t" ~+ g: R% p( N7 w "xdc.runtime.Main",- n4 `! k+ G0 X# s2 ^3 x
Diags.ENTRY | Diags.EXIT | Diags.INFO,( f \- O R4 n3 x
Diags.RUNTIME_ON
, X# S+ O, V2 ~' l# Z, x! J);
1 Y9 @. A; a! P
4 Y O/ U# @' o+ A+ D2 z: s) t Q9 Fvar Registry = xdc.useModule('xdc.runtime.Registry');
) R9 H0 G' D: v3 ~Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
4 p: i; `! e! f: c; VRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
' a+ K4 d% |3 i8 _1 {Registry.common$.diags_INFO = Diags.RUNTIME_OFF;1 m+ c, E- t2 j9 v* \
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
* B0 }9 y. x; q) {9 X; r5 T7 f6 ^
: ?4 X2 M5 k# j; @& k/* create a logger instance */
. b5 H4 N: Q, ~" l! b( y2 c! vvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
6 w3 p& q( e, fvar loggerBufP = new LoggerBuf.Params();. @7 A+ D: G: d1 l
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
2 Z" t9 K( T s4 a6 mloggerBufP.bufType = LoggerBuf.BufType_FIXED;
1 h+ \/ G* `/ R; g9 a$ |! z4 I9 E
+ A8 H7 n" h. b/ Hvar appLogger = LoggerBuf.create(loggerBufP);& B. [5 P7 S& g. S9 ~1 a: Q
appLogger.instance.name = "AppLog_Core1";
; W6 Y; Y3 O) ?( u bDefaults.common$.logger = appLogger;
! x |+ ^, B1 |$ q# vMemory.defaultHeapSize = 0x8192;
3 i+ ~6 X+ w: `6 K: l. VIdle.idleFxns[0] = "&LEDStatus";7 j4 V- [9 |- R8 S
Cache.initSize.l2Size = Cache.L2Size_32K;
: k' v9 e# `8 |; u1 l
% s5 D5 m3 \' {- e: A |
|