|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明& \; Z! Y, p7 s8 y. ?: ]' z) D. N B! X
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, j6 H" Q0 O4 R( q
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
/ }7 J" ~) U7 v" l* t! p7 y
9 ]) U* M3 X) n( E. c; Z是不是需要在DSP.CFG中进行配置
Z+ R8 H2 l7 g8 K9 t我现在的配置为# s' z- h* v7 i* T' T {4 l
+ ]4 S- n% R' F/*
! W4 x+ D. O" `5 P, D! K u) c7 T * ======== Operating System Configuration ========
$ h+ c) y0 i+ O- w; O) D' h$ U) ~ */
- Q+ P& d$ |$ i3 B D+ o
8 ]3 d# H/ V n! o+ M+ E/* no rts heap */* M, Y$ C0 B. O! ~) i
Program.heap = 0;
! @3 _* `. X& {; v4 }6 ~) uProgram.argSize = 100; /* minimum size */ d. g- _: o! L: W
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大) G1 v4 s0 V3 w8 f) M! D1 Z
* K9 U+ L) q. Z5 U2 s/* create a default heap */
6 R5 G1 u" J( [0 g" t. Wvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
* d) S S1 l4 |var heapMemParams = new HeapMem.Params();
9 r& c9 H8 O: o0 y7 uheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
4 x5 n6 t! f( H: y& t9 l/ P( \# j8 ^2 B$ x( u9 k( x, \6 A! C
var Memory = xdc.useModule('xdc.runtime.Memory');
. z5 j- w1 X+ y. ?# k: s4 o- z8 q' zMemory.defaultHeapInstance = HeapMem.create(heapMemParams);5 s! Z% h3 H8 v$ f/ a# c' d1 b
% i0 Q. |: [+ i* Z1 x( X E
/* configure System module */
) y; Z3 [4 `: x- ovar SysMin = xdc.useModule('xdc.runtime.SysMin');7 R1 ^) s! _% q. p% W
SysMin.bufSize = 0x1000;
2 u' T y/ T8 j' M+ F6 LSysMin.flushAtExit = false;, U; a) r4 g5 i% N! G/ z `
% \7 ^5 _7 {# ~1 k( s8 O1 w
var System = xdc.useModule('xdc.runtime.System');6 l f& ~" Z+ }7 {2 }+ _
System.SupportProxy = SysMin;
4 Y% [% n( S! n" b( W
9 W, }8 x, |# U+ G R1 n$ z/* configure SysBios to use the lower half of Timer 1 */+ c# i" S1 K2 h7 W
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer'); b) h# B7 ]& n( ^* k
var Clock = xdc.useModule('ti.sysbios.knl.Clock');8 e4 v' g3 R6 Z: A
Timer.timerSettings[1].master = true;- `& O# ]4 G/ Q) _
Timer.defaultHalf = Timer.Half_LOWER;
" P8 Z+ @; j% s7 j- |4 P- VClock.timerId = 1;
) b( T0 o2 _0 t$ ~! e4 E/ |5 j5 T+ }
0 m# c% t b- E( l9 `' t
/*
4 w0 B" h1 E& k/ B6 C. h, t * ======== Miscellaneous Configuration ========
+ M! M6 |3 @ V$ E */" f6 F+ U: m' A) f2 U
. x* \- V/ M( r
/* set default diags mask */( r5 @$ L9 f. W. N, h& U( X
var Diags = xdc.useModule('xdc.runtime.Diags');
) J! I+ v* }2 E0 J) a1 wvar Defaults = xdc.useModule('xdc.runtime.Defaults');
" R$ n% L L5 Z
- p% I H @8 e% {8 oDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
8 M( G$ Y* x G2 f+ V/ g: t: n; i3 DDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
; f& C( ~. l2 l$ QDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;! W3 x. Y4 `( \; F/ U
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
" m$ G& K7 k3 E9 e/ b2 cDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
( `+ X" m" k6 sDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
3 n2 l6 K; y. W7 @, X2 WDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
3 c4 _4 ^) k$ z5 |: P4 F4 i5 g) Q* eDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
- j- h9 ~+ i9 t: E8 xDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;- Y% {4 X% E/ y1 ?, X. u
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;& x1 f# l8 A, \2 t( u3 r5 s
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;9 k6 N9 o# ~0 c/ m# a
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
' s& [8 X: F1 m: N6 mDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;" B" f: O( O1 B, S8 B- d
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
5 I- }5 Q3 i8 b: a# Y& a! k, h" {1 |3 q/ G y
/* override diags mask for selected modules */* k& y2 g. b4 X5 ^& u! u. t
xdc.useModule('xdc.runtime.Main');3 k2 ^: M `* g3 t" @
Diags.setMaskMeta(
) S! c' {: @% W# l" L4 u "xdc.runtime.Main",! @* [0 n7 w) w: I* j
Diags.ENTRY | Diags.EXIT | Diags.INFO,
" Q" L- Y: [4 C3 c Diags.RUNTIME_ON
5 G5 |+ \1 o" l+ n& ?);$ w8 `( h; c& _( M5 _
/ T, F9 w7 {; qvar Registry = xdc.useModule('xdc.runtime.Registry'); z. W1 _6 q3 K7 J4 n$ w
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;6 f# L2 l9 \& \
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
1 z! M* Q$ Y4 hRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
, u" \, E, ~9 f( vRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
% O. D: P; |+ c- k" |" v- B: A: d! ]3 P, g0 O- d
/* create a logger instance *// [" p8 M* E$ s8 M
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');7 m1 B. a% i. k O. L* |
var loggerBufP = new LoggerBuf.Params();) @: w3 c c7 w+ Y3 ] W
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
. V+ O3 o# P8 b5 dloggerBufP.bufType = LoggerBuf.BufType_FIXED;
1 W3 _* g8 n( U' n
2 Q( e3 [# \; fvar appLogger = LoggerBuf.create(loggerBufP);. w5 F" ^7 l- S$ b1 B% N& @
appLogger.instance.name = "AppLog_Core1";3 a* U1 [' M2 o. a9 m$ m1 d5 V5 U
Defaults.common$.logger = appLogger;
7 i( U! G4 c0 T: ^* _2 l" kMemory.defaultHeapSize = 0x8192;
# N; X* p$ G9 ZIdle.idleFxns[0] = "&LEDStatus";" O0 { W2 e$ _6 Y: V+ j
Cache.initSize.l2Size = Cache.L2Size_32K;
' j% ]1 [" w/ ~9 \6 H) r2 s1 N0 j5 l6 V! y* Z3 z' _2 f
|
|