|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
& {+ Q; b z. z& X h( Y我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
0 p0 T- F% U5 C" V) G/ T(不过疑惑的是,为何单独DSP仿真就没有问题呢?)% ]3 s: L# o) u' g+ A; I
1 Z& p0 e8 h3 h; j2 |9 q
是不是需要在DSP.CFG中进行配置, B6 O* @9 ]; R' N7 r+ I
我现在的配置为
3 E0 S5 E4 _3 r" }" ]
, K4 ^# g- q; j* w7 Y/*
7 {4 ~# j+ v. `7 {" F- S' @1 B * ======== Operating System Configuration ========
! A8 G3 @1 {5 z; P. s *// P) V, \) r- k3 r
, c3 b f% @2 Q# E& P! p
/* no rts heap */
) q; ]4 E4 Z4 k7 n9 s2 cProgram.heap = 0;7 |/ I7 R( X. [6 a
Program.argSize = 100; /* minimum size */$ V% Q' t4 T+ w, v! N/ u
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
0 t+ m$ ? i+ i- C3 F6 r0 s; U( O/ K5 e( Q" h& b
/* create a default heap */! h8 N5 V4 Q5 v, K; A; \6 C
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
; s2 a; x! D! F3 i" T5 w* t8 [var heapMemParams = new HeapMem.Params();
! j7 |! N: N9 l. A; @ r/ KheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
; W9 t$ {! `; A+ |' @* G4 @8 e- }3 q |* O
var Memory = xdc.useModule('xdc.runtime.Memory');
$ m. S2 R7 W0 ?: y7 S& K. W8 FMemory.defaultHeapInstance = HeapMem.create(heapMemParams);& r; b. {6 [. ^# a& @
0 a9 Q& U A4 K. E4 q1 l/* configure System module */+ r- k' t& F/ M
var SysMin = xdc.useModule('xdc.runtime.SysMin');
, M( O2 s N" xSysMin.bufSize = 0x1000;
) [' F8 [, g0 y* _SysMin.flushAtExit = false;
& E) U* w9 U* i: {* s( m& k# k4 b9 i2 `+ b0 V8 _" ~1 ~
var System = xdc.useModule('xdc.runtime.System');
* ]( Q' V, @; N9 }# l7 NSystem.SupportProxy = SysMin;& D' Y# m6 [; l: P1 E/ q
( x- |% q" S1 U
/* configure SysBios to use the lower half of Timer 1 */
. [3 a. t% b+ F/ m9 nvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');4 y3 k9 `" g% h+ q* H2 H' d
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
( j7 _# g+ T3 z8 Q5 L( @) e( {Timer.timerSettings[1].master = true;- J. F! D7 c+ q3 ^ y4 V
Timer.defaultHalf = Timer.Half_LOWER;
) \" F% E U- {2 }3 GClock.timerId = 1;
, `$ o* M% `" v- h! ]9 z$ O8 x8 w
5 B6 D4 Y/ z% j; K% ~
' b) t2 |8 k f; `, }- Y/*
1 g1 L7 F& T$ E. r * ======== Miscellaneous Configuration ========0 m. _: H' x) O( h. k" {% y
*/
[0 M. N1 \8 {9 e
" R2 \& K& O$ V/* set default diags mask */
: n' [% i! z; W6 e% U2 q# c$ bvar Diags = xdc.useModule('xdc.runtime.Diags');
, B3 K: V: |6 M7 i4 Tvar Defaults = xdc.useModule('xdc.runtime.Defaults');- s) U( J6 l6 A
' V! G8 s. v W+ f' K" l3 h
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;) |5 B; J7 t- J) m, n' M8 Y( @) b! g
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;" \7 B V! w: O5 }, k5 [
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
`+ \& d( m9 N% h$ J- l Q' |; NDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
! x2 `& P. p% t4 r. ^% ZDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */8 F$ s: [/ \. J# l8 u* P
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;" e8 q0 A2 | N; ^3 Z
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
# @+ ^& Z/ W$ K" PDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;5 b& E1 e+ }3 P4 {9 k9 g/ O( T
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
1 k+ C, \. y2 e3 \$ a, m# [Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;* A1 E6 w% m: s, {7 u$ B$ {
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;$ v Z& C% ]6 D; @. s: Z6 f
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
1 f" o: e( e/ t" x! q/ j* ADefaults.common$.diags_INFO = Diags.ALWAYS_OFF; U& ~9 ^- Z( V; t' @9 u
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
$ j; s% m7 n8 b q1 |6 \
- O# h% w6 Z; B8 {7 h5 e0 Z& r/* override diags mask for selected modules */' f9 i U4 x+ ]5 v9 h0 V( r
xdc.useModule('xdc.runtime.Main');6 g. q$ A0 W! |' Y/ x" R
Diags.setMaskMeta(" G8 q- U5 g8 |9 h4 r
"xdc.runtime.Main",$ l) {7 Y9 L; Z0 X) @4 m
Diags.ENTRY | Diags.EXIT | Diags.INFO,6 `8 Z' y; U3 f; O; p6 S8 A$ h
Diags.RUNTIME_ON
& V2 M7 c, w: X0 n$ s);" R+ x4 K9 y/ O3 H- i
* u5 |: O3 j, p8 U
var Registry = xdc.useModule('xdc.runtime.Registry');
: k) j# {5 |4 X4 M1 ERegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;; {9 M g; n% a, w, X- o1 e% w( x
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;7 H/ M' t) k g- H9 }0 |3 ]; x
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;1 _! p. R, t- y* D
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;) ~: g, i' D; P5 B p9 g
" ^3 S6 z! X) J- f- k4 N" L* I4 P/* create a logger instance */: h% O4 ^/ l6 P( R
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
( i* _! a4 B5 R# M# n3 u% R' Wvar loggerBufP = new LoggerBuf.Params();
- u4 a, ?* x# ?! ^ d! uloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */. E) q( z1 }. P& H; Q: Z
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
7 W; e2 o4 y1 o0 Z. B" w8 a( w% i6 v
var appLogger = LoggerBuf.create(loggerBufP);0 d% C. q) {1 a) i4 [, w1 }. V( X
appLogger.instance.name = "AppLog_Core1";
: C6 @0 p, d% c1 YDefaults.common$.logger = appLogger;
0 j4 \7 \" {& }7 o' J: ?5 VMemory.defaultHeapSize = 0x8192;
q0 G; a" s: ?Idle.idleFxns[0] = "&LEDStatus";) {+ S5 o3 R' c/ w, u8 ~% E' N
Cache.initSize.l2Size = Cache.L2Size_32K;: t. @ ?8 T/ D) ^& G* S3 W! ]4 T3 ?
4 X% B" x& }7 r
|
|