|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
* Y8 b2 H O8 z$ U: h& y5 E我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下8 h: O# y1 \* ?7 o5 K1 B
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
7 X/ X2 r" O7 X7 O6 G4 g
1 R. o2 Z3 \4 `8 b# {8 X; `是不是需要在DSP.CFG中进行配置& F; |8 o& i" C4 B- m
我现在的配置为3 d' @# A6 Q: D3 z& G: T+ K
( n, w+ t5 w4 }4 N; l- Y" N/*
/ `$ E6 F# }( V+ N, } * ======== Operating System Configuration ========
/ N2 _' y* N: s4 h( o: ? */
! z7 q% m/ J+ \# s" ~: h$ C, I# a0 t
/* no rts heap */" s/ B8 |! ?$ x' Y, D0 W
Program.heap = 0;' ^3 w* [ T: @$ k$ C! g, r
Program.argSize = 100; /* minimum size */
2 [' F4 s4 {9 X0 |3 MProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
9 H: _2 u/ }& P2 s
+ R# p0 e {1 i$ ^9 J/* create a default heap */
/ u4 B. H( r( r4 B) F; d }var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');. c/ S/ `: A. P6 I% y9 V9 O
var heapMemParams = new HeapMem.Params();0 U; V# {+ N- L2 b- Z8 [3 A
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
0 \( A* N' \$ |. s/ A' E k& P, S1 v( |, F, \, j, a
var Memory = xdc.useModule('xdc.runtime.Memory');0 p; {: [, {- {/ q2 F6 }- L
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
% s- e# Y* c Q9 N* i6 B n7 J2 `( X9 f& J* f6 H
/* configure System module */
& {5 w( L, a% J! Svar SysMin = xdc.useModule('xdc.runtime.SysMin');5 `9 s( z# `" ~( b( R9 d
SysMin.bufSize = 0x1000;
& |0 L3 u# d$ O2 A; \SysMin.flushAtExit = false;5 J f: O! R5 H. D! b7 P6 f# \
4 T) A8 G8 u+ a+ r( _6 Bvar System = xdc.useModule('xdc.runtime.System');# `6 M; z* Q" U6 ^, e7 M; Z7 l
System.SupportProxy = SysMin;
. z+ w: l5 `& W7 P# L6 K7 I7 S# a5 G) R8 V' \
/* configure SysBios to use the lower half of Timer 1 */6 Q. i o: q1 e- o2 c
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');9 ?/ L0 O. G) S+ o' s
var Clock = xdc.useModule('ti.sysbios.knl.Clock');; W4 R }/ l' S3 s" O
Timer.timerSettings[1].master = true; z# Z b6 i' W1 N$ D* f: W( A
Timer.defaultHalf = Timer.Half_LOWER;; P& p* t1 j4 [6 f( c7 n0 R; w
Clock.timerId = 1;$ M% u/ X* ~, |8 D+ W
: u2 p! w7 B9 k+ M: t" [' s
+ R' p% g, C+ s/*
1 s, O! E& f7 y- J% p* x! K * ======== Miscellaneous Configuration ========/ @; B9 o- X+ t+ r( S8 v
*/9 Y& W2 ~* ]- ]( `# j% g+ T+ c& A
3 n/ ^) w, \3 I/* set default diags mask */
w5 W7 P( g& }' O+ C1 Zvar Diags = xdc.useModule('xdc.runtime.Diags');
: L; m4 `1 i2 }# i0 qvar Defaults = xdc.useModule('xdc.runtime.Defaults');: O2 _4 }) I, R
6 P! M+ L% ]: j& R" sDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;( i4 l! {2 @2 i! m, ?
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;1 X* m9 ~2 V4 [. _4 F
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;, _" I: }) j! u6 L7 s
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 l( B c4 _- j- D4 }( `, ^/ | [
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */& B8 t8 P/ ^7 Z5 ^8 W# n
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
" j* e: P& I4 A3 |% M& z" l! CDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;% a( I) h L/ L+ z7 B# ^
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
* p2 F9 Q. j7 A" }# gDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;8 V' a5 w7 U+ M" A1 h
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
3 N2 c; c8 W/ @Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
2 i, {8 }- a+ v0 l2 qDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
( A$ T! ~* y3 S$ I0 `; Y+ WDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;! p1 T! ^/ b( ~+ l2 _1 U
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;5 F- }+ z1 M* _9 |0 a, r
& N* l U- j8 G+ K, m1 L& X
/* override diags mask for selected modules */5 `% x& D: l3 n3 L
xdc.useModule('xdc.runtime.Main');
# r9 t z' n0 S3 O$ @Diags.setMaskMeta(: [; h* q: e8 e. @- j, T1 q
"xdc.runtime.Main",; i1 `0 W7 d }, D
Diags.ENTRY | Diags.EXIT | Diags.INFO,0 q8 U( d* R; A/ k& i! ~! X+ x
Diags.RUNTIME_ON
0 ^% o4 b: s2 m. t4 D, T! P' X);: Y2 B" b- b" J; \! ?# Y, p6 E
# Y. h4 V% u1 L; B( e# T3 C! }var Registry = xdc.useModule('xdc.runtime.Registry');
4 @: L: j1 ^5 Y1 m: X5 IRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
) [, ], {4 L) l- N1 Y/ O! lRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
& G& |) O* w- q- n9 ~Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
5 B4 B/ M$ t( o! P4 p$ cRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;' S0 S+ {1 z/ R5 u. b7 z
0 \) P1 T& E, b% M2 f, g
/* create a logger instance */
* {# ?0 E# u) D3 u6 fvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');( S- N" U" Z6 _8 P3 A3 H
var loggerBufP = new LoggerBuf.Params();
6 |. z/ t' M; ^, G; a. @4 M+ hloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory *// X3 Z( w! I4 g: J: g; V+ ~
loggerBufP.bufType = LoggerBuf.BufType_FIXED;0 G2 G3 s' U$ m! U
5 c) }" h/ n+ W& t9 yvar appLogger = LoggerBuf.create(loggerBufP);# L5 f! K' w# n
appLogger.instance.name = "AppLog_Core1";
|' n$ p& O7 E3 wDefaults.common$.logger = appLogger;
7 o) r' U6 n7 f7 S! |$ |- O. DMemory.defaultHeapSize = 0x8192;
' m, x$ ?+ Q" j) e& B4 K- fIdle.idleFxns[0] = "&LEDStatus";
, K, t3 \9 n" J4 X: [Cache.initSize.l2Size = Cache.L2Size_32K;) _! _ K. H2 f0 S3 {
8 _/ f% A% X' `' h( U
|
|