|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明) }& R( ?9 v- V2 x" t
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下+ _: N6 k2 G0 J- z _
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
) q) g$ V3 l! F. [- L0 e$ t+ O; q+ h$ s) g( J$ s; T
是不是需要在DSP.CFG中进行配置; ?6 O0 Y- W; d! ? ?# S2 ?9 y
我现在的配置为+ ]; q0 E8 [& D4 A
0 O6 V- s' w" Q( w
/*6 [1 @$ I+ V# w# {
* ======== Operating System Configuration ========
6 }6 s) L5 X5 K) C */
( j) g9 Z; ]2 m7 Z6 q' j# Z4 o1 W5 C! @
/* no rts heap */$ G, @. w+ V1 z
Program.heap = 0;
4 @' J2 O" i) M z+ m( f! p" VProgram.argSize = 100; /* minimum size */
8 z+ ^- V2 T3 v9 r1 s3 t' iProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大, c0 t( N5 n" I& P$ R
: G( Z e4 Y4 m/* create a default heap */$ N/ {' t+ G4 R8 Q- w& C3 [, b
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
0 x: D C/ r' d3 b+ Y1 }var heapMemParams = new HeapMem.Params();# x: I9 i; t; H8 V+ V6 l
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
0 J! D, b( ~% R) v' t9 q; |( A3 x8 f8 ^$ D
var Memory = xdc.useModule('xdc.runtime.Memory');
. ~1 B+ h; P/ G! |8 AMemory.defaultHeapInstance = HeapMem.create(heapMemParams);! s) p0 R. h3 Y' |4 Y; m
2 H6 a8 D6 ?4 g7 I) G, d/* configure System module */4 l( H* E7 r6 I6 f
var SysMin = xdc.useModule('xdc.runtime.SysMin');
2 ~# M8 B+ C! |+ n+ e2 rSysMin.bufSize = 0x1000;
9 o& L/ \/ K/ d9 I. S. n9 `SysMin.flushAtExit = false;' ^7 \8 U" G8 h7 a r
& o$ X' n" `% ? K( q' d' Wvar System = xdc.useModule('xdc.runtime.System');
2 I, Q3 F1 t2 ]6 k* c) z* `System.SupportProxy = SysMin;
, b0 P9 G9 z5 ~/ m* t& y
% S( D9 f$ f0 ^, |) a/* configure SysBios to use the lower half of Timer 1 */
2 K/ \1 W8 r3 L* Z5 h; h# mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
9 W( D# N1 x+ H3 D% uvar Clock = xdc.useModule('ti.sysbios.knl.Clock');+ O6 s5 A+ d$ @* |0 D
Timer.timerSettings[1].master = true;
) j: S& I0 u# v; r) P9 A/ wTimer.defaultHalf = Timer.Half_LOWER;
2 j9 I+ B+ D* e# l' H8 } VClock.timerId = 1;2 u8 M: O/ n1 G, W" n* V1 d4 F
2 x# ~0 h0 @' M" d! p8 ~: _6 x, b9 t+ m
/*4 w, N( g, z0 C) J; ^) k
* ======== Miscellaneous Configuration ========% T# t/ H4 F! e3 N1 B- u
*/
; P3 z8 U' H j/ W& Z( _( I- J4 @$ U6 v
/* set default diags mask */
5 ^3 D0 p% z5 s6 u I- Ovar Diags = xdc.useModule('xdc.runtime.Diags');
* u2 _0 n1 d4 J9 C ovar Defaults = xdc.useModule('xdc.runtime.Defaults');
3 b/ k& F0 k0 F( Q2 c
$ F! G* p7 q% y( rDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
: h7 C8 a7 A. G' c! X2 B' C9 TDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
+ M$ N& `4 _7 a& c0 O; b' QDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
. C- A' h( B5 u6 N; y7 ODefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */' X3 Y( r2 E: E, N- P# O
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */$ V p! P5 _7 u+ Q! k$ ~9 i2 b6 T
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;4 e S( y( S/ z, h6 q+ K
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;2 F+ Z( m1 G/ u3 J. @
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
- n8 `9 c& R% DDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
+ r4 y, v0 X5 x% G/ g1 E' |Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
. F, _: D2 Y+ {# k$ B6 t- HDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; M4 O0 P0 E/ |. xDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 Q, [; L) U; fDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
0 w7 c1 @8 o9 H nDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;+ a7 J h# L3 s$ U) f/ b& [' p
' v- B( m; B7 |6 S2 W* P
/* override diags mask for selected modules */, o2 Q' m4 x+ a- z! ^8 q
xdc.useModule('xdc.runtime.Main');- r" X$ h& h: l8 u1 U
Diags.setMaskMeta(: n$ Z) e8 V L( ?* S
"xdc.runtime.Main",
/ }# M" T# S' P) o$ @- g Diags.ENTRY | Diags.EXIT | Diags.INFO,
; n+ i1 u* w) {4 t4 Q4 G Diags.RUNTIME_ON0 `" g Y# ~; ?& [# t6 M( g" p
);8 s6 \' f+ s ~6 m$ o( @5 r' C
$ s% M5 n1 d; x
var Registry = xdc.useModule('xdc.runtime.Registry');
5 b" {7 P4 l0 k' ]& oRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
! K+ p* b/ D. b& J3 e; wRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
/ D$ e7 Y8 G. n9 d$ bRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
2 |# H l. @+ [: J; d: |2 ]Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
; C1 n, H' E* g, a" E" Y
2 G* a& {0 d( k9 w3 W; S8 K" w/* create a logger instance */ Q( G" t; [' j7 Q
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); |- c' z" X" V! q/ j( k, w3 a
var loggerBufP = new LoggerBuf.Params();
9 z Q- I( {" J! HloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
" _0 i" C: {( D1 R5 CloggerBufP.bufType = LoggerBuf.BufType_FIXED;
' ~8 w" h# C$ K
: H% l8 y; ~2 Q3 \% avar appLogger = LoggerBuf.create(loggerBufP);
! v, M- g+ g# m, U. |appLogger.instance.name = "AppLog_Core1";
" w. \2 b' Z7 _Defaults.common$.logger = appLogger;
; g; E1 J. y o' F7 IMemory.defaultHeapSize = 0x8192; & Z2 `9 F6 `6 |8 M! b6 G/ C
Idle.idleFxns[0] = "&LEDStatus";+ i& ~, c' X7 ]- m% g0 ]1 m9 I, ~
Cache.initSize.l2Size = Cache.L2Size_32K;# L' f4 Y+ ? t6 ^( a
% g& A$ ^1 P- o2 e |
|