|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明3 u5 n. C# U9 x
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下+ X) C# x: V* p0 w. S5 X
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
7 e# L7 k- r6 R% E, Y/ H
6 H* N4 r% W6 W0 T* g5 e/ J; G是不是需要在DSP.CFG中进行配置2 _. k/ {% m$ U$ v' \
我现在的配置为
( j, i9 r( x4 C3 f" t
$ y8 u$ C2 X; K3 {6 s/ j/*
7 i4 l0 D* L I! F! f% d( B * ======== Operating System Configuration ========
3 m& p9 Q8 W9 t( [# L. ?* a8 q */
9 D; E) j" ? X- S3 e+ U; F9 v: O- G& v& v$ W. {
/* no rts heap */$ m& o# g0 L" l/ c0 u- d* v' ~# b$ \
Program.heap = 0;+ C" u, ?% [6 a; k
Program.argSize = 100; /* minimum size */
( s, z; f/ C( [( O( T" I" O4 \Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
, d, j' B, H/ O/ m0 c$ ^9 J
: Z! A$ n+ G" G& ~$ U6 B/* create a default heap */
4 l7 V1 L' h* ?5 p% dvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');3 k' W$ Z* l, L* H+ y' ^
var heapMemParams = new HeapMem.Params();
( J( n# N0 p# N; `heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
" A2 W# b% P+ q- j/ ^2 J
3 C+ I" F# e: Q2 V* k" ~6 Kvar Memory = xdc.useModule('xdc.runtime.Memory');
: N/ A0 @7 c5 R# b8 rMemory.defaultHeapInstance = HeapMem.create(heapMemParams);+ W ~+ w, D) o, n' E$ d! [
]5 x/ J7 Y. F" I! a
/* configure System module */: Z0 m! E m# d, I2 h2 _
var SysMin = xdc.useModule('xdc.runtime.SysMin');" M* a# h3 o$ r2 ?; s
SysMin.bufSize = 0x1000;
" O! ~; d9 t5 X4 iSysMin.flushAtExit = false;4 K. }2 e% G0 ^$ A. B
: E( b; U7 X; B2 wvar System = xdc.useModule('xdc.runtime.System');! J6 M# _* E7 ], W$ r8 Z4 f. O0 i
System.SupportProxy = SysMin;2 D5 |/ p: }/ X8 x0 N
5 C8 R. u* i) k" C7 r. l3 l
/* configure SysBios to use the lower half of Timer 1 *// [3 ?: S+ k/ ]" x. \* Q- D
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');: Q# s! M8 @+ E9 M, Z
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
$ Z4 R/ p0 \6 a. FTimer.timerSettings[1].master = true;
9 q( S0 R: Y) p6 i" l* J+ H. q4 h/ YTimer.defaultHalf = Timer.Half_LOWER;
% N( e$ V8 M' N0 p7 N6 {Clock.timerId = 1;
) z; ]8 ?6 R3 R6 Q7 e; T D ?( y* X$ R' m0 P8 D4 e& r. |
# g' K8 w" [9 z( V$ P
/*/ H0 p5 D6 A; { `& @
* ======== Miscellaneous Configuration ========+ R: W+ f9 k6 `& n0 G2 I
*/
% Q& Z* t6 s2 h
0 h0 b d4 W+ N- ^: i& x: l/* set default diags mask */
& ?2 y2 w" ?! Z' Tvar Diags = xdc.useModule('xdc.runtime.Diags');4 F6 ~$ h3 H' n* T/ [) H* w
var Defaults = xdc.useModule('xdc.runtime.Defaults');
; J4 S6 Z3 c# M+ |. K
: @7 k, K' v0 X5 j2 g3 G# u( HDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;, O! n `; Q! ?9 h5 _
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
1 n$ r* }5 h* e/ `/ p5 P0 ADefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;% R* P9 r, Y7 W. J/ M
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */% U; w* ~- a4 F* v/ I
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
( @: u$ O9 M4 k |# J# v+ x cDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
2 i8 a- m+ a& X8 D6 Q) ]2 I3 \Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
& H( H7 e6 R- ]: X4 SDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
/ O' U+ K7 O6 \: I' f3 F TDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
) U( Z! g9 @2 F, w8 YDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
4 ^( L' `3 l" X2 i4 j& D {9 YDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;+ d9 ?( t' l1 f
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;$ f' ]/ }- l3 r9 x! ?% @, f
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
6 c0 G6 z: R2 A+ u0 Z: \& J, ?Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;0 S2 Z6 m( A) x* B5 l. H# M
9 N8 x! h( Z4 R% L5 w/* override diags mask for selected modules */- a& O ^0 v6 c% y4 a
xdc.useModule('xdc.runtime.Main');
' n8 i. _4 {! U3 O# ?. [: KDiags.setMaskMeta(
; m: a! x- l/ c5 E0 a$ ~ "xdc.runtime.Main",4 w; k4 G4 o, [# y! ^2 b
Diags.ENTRY | Diags.EXIT | Diags.INFO,
5 t" [7 P: z# z* M) F+ \+ o1 B/ E Diags.RUNTIME_ON
6 h. A/ `/ r J. _);9 x: W$ p% S3 v% O! M7 B
% C3 a% Z5 |' @) ~4 ]var Registry = xdc.useModule('xdc.runtime.Registry');
" x/ e- [8 c2 p% M$ t0 XRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;- h( h8 z4 k( h! K+ k4 F4 N
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
( O* Z1 i+ H& |+ M, a1 T ?5 j* C2 X$ z) HRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;: W% D _( X# b/ v$ _, _, G7 K
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
7 W8 S+ z. B" w/ P. y4 n" i
+ | y; P+ v* {2 w& O$ x/* create a logger instance */
2 H$ a$ s7 K5 l, c9 d' e, dvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
3 o6 n. y! G9 ]! f6 f" Evar loggerBufP = new LoggerBuf.Params();
$ c- y$ b$ s1 }) }* KloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */! R( }* ^/ T* x" h/ p
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
) G; k0 M9 ^" b
) O5 F* H g" t8 }( @8 J- Wvar appLogger = LoggerBuf.create(loggerBufP);
! B {/ z) |# v3 W) uappLogger.instance.name = "AppLog_Core1";9 c2 @: d* c+ `, O0 Z
Defaults.common$.logger = appLogger;
7 ]( L5 {+ w5 K1 [Memory.defaultHeapSize = 0x8192;
$ g( H7 @2 p, {& M$ QIdle.idleFxns[0] = "&LEDStatus";& s+ b' `) e+ q* C5 p! g9 {) _# M
Cache.initSize.l2Size = Cache.L2Size_32K;
; e9 w% S W3 K( B2 V; \" F# {& O5 D& f
|
|