|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
8 v6 ~3 S5 p4 r# p- \我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下% n2 Q! x* O( T) P5 \6 A/ C
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
4 h, Y. t1 O v" U+ \; K+ M) }9 D) G7 [) k( @5 [
是不是需要在DSP.CFG中进行配置
. _7 c8 T+ r0 w% f4 p' |: u( [ e* o我现在的配置为4 R K$ \8 O2 m$ f- s2 |/ Y
7 j8 n% ]' U4 c% t3 Y/ x/*
+ W- c3 `0 c* k9 R * ======== Operating System Configuration ========
6 L. d, @6 H8 s! C) [8 K0 @# v4 G+ \ */
: _! \% c" Y0 K! z7 X' b! ?
/ r+ Z$ r2 p9 Q% Z+ V$ a: z7 s/* no rts heap */; g/ z) W4 g$ G' g% a5 {
Program.heap = 0;
- E0 O/ Y0 _9 V) J' bProgram.argSize = 100; /* minimum size */
4 |# e& D" W- z" F* K! \3 l& \Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
# L) D, g O y) a9 Y0 C7 Z
: j$ t0 u- n: Y! e e' x/* create a default heap */
+ s3 i$ b7 U9 ?& r8 z/ P- h3 [var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
7 H2 @( B' ~) v' {var heapMemParams = new HeapMem.Params();# W8 [2 k8 j# W' e# ?
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
# _3 o! }" }) c% ~0 T& ?1 k2 a; o0 Z& Z% J* W
var Memory = xdc.useModule('xdc.runtime.Memory');
+ j; H: c+ t. J9 h7 b0 I1 K2 G4 RMemory.defaultHeapInstance = HeapMem.create(heapMemParams);1 @9 `( t h( i$ \' G$ `/ z
: i( N% k2 v& r1 _6 \4 Y/* configure System module */( P7 a( E& {. Y1 q9 c: t
var SysMin = xdc.useModule('xdc.runtime.SysMin');+ k; l/ b2 t7 R; `" X9 X( t
SysMin.bufSize = 0x1000;% A$ i: [ a: u# w' E
SysMin.flushAtExit = false;
" L% |* J& |( u% O. v
6 s! u0 H& j0 vvar System = xdc.useModule('xdc.runtime.System');
6 X9 `$ ^5 c8 O2 y) ^8 DSystem.SupportProxy = SysMin;4 y# q. j4 i$ P, q
( v0 h0 ]9 @: z/* configure SysBios to use the lower half of Timer 1 */
4 s3 l9 r7 n8 ]4 @5 Ovar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');0 W& h6 K* A2 _. h' z
var Clock = xdc.useModule('ti.sysbios.knl.Clock');; D) ^( d! v8 p3 H* m" p0 [
Timer.timerSettings[1].master = true;
+ B- g) `& O6 [9 v$ P" iTimer.defaultHalf = Timer.Half_LOWER;- v e2 j( I& L5 q6 n6 L: H- C
Clock.timerId = 1;
3 ~7 ~, b1 e7 l' b
r' m" ^8 Z0 l8 P+ L/ Z$ A5 t+ ]* @5 S* K( b1 S6 a4 d. u6 _
/*" a+ |$ g+ w# V- e" J' F
* ======== Miscellaneous Configuration ========
; d" Q% T1 W, y% N; K3 o1 l- F- \* d */, t3 c; Z* r& @; r" E
/ g+ r' x: p# Y# `6 W/* set default diags mask */
/ N5 g+ b' M2 h. b) t. {, |0 Y; ]var Diags = xdc.useModule('xdc.runtime.Diags');! K3 e( a3 D* _$ K6 A
var Defaults = xdc.useModule('xdc.runtime.Defaults');, `2 E+ P* m" W! y) p
, l, X! I- b5 C. t1 aDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
. r8 s0 B* P S9 H/ X; U% s" D: RDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
: y D0 V6 L. o0 r+ c2 s/ y1 dDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
; S- o! T3 @! ]- aDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */+ G0 t/ M: C/ u R5 L3 q: f3 n
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */( @2 r- z s( J( g( G+ v0 R
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
' W$ d4 h' g5 \: ]Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;2 M" G2 b; @2 M1 l/ o1 T' x
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;& Q. H; w# p8 J/ `* V/ q( V, \
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
6 B2 L& F. F) ]+ F @ HDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
t0 \! v, h0 F4 |1 O' x' pDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;' M2 ]* U+ j k* i K: M6 |8 v1 y
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;' r' b8 X5 U4 \ e u
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;4 e) {6 N! w/ C8 y
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;; i- W% [( T" d/ C% l
. C6 ?+ [9 L6 H0 ?
/* override diags mask for selected modules */8 i' K- k8 w+ O) X7 S- j- b
xdc.useModule('xdc.runtime.Main');$ ~. f5 f4 d& R6 R$ a
Diags.setMaskMeta(& L4 G! U6 e1 T2 j& u
"xdc.runtime.Main",) J1 Y a9 M, ~1 d T
Diags.ENTRY | Diags.EXIT | Diags.INFO,
3 R x, J; M4 Y/ [1 z Diags.RUNTIME_ON( J! j3 Q1 Z+ ~8 y
);
+ R* k* g/ O1 j' Y+ m$ l
$ B8 L1 s8 ^( c# o3 i( jvar Registry = xdc.useModule('xdc.runtime.Registry');; W( s1 y# l2 Q# m
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;" L4 D% o1 E; X+ C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;. I; l' C- D. r4 n
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
3 z( _; `: N5 IRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
" Z9 P2 l/ m* W/ g& F' }7 u5 F/ N- l# ~1 P4 P9 h- c) o
/* create a logger instance */
! ~4 y5 g# ?! o. r: K! Zvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');4 w! _7 L1 D# r3 S* h
var loggerBufP = new LoggerBuf.Params();
# ~, t/ n1 o( {+ l$ T# rloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
1 P ]7 t- q6 u% u2 B. j$ Y( LloggerBufP.bufType = LoggerBuf.BufType_FIXED;
& }+ p1 V1 w+ D" A2 P- l, c/ ]5 ?# q( K# u
var appLogger = LoggerBuf.create(loggerBufP);
/ _! ~5 y1 v& N% B1 A6 }9 \appLogger.instance.name = "AppLog_Core1";7 n& o: T+ e8 `& I [
Defaults.common$.logger = appLogger;* j% h" `# n" \" D7 x
Memory.defaultHeapSize = 0x8192;
+ O+ x( b9 o7 K) \7 o" Z3 CIdle.idleFxns[0] = "&LEDStatus";
, p6 O8 f, p* K+ c- nCache.initSize.l2Size = Cache.L2Size_32K;
: [0 l3 p3 P& O* N8 o4 V
7 P0 ]8 p2 i. X# E! u& V B |
|