|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
; ~' k* T, G, D! J我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, i C& c( F/ o1 ?* ]) H
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
) y" p* H5 h8 R% F* C2 H
# T& j2 e3 B; z; s# ]是不是需要在DSP.CFG中进行配置
8 E* p0 Y1 W* e' Y* j1 }我现在的配置为
' |) n& S" D4 C' u+ y4 l0 ]. X9 l
/*
4 h0 w) P, ~) \) M1 W% E" R8 i * ======== Operating System Configuration ========
* x- u& |0 g" [; f V */
( c7 u8 @ r# h: Q$ |: w, z2 |3 W; U7 V( e$ }+ u$ t4 c9 K1 y
/* no rts heap */8 {( _% Y9 G( g* B z6 I
Program.heap = 0;
2 {$ {3 T0 X) j! S* X* W8 y# CProgram.argSize = 100; /* minimum size */- x5 p1 h1 K7 Y4 C: w. M
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 F' Z1 M8 k9 ?+ |" C
" V, A3 \, B6 ^2 F. a
/* create a default heap */
; n: i4 A4 q* i; B3 ?) K7 c3 K+ Qvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');2 z# |* x6 Y2 \
var heapMemParams = new HeapMem.Params();6 C0 ~: o; L$ P7 u3 s
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
+ w( b2 L( I# F# ]: C5 x J0 u9 R
var Memory = xdc.useModule('xdc.runtime.Memory');
$ W, E; I3 C* H+ s8 I2 [4 XMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
: h6 x. V+ e8 f7 W! D2 r) H6 ~- f
8 w2 j. T. B) F# }+ j: e/* configure System module */- D# G! n& R/ d1 Y& e4 \6 U' }
var SysMin = xdc.useModule('xdc.runtime.SysMin');
0 f+ [+ x6 z4 l$ a/ }SysMin.bufSize = 0x1000;
3 G# a9 |/ ~/ }0 _ i. w, iSysMin.flushAtExit = false;0 I7 W; S- E2 @; d
$ {& n$ @! I) P0 J+ F6 pvar System = xdc.useModule('xdc.runtime.System');
0 w- M& r+ D; n! s5 \' t# YSystem.SupportProxy = SysMin;
9 R" p/ Y9 X1 _' O+ A' y
- m9 K- i7 ?5 i" |8 ]/* configure SysBios to use the lower half of Timer 1 */8 b9 ]" U: J2 p) y2 C" T% K; J
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
3 I1 y* [$ d6 a( { r* V% [var Clock = xdc.useModule('ti.sysbios.knl.Clock');) d' d9 t" x, I/ ?0 r& v% t' `9 u8 P
Timer.timerSettings[1].master = true;
5 `+ c" D: b+ ?4 mTimer.defaultHalf = Timer.Half_LOWER;* l; _7 T, g# O
Clock.timerId = 1;& j) V4 R1 W6 ]8 f
" d1 M9 Y! a/ L% v& A
" y2 d$ n2 \# D# t5 K
/*
, ]1 Q5 z5 D" H9 y * ======== Miscellaneous Configuration ========( v6 ], R& z' M, N1 K( A" q' q
*/' `( S- I% M7 Q* L4 {
) e1 i8 B8 B' \# D7 W. W! O' [
/* set default diags mask */
( k: z: L$ e$ F; k; pvar Diags = xdc.useModule('xdc.runtime.Diags');
, A# \7 L h A% t" I P5 u% Cvar Defaults = xdc.useModule('xdc.runtime.Defaults');1 L Z" j& l" H$ i0 B
N" z3 P6 Y( b9 W: \4 rDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;2 J/ W' J" w! X& \7 r6 i
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
/ L, w) B9 Q' i" Z/ n% FDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;# ~7 X4 a7 I' w9 R( p
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
0 z" ?. G2 N# J8 ?8 r( c, G: `( jDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
: L- W& A! ^# R4 j2 h9 U( ?& P: sDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
% ^3 E4 @# l3 u+ M$ \! {. m0 [/ ?. rDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
. i- C% B% f% h1 Q4 wDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
, ^- \1 b( G' N a1 QDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;4 j* w, @, T# H( c0 _7 x: B
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" k, M6 |: f$ o% |; \Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
. a, d, G8 [" y0 \, A+ ?& n! H, K+ H7 s. aDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
. w% Z# y b8 \: P" lDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;' m1 Y8 J4 N) U8 o3 M; y
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;- W" u! q9 c7 F+ w. u9 ]
( B! }; W5 G. T/ m/ [7 l/* override diags mask for selected modules */3 m8 ^1 J$ r% b5 D
xdc.useModule('xdc.runtime.Main');) E+ t% t4 D7 P; I# e6 A! Y
Diags.setMaskMeta(
; G& \7 p4 W9 r6 ~" s6 F( O( A+ ` "xdc.runtime.Main",' S% @7 r8 N9 I+ i
Diags.ENTRY | Diags.EXIT | Diags.INFO,: l" @; N; o4 A+ W2 V: y4 ?- q( U
Diags.RUNTIME_ON1 S' D3 n' @# h& w' r1 v
);, Z5 ~9 b) v' f2 v5 c) L: B
& [; o# n! W" H1 J) p3 M( G! l5 h
var Registry = xdc.useModule('xdc.runtime.Registry'); ]# Z% @( Q% b: Y
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
/ a3 B3 P' T* S$ A: Y( \Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
j7 J8 K( `+ kRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;* t. b0 A) K" ]. J
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
) s6 b/ W: l; v: p: L0 G) _6 E2 j! S) E6 z" I$ h: C( C6 c1 a S
/* create a logger instance */
+ I. K5 {: J6 H# B4 i+ d; X1 H# Avar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');% a+ W4 _4 ?4 a! t1 w0 P& R
var loggerBufP = new LoggerBuf.Params();7 u9 c( C4 f) E# O+ i
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
5 k- G2 O* W( y; L6 ^! Z- E5 X/ Y( \6 lloggerBufP.bufType = LoggerBuf.BufType_FIXED;
2 B" |/ B3 t% ^9 Z8 P! S: b S) G* k; Q( k
var appLogger = LoggerBuf.create(loggerBufP);
! y" ~" B3 @1 L9 UappLogger.instance.name = "AppLog_Core1";/ q0 T# }+ D) |7 c
Defaults.common$.logger = appLogger;
7 F$ o2 n7 |# d1 d2 I+ {Memory.defaultHeapSize = 0x8192;
% r' N" h- n2 kIdle.idleFxns[0] = "&LEDStatus";
* _$ Y) |2 c' h: K+ Q: z6 yCache.initSize.l2Size = Cache.L2Size_32K;
2 G( R, E2 w8 A3 L, T) ~
# q; d* J! T% Z% ~7 ` |
|