|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
$ k* T4 |1 E6 E( t; M/ y6 A我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
6 b( Y2 i! V- Y* c(不过疑惑的是,为何单独DSP仿真就没有问题呢?)9 [; |& r* V6 B: n9 J$ s& Q
* G. m: z+ ~- H4 j! n0 B, Y0 s: _
是不是需要在DSP.CFG中进行配置$ b8 {2 h( K) s) V& [: `) K
我现在的配置为
0 k" m5 S4 w% o) W6 N+ K9 C5 x @1 _4 h
/*
4 I$ N' {( Q2 x6 D * ======== Operating System Configuration ========
9 J& y0 T8 H1 a6 K/ e8 B */
+ L) k" b' y# K' V
; q# J- j0 y4 h/* no rts heap */$ H/ P& B1 }/ _. U1 z) G
Program.heap = 0; `* @7 ?1 k5 Y7 }7 K9 O& ?
Program.argSize = 100; /* minimum size */5 t L' r: e! E
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 c8 ]" o6 v4 P
& b1 i. G5 l& A9 R/* create a default heap */
4 `% A+ U/ g1 b! |2 F/ kvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
0 U' z, e$ G" bvar heapMemParams = new HeapMem.Params();8 T! ~: ~8 J" r7 `- A9 W& m. m3 `
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
' J# n& s# E2 I+ z
; b3 Q/ R* |& }8 U' J6 F% |var Memory = xdc.useModule('xdc.runtime.Memory');
: X1 R6 H+ A6 T6 O' J* T' \Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
5 D J2 B0 x) n Y0 W' }/ A- q6 l) Q! x7 B O2 v
/* configure System module */
5 g5 j% v9 W$ `var SysMin = xdc.useModule('xdc.runtime.SysMin');
% f2 E! R, c% _SysMin.bufSize = 0x1000;
2 S+ A. K5 e$ j# M# HSysMin.flushAtExit = false;% a7 \* I, C2 ?
/ }0 y. M4 }- V# U5 }var System = xdc.useModule('xdc.runtime.System');
' J3 t5 J) r1 b, F# V+ W) L2 aSystem.SupportProxy = SysMin;$ I# P ?, ^1 M
; }' T9 b/ s6 e! m6 @* x
/* configure SysBios to use the lower half of Timer 1 */
; q& q4 V2 x; w/ T( `5 Z9 O5 }% Jvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
% F3 [% ?. L" w1 g' N' p! }var Clock = xdc.useModule('ti.sysbios.knl.Clock');2 M$ i; x1 b, n" X5 t
Timer.timerSettings[1].master = true;
6 } p. ^3 A$ D8 E% N' bTimer.defaultHalf = Timer.Half_LOWER;$ D8 W& y' o- G9 F
Clock.timerId = 1;3 n7 p4 G7 ~4 t+ l! \" M
) M1 R5 \( P6 ~1 i) ]
5 V: p( L7 m6 c3 u
/*
. j8 X! V3 f7 {: [, m * ======== Miscellaneous Configuration ========
% e% y3 I G4 d, [- y+ H7 d */
- L7 |/ l: B, Z/ B) o9 N
* }8 e8 T# r: _! y% Y# `/* set default diags mask */
3 A; r% {' B+ Q& w0 Z9 Ivar Diags = xdc.useModule('xdc.runtime.Diags');
1 s/ j1 C; }0 D( j J* C& |var Defaults = xdc.useModule('xdc.runtime.Defaults');; P3 U4 H- r" J$ ]4 {8 v% T3 r( Q
; Q- F9 c7 M3 z: b3 s9 c, W
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
. A9 f; d7 M0 t' I) Y) C+ M+ BDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
" i: Y Y8 G- Z0 sDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;' s: B$ x E1 @; J4 `* P1 Y; }
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */8 h$ H+ c- [" r
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
/ _4 F' B8 B3 L7 J, O5 H# _Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;: B2 v9 q+ n: d! R: i/ o) P" f
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! l( k: [8 T+ {5 |& d
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
, g5 Z% O/ ~/ ?" A$ s4 ~6 iDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
: E* h& l8 Q5 \+ YDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
7 j% x4 Z$ B9 c/ T$ [6 xDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
- o9 R! Z4 I) YDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;+ ?% T6 a" x9 O: ^
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;6 a3 P6 t" Q c) [) |
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;( l1 v; R0 l) N7 p. @
. r. m# K3 C: p9 R7 b' i
/* override diags mask for selected modules */2 m& E2 T. l+ H$ ^1 I8 W1 H
xdc.useModule('xdc.runtime.Main');% [# N) Z- |' L
Diags.setMaskMeta(" _3 @, d; D: |9 ] {
"xdc.runtime.Main",
: O r- }$ j$ u Diags.ENTRY | Diags.EXIT | Diags.INFO,
; ], {* Q' p6 S0 H' T! d6 e Diags.RUNTIME_ON
/ ~: U% W' _5 z9 r* c1 g);4 s4 N7 g- X" y( ] \$ X7 [
6 H- {9 a" ]: X) v
var Registry = xdc.useModule('xdc.runtime.Registry');3 ] ^7 c+ l1 s' Z; i/ m
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;! u8 K+ f- {; W4 {1 Z
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
0 e: Y$ B$ d+ v7 j1 fRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;& x1 Y: w J' C% T
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
K' D4 O. w. N0 }) v/ Q! f
# d9 V6 o+ m) \/ C: z* A% t/* create a logger instance */
4 J/ o( B5 w* D0 U: [var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');6 C1 ^( @$ L. B. a6 t) X
var loggerBufP = new LoggerBuf.Params();
. ~+ ]# {7 z/ K8 v& v/ w1 |loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
" b! C5 [, B$ |& QloggerBufP.bufType = LoggerBuf.BufType_FIXED;( V( E e3 H, T+ q5 h4 h) {, G
! U! ]3 `6 x! Z* _) I! qvar appLogger = LoggerBuf.create(loggerBufP);6 g6 T2 o/ U# g0 n( |* _' h, ~
appLogger.instance.name = "AppLog_Core1";/ f `6 T/ N5 i' u
Defaults.common$.logger = appLogger;) _% Y- d0 ~1 D1 T' r$ u
Memory.defaultHeapSize = 0x8192;
, D3 }/ _' G- k v+ _; _6 C# I, J: p, KIdle.idleFxns[0] = "&LEDStatus";8 ^3 a2 S4 ?# l# _* f# J1 S/ v
Cache.initSize.l2Size = Cache.L2Size_32K;4 s% S' ?: Z4 ?
! }& }1 n" o; H8 D; D7 R; t
|
|