|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: [3 R+ U7 u4 K( o' H; }9 p我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
; d+ ?7 e3 S' S' V" V(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 ?; {2 }. C% A4 l: J
8 L" N2 o- D+ x) U3 U1 x是不是需要在DSP.CFG中进行配置# y* ]% ]. S! C$ k4 t/ p5 V
我现在的配置为0 s! h( Q6 i U I# o5 v
3 u, N( ?& B a: J6 x
/*
/ k8 V; V* c$ Z D1 e0 V" O; t4 c * ======== Operating System Configuration ========) q# N" D% z; f2 W) F
*/
4 s K. a$ S% [; P; c6 @, G3 w( ?# @' p8 m" E( p
/* no rts heap */& @7 m4 g- g6 }7 @7 d% v( H
Program.heap = 0;) t' C; a E' q& z7 _
Program.argSize = 100; /* minimum size */
) l/ V3 Y) P9 @& R' n. EProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
9 U/ o3 f6 ?: \7 H6 D" C; U) _7 e- n9 Y" X# x2 |
/* create a default heap */
/ U: w# G; V5 k, Hvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
$ e2 M9 n0 ~8 C2 |5 W, ~: W; {var heapMemParams = new HeapMem.Params(); t, O- c+ D' J4 `" D) N
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大5 x% Z# Y$ m0 U' _. [, Z
4 @2 f9 w+ j' i& i" A: wvar Memory = xdc.useModule('xdc.runtime.Memory');
) C+ f" J$ W f# D1 R8 I7 y! uMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
2 Y( P5 n$ w- D: M$ V, ~& H/ L: n. b# B4 D* p# f3 a
/* configure System module */
1 W* q$ R7 s8 |var SysMin = xdc.useModule('xdc.runtime.SysMin');5 j V) c0 x, e5 j! r9 w7 @4 R' N
SysMin.bufSize = 0x1000;
6 w! k( K6 w- [7 i3 Z& N/ |* b9 `SysMin.flushAtExit = false;
- I+ y- s& {' y& v3 z, ?& M# {+ I. z: d6 Y& f8 r l9 K% S
var System = xdc.useModule('xdc.runtime.System');
0 \' G) a; g; Z9 m4 OSystem.SupportProxy = SysMin;
1 @) Z" R9 E6 n5 u" n
( K$ x: q' U; H" r" I( d/* configure SysBios to use the lower half of Timer 1 */* I8 P0 s) T! H K
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');* ^4 z% s9 L* ~2 d" d2 W9 ~
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
7 k2 o& T3 E' k$ mTimer.timerSettings[1].master = true;
7 d, ~ v, ~$ c% a8 w5 bTimer.defaultHalf = Timer.Half_LOWER;( P- O- ^: G* c) G
Clock.timerId = 1;
1 l w: x0 T4 \ G; W
! x6 d; }! Z- X" a+ R0 L: ]1 |9 Q- B* w; e/ C
/*
* N6 D9 D9 `$ S/ I$ M6 r3 W, }5 k * ======== Miscellaneous Configuration ========# x& k8 A# s8 i m
*/4 \6 u; ~/ x2 I* v/ h# Q$ L% T
9 c. E6 k2 L% K( U) n3 u/* set default diags mask */) y1 @3 T& M4 G6 e/ [
var Diags = xdc.useModule('xdc.runtime.Diags');2 s: Z) W0 X! Q/ P3 T1 k
var Defaults = xdc.useModule('xdc.runtime.Defaults');2 T I- K7 a! d( F) h$ F
& r2 x, [% ]% K# G3 C' EDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;9 C" ?) _$ y& l. `& Z
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;, C u: y! S0 Q- g
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
# e& r4 o$ l7 _) }Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
. W5 K H) E4 uDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */" q( i+ M* C2 ?- ^7 H* Q3 d
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;9 f# W/ T \4 ^2 p; ~3 o
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
+ Z8 @1 F) {# r/ l0 I! YDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
8 K" |0 e* D' @7 T- x8 V0 HDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;6 {' f7 @6 E7 \/ E3 A% Z
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
, @ E2 i" @7 W" B& n& ZDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
: }: ~8 M" |' k' P" S, ?0 qDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
2 Z* e& r% \3 U" EDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
$ X7 t; \7 i% b) I. m; I. HDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;- |2 \! o, O9 k7 \
* c1 T2 u; l8 L$ k5 G, q
/* override diags mask for selected modules */- L& A+ h# A! J& e. m
xdc.useModule('xdc.runtime.Main');( s& a S8 q5 n! h+ A
Diags.setMaskMeta(
/ }2 A- E# V# z8 { "xdc.runtime.Main",& h! a. }. ^. C& D( O+ a; E
Diags.ENTRY | Diags.EXIT | Diags.INFO,
$ Z7 Q5 _5 ]0 P; z0 A Diags.RUNTIME_ON
, M% g5 U+ z7 q9 N5 _! _/ d);
: w5 ~- _4 s4 P _$ r
& H: w4 I4 D- H3 u, Z$ ]var Registry = xdc.useModule('xdc.runtime.Registry');
8 U6 ?5 {, i# V8 u. c7 h9 MRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
$ g7 K9 s- r2 d4 z2 ?: GRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;+ m7 `9 k0 j) R1 s% v
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
3 h0 x b2 w; u2 }& O" ^. j/ jRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF; w1 V- _3 S5 Q$ F9 {$ d% t
, b9 {! s4 p# e5 p1 h
/* create a logger instance */
+ z% i' S* d$ v. P k7 Rvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');' I) S" k) O: O4 J
var loggerBufP = new LoggerBuf.Params();
8 L) y+ G. _/ A0 g( ZloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
' C/ {* s. z6 i9 s- ?" @loggerBufP.bufType = LoggerBuf.BufType_FIXED;
$ `7 U f7 I4 C4 Z+ B' R
9 D. o( b' ?3 x( S: }1 qvar appLogger = LoggerBuf.create(loggerBufP);9 h+ e% J: f( L7 f2 y! x
appLogger.instance.name = "AppLog_Core1";
# Y# |3 Q ~( x& S2 d" Q0 CDefaults.common$.logger = appLogger;7 D: v, a* w; T+ A. v
Memory.defaultHeapSize = 0x8192; 0 s; R$ Z# Y) H- ?0 @
Idle.idleFxns[0] = "&LEDStatus";
@8 r n' O, D; n* jCache.initSize.l2Size = Cache.L2Size_32K;2 T! A0 A( Q% K
% A% v; v" ~" C0 i" S( {
|
|