|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明( G. A# Y, G ?) _7 G
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, I8 F5 H8 F# ]( F! y9 f
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)# C2 A$ T T: r0 c/ g
% W" ?% y# Q1 t1 Z' D
是不是需要在DSP.CFG中进行配置 x( ]; k) M p1 k
我现在的配置为2 ~$ V( \6 m I/ V
. V. X4 N/ I3 u2 M! y `4 g5 @
/*- A! l; J% L+ r( p" H; I
* ======== Operating System Configuration ========
3 f! C" r: r4 N4 c* o( Y */
" U+ F R5 I: V0 N0 z1 p8 e5 I7 p- t8 [7 Y
/* no rts heap */
3 [- O; c9 G gProgram.heap = 0;3 P: `) U6 l3 _1 j
Program.argSize = 100; /* minimum size */( j2 l& U* O8 S- C1 T) z, k
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
2 a; m* f6 Z! j7 r3 Y) v
; W8 l9 j) [! J# y: l/* create a default heap */4 X8 E/ |9 S# r; W0 i4 F7 K9 X! h, P/ B
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');4 y4 ?6 q) @; n
var heapMemParams = new HeapMem.Params();
, D0 _+ @- ^, w+ M7 X: i- sheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
, J2 D6 |9 N) u# Z8 |' `& D) Z3 ]6 b5 O
var Memory = xdc.useModule('xdc.runtime.Memory');
/ A/ j8 L. @; U- W# Q! O% ^1 E, pMemory.defaultHeapInstance = HeapMem.create(heapMemParams);4 w4 w& Y9 z0 l/ t" s
4 O S9 }* G! K/* configure System module */
, c+ l( `( a& O& Y2 _9 i: w8 I5 t! Dvar SysMin = xdc.useModule('xdc.runtime.SysMin');
- \4 d- a; O# p6 HSysMin.bufSize = 0x1000; ]1 \: L7 H% a) E; p7 T" S/ ?
SysMin.flushAtExit = false;
* l, `$ |" J8 B. s0 r5 u7 P
# Z! g& v' @$ i `8 Pvar System = xdc.useModule('xdc.runtime.System');
. n) S+ s% k; H2 bSystem.SupportProxy = SysMin;
& J2 g& x0 N8 s5 o) l. ^: a, A+ O" D# ?; Y$ @2 z6 M( M
/* configure SysBios to use the lower half of Timer 1 */
. k( d" p( h. X) b: B* Cvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
/ S0 f2 k$ v# }8 L" Jvar Clock = xdc.useModule('ti.sysbios.knl.Clock');+ x. A9 L8 j; n) _6 h6 C- L
Timer.timerSettings[1].master = true;
# a8 N6 |. O1 @( m. {Timer.defaultHalf = Timer.Half_LOWER;/ Q, V. P, }) m8 V! d
Clock.timerId = 1;
$ H$ B, \) \' l5 o+ W' Y8 {- q+ P+ @6 J
! W. G6 M5 y1 T+ t. R
/*
0 _( |+ r- m/ _! W * ======== Miscellaneous Configuration ========/ n: D3 K! E' V% B% y' r
*/) y/ q5 V. J3 n7 q
% T# X o" ?0 u& ~3 z/ p: r/* set default diags mask */( ^, Z+ O/ o- d7 r1 e1 \6 C
var Diags = xdc.useModule('xdc.runtime.Diags');5 E" s q4 H1 Z5 u1 O! |
var Defaults = xdc.useModule('xdc.runtime.Defaults');
' H4 `$ S# p& i7 Y) t o2 x* Q
! B( P, T. ~3 R( E$ \- e+ oDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
* n3 _% @) C. ?. P4 WDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
3 i# x3 [2 I- x5 U/ B9 dDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
0 H. G1 R2 g* {! V" b: F1 _1 ZDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */& X0 C" r5 z K( j- n# L
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */! Z8 F) W. `5 A6 q
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
& Y/ q8 c, _* ?+ I$ d4 }% {9 YDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;2 ^* L7 B: ~- k
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
, [% k2 o. i+ `. |Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
" g8 ~ g5 v( w- eDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;% k. C5 \" X, b& M7 ^: ~! H
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
0 ?6 \5 z* i) u$ R/ O) I* o o& KDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;& r$ G' z' |" z! i! ^) C8 w5 b6 p
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;- A. P9 R7 A( ?8 a+ l# r7 @+ ?
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;: D5 S4 z q j+ J' M3 W9 R% S
: c# p0 o. T. N" @/ O# }- ?/* override diags mask for selected modules */
# S7 P7 F' k& @; xxdc.useModule('xdc.runtime.Main');
* X0 u- R8 K% T2 h! D0 L% {& YDiags.setMaskMeta(! u& e& S( h* d g
"xdc.runtime.Main",
. _7 w- f# w0 h( i Diags.ENTRY | Diags.EXIT | Diags.INFO,8 P% Y' u8 g2 S5 o7 y4 u
Diags.RUNTIME_ON6 n. K( S5 z6 x
);
. a* L5 K6 G G% P
. V9 B: s# W" J, lvar Registry = xdc.useModule('xdc.runtime.Registry');0 Q: l- C" G" D& I# l6 C; o3 a. b. R
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
2 y# `+ @0 \ [. {3 z) }: I" _Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;5 w1 c- }5 F$ {! z# }; J
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
( U4 k" d( n" r& RRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;/ o2 n4 m/ I, D0 J3 \/ X$ i" s
7 C" U) i7 f1 `6 R/* create a logger instance */2 W- Q6 { z) b$ M; Z7 H
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
9 w% d( {: D+ F& M% E% U( H& Wvar loggerBufP = new LoggerBuf.Params();: H6 G* h) |5 ]4 M7 G' i
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */+ d% g [, b) N! G
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
7 L$ w/ \$ v4 F! d. o' c5 E7 R& x
7 @ v, X2 j- i" L, D$ @5 O' evar appLogger = LoggerBuf.create(loggerBufP);
9 Z0 X0 r! h( q ~5 g, DappLogger.instance.name = "AppLog_Core1";
# E; A+ l; N% B4 {( x& ~Defaults.common$.logger = appLogger;
u; ~! V2 S; H6 G4 G- AMemory.defaultHeapSize = 0x8192;
4 l( T* A" [7 q* QIdle.idleFxns[0] = "&LEDStatus";* c% w* }. c* k4 j: ?
Cache.initSize.l2Size = Cache.L2Size_32K;
. d% _4 o2 H9 R# L! H4 p7 u( Q
9 a; S: ^+ o$ { |
|