|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明6 B$ x9 L% G; b& U2 T0 h4 E3 \4 B' ?
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下( G* S( i. C. u5 y4 I4 x. ?9 D
(不过疑惑的是,为何单独DSP仿真就没有问题呢?) E( P( ?) k2 m. ~4 g- `& |
- ^) w7 n2 z7 a/ t. |5 b, y是不是需要在DSP.CFG中进行配置
) {( d' P( f/ D6 i: G- V我现在的配置为
! G+ t* r$ x& h0 s/ N; \; J; Q! O) {. [4 N, S
/*
( [. N e: k/ U, v. h$ d1 |' ]4 T * ======== Operating System Configuration ========0 L' x3 h! H3 t0 I, y6 j. P& R( D
*/
9 u. @6 G; F+ R1 u7 S0 c$ K
8 d4 h. X) K @' X5 S+ p# \3 m/* no rts heap */
) A7 p3 C! y- b0 ^) F3 i& Q4 V5 fProgram.heap = 0;
4 N# x- R/ f( E5 U! z/ o: X! p% [Program.argSize = 100; /* minimum size */9 X- W; W# Y' J( f5 u' [
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大# a4 ~2 a& y3 q# o6 E, h% }
; J k0 g0 H. a/* create a default heap */- i+ k4 p4 ?. C; m; o; G& A) L) x
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
- H. x! u) N) k" Q$ L1 lvar heapMemParams = new HeapMem.Params();
3 W# Z6 y1 {+ iheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大% I0 R( F$ W6 H! k$ z
6 A+ @8 Q! H- [! {
var Memory = xdc.useModule('xdc.runtime.Memory');$ |# S( Z. t4 t# j- |& Q% J4 h# \
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
; i1 S2 a$ s1 ?( x- J+ e6 t- o
* e6 O0 q* m% I( Z7 Z- X: _% v/* configure System module */
8 Y, I0 g6 K8 Y3 Y6 S4 u" Vvar SysMin = xdc.useModule('xdc.runtime.SysMin');
! z: f8 {1 k- j: d( ^4 ?$ cSysMin.bufSize = 0x1000;
4 f5 Y/ w7 W, Y/ X! F9 B9 S3 {SysMin.flushAtExit = false;0 G, R; a! ~6 U1 y" @1 Z H
/ F6 a. | U2 T; P+ b3 `
var System = xdc.useModule('xdc.runtime.System');
: C# x* j# Z! b5 F& d" M9 cSystem.SupportProxy = SysMin;
0 d f! g# i1 `+ y4 i' N$ J1 J, b
/* configure SysBios to use the lower half of Timer 1 */3 }$ Z3 y) o! z, M0 R1 V
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');; x: b9 M5 a" ~: T
var Clock = xdc.useModule('ti.sysbios.knl.Clock');/ ?, Y" o2 h! F/ Z
Timer.timerSettings[1].master = true;$ Y0 L! e) v3 D
Timer.defaultHalf = Timer.Half_LOWER;) G# A) x' w1 w) l$ r. O; ]% H
Clock.timerId = 1;
7 @+ O U7 [9 o7 b' a. c- H( k3 a
, G) u$ q/ U0 D% E$ j9 E1 S
/*
0 c; F R/ d( q3 G Y8 M2 k * ======== Miscellaneous Configuration ========
% t9 ?$ [8 l0 X) K0 k6 u4 N */
4 }3 u5 Z# R! G
& k5 B( p& o2 R9 ?0 x/* set default diags mask */
! M5 m" [7 T3 \) Mvar Diags = xdc.useModule('xdc.runtime.Diags');
& C! z5 C# M8 i/ I, p9 i# y% Vvar Defaults = xdc.useModule('xdc.runtime.Defaults');
2 Q9 K4 i4 b6 G* c4 b1 ~/ t
/ P1 w; F7 C$ a' f: ?7 N; [Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;! u& U. F! L+ X
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;4 d+ H0 X& f+ f2 Y
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
4 A7 y1 g& S7 D, g; XDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */2 [. a5 s6 p* D% |1 D
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
' P$ C: N5 w8 SDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;2 N4 @2 E/ N& y! ?2 c7 F" i
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
6 j* M3 c/ j: ?$ v( L/ W6 rDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
e, J. T' W% p3 VDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
1 U* P c* H$ Z9 T3 N) k: O. t# K( rDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
8 t, ]. F2 _9 T+ \3 |( D: FDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;- v* W' W' {5 r8 |( K3 k1 L
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 W1 c' X' f7 M# w) }Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
% ~5 N4 S. l: H8 b. B$ KDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF; ^3 m7 @' d4 d; v1 Z9 d
8 | p9 N" s. l% s! g/* override diags mask for selected modules */6 M, D+ v2 j# c- Z) u$ P
xdc.useModule('xdc.runtime.Main');
/ j4 w R# G% q, u/ bDiags.setMaskMeta(
' ]1 w5 o. w) p' f% d. |$ s "xdc.runtime.Main",3 L% i+ C, |3 O, q, h5 H
Diags.ENTRY | Diags.EXIT | Diags.INFO,
8 i+ N9 H% o4 e4 E7 ~ Diags.RUNTIME_ON
' `$ e* ]3 N& F);
5 y9 y: c5 T6 u4 F7 ~6 b6 a( J$ o8 O& n1 L. R/ D8 s; ~) ^
var Registry = xdc.useModule('xdc.runtime.Registry');
0 Z& h' n5 N* o5 _& rRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
1 I: N! ^. n) ~3 q) J/ KRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;$ {! {9 j! ?& H4 N$ G, V$ A
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
4 k5 d8 h# v' I8 DRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
! W3 B; J4 k9 p6 q( T* Q) k! o4 X! ^: P
/* create a logger instance */
1 e4 i* B% m9 R# G5 m- Cvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
8 p$ d' i) r6 f6 P% A! \4 Fvar loggerBufP = new LoggerBuf.Params();7 n5 x- N4 p$ v4 @$ z
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
@& Q, f9 W$ [9 `1 }) f+ SloggerBufP.bufType = LoggerBuf.BufType_FIXED;! E4 T# H1 q: D; s! D
7 v! Q4 t" q( V. v9 w9 v
var appLogger = LoggerBuf.create(loggerBufP);: Y0 ?( e. _4 T% c1 Q
appLogger.instance.name = "AppLog_Core1";
3 e0 G' g C+ p! z" q, R5 |Defaults.common$.logger = appLogger;
1 \1 C" O5 B+ z; U/ ~4 VMemory.defaultHeapSize = 0x8192;
# `" R6 d8 ~4 T0 J0 jIdle.idleFxns[0] = "&LEDStatus";
8 |( C" S' b7 S" JCache.initSize.l2Size = Cache.L2Size_32K;
8 s% _; h6 G/ V6 n0 A, m
& g% g7 f! u5 ] |
|