|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
! L0 m/ k1 |) ~0 `6 ?7 `0 M3 [7 F我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下7 q3 A C, }( y5 [1 J: w- P# g
(不过疑惑的是,为何单独DSP仿真就没有问题呢?) T9 b; L( H |% | p
3 A, p7 i( L. ?: N0 l0 e是不是需要在DSP.CFG中进行配置7 O& u) f6 l3 [
我现在的配置为
" J! a5 p; ~; Q, H& G* l- X+ R& I5 h* |5 T8 j4 J% z+ g
/*/ ?2 A( G; ]- j& ^9 j& H- G) i
* ======== Operating System Configuration ========
* c4 m& E, O0 u7 ]6 d */: J* ~0 v$ B& Z
: @. Y: W# c( a( Y- F
/* no rts heap */- s9 u5 D# u- @3 C8 W4 ^& }& u2 R& W7 l
Program.heap = 0;1 Z7 ~! K8 m( C( \- x1 i* g
Program.argSize = 100; /* minimum size */
/ }% P I9 i9 H3 c$ t7 E6 t: ]Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
* d5 F8 V, p v% t# ]2 |% X" i$ j8 T5 C% w- j) k
/* create a default heap */
; V+ Q9 ?: U# i& L, Q( d% ]; |var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
, W, b$ w9 f9 Y; Lvar heapMemParams = new HeapMem.Params();2 t' r7 l9 ?/ E' d. V0 \) p& U
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大1 H v+ ~; t, ]& \/ A& G
. `( p- q5 O5 \6 Nvar Memory = xdc.useModule('xdc.runtime.Memory');" h ~( Y9 b7 F5 w, o5 p' n2 L' w
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);8 Y: P! g/ }. P; L
7 ?9 a" V& ~9 b1 P7 j4 U
/* configure System module */
5 C! v4 c3 `/ N. pvar SysMin = xdc.useModule('xdc.runtime.SysMin');& G2 E6 t+ Z- H/ A) |
SysMin.bufSize = 0x1000;
X& e% I2 W1 I% q& H3 k/ M- A& ? LSysMin.flushAtExit = false;* \0 l; N- |) M) I$ x8 |6 l
+ t/ @ l! T+ a- c# ^, rvar System = xdc.useModule('xdc.runtime.System');
/ ?& C! C }5 k7 B! x* [System.SupportProxy = SysMin;
" p2 |7 A0 N" y) F6 p6 b/ n. o/ S; ? s6 P2 U( F
/* configure SysBios to use the lower half of Timer 1 */5 P) f1 Q! x8 ^+ ^/ j, f
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');8 R1 A+ w( R, x
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
" d0 _9 d L; r+ R1 Q; X& dTimer.timerSettings[1].master = true;
: Q2 q- m# m1 a& {' UTimer.defaultHalf = Timer.Half_LOWER;
; v" D, r1 }# a% P0 y% F) jClock.timerId = 1;
0 _, Y& l# a4 l- d2 M
" |% u/ e3 m2 t5 M p, M, J
" Q9 I+ R: {/ G; R6 T0 L8 i# P+ } V/*
# H5 E+ d6 b7 n5 o& O3 A * ======== Miscellaneous Configuration ========( l7 d5 T$ f% M; Y: {
*/+ {1 @3 G' h# A8 k$ s, Q8 A1 a
( ^0 @% O7 i' `+ Q1 c( M% R/* set default diags mask */
: ~* q R1 m- }% u( q- r+ d; ^! s& L6 Svar Diags = xdc.useModule('xdc.runtime.Diags');
u! Z M; \5 B' \5 Ovar Defaults = xdc.useModule('xdc.runtime.Defaults');
& V: _3 n0 V* Q1 c, A4 l) z* B- u$ I1 y5 ^: T1 x( H% G1 H: t
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;2 |. B% Z! f0 n9 c
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;) T! y1 s& N) |; V/ S/ S
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
1 O7 b% h8 u+ f8 x7 IDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
/ z" ~+ c2 U; v8 ]4 cDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */# @: l# O/ _. h) S3 ~
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
" t, I0 E U" f6 L/ S+ ODefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;8 J. O, z) x A- O# |3 N, B3 b
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;: I: @& Z) | i0 l2 l o# d; m7 K# }
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
, c; F9 Z% G- r& @# lDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;6 j+ s9 m q6 d
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;+ h# |# N3 X/ ~
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;8 w# r" e# ?7 U5 O3 x! v% ]% t' D7 I
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;) u2 v+ g! h% T
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;6 O* c0 y* }5 e1 }8 c
, j; c" J$ U% f. s" O0 l& L* E/* override diags mask for selected modules */3 w2 s$ j1 l9 i) u9 n
xdc.useModule('xdc.runtime.Main');8 ~; r+ I( I! M$ g+ r- j
Diags.setMaskMeta(5 K6 E; @3 B3 z1 e3 J; h# Q f
"xdc.runtime.Main",6 k$ v8 L. {8 S5 H# H- g
Diags.ENTRY | Diags.EXIT | Diags.INFO,
* m' H7 m- L( i: N7 t& P Diags.RUNTIME_ON; f/ F! u- d+ @ R2 v. l
);- [3 ? L4 Y- n0 A! ~0 v6 K
8 A. U5 t0 ~! ?% ^, ` p9 a
var Registry = xdc.useModule('xdc.runtime.Registry');+ B8 o C# j( }6 K
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
! e5 U8 F' M7 wRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;. e$ B8 R8 `; V# T, h
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
; L- d8 Y' `3 M/ }2 ~+ FRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
5 H5 L g, T7 Z2 J
" X# f5 c6 t" R* v( g/* create a logger instance */
4 t1 d8 b, o7 d' i( S9 u4 V2 _var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');4 k6 @, F3 V. G6 O
var loggerBufP = new LoggerBuf.Params();
% _4 n7 k* D" s5 L% G0 aloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */' j* [* \- h" c! }2 t
loggerBufP.bufType = LoggerBuf.BufType_FIXED;4 a1 v, Q: J! O6 z! S( V9 W
& u; x: Z3 ~4 U4 w& V4 S+ s5 K( mvar appLogger = LoggerBuf.create(loggerBufP);
3 l7 s6 o$ @! G7 a3 p9 ~- Q, G1 EappLogger.instance.name = "AppLog_Core1";
& h! e9 ~/ L N* K4 k. lDefaults.common$.logger = appLogger;* U* A9 M: K& Z1 W
Memory.defaultHeapSize = 0x8192;
/ [ a9 \- I* m* H5 fIdle.idleFxns[0] = "&LEDStatus";4 q6 i8 D4 p" L1 L3 o3 N' _; j
Cache.initSize.l2Size = Cache.L2Size_32K;
! y+ D! z; S, @/ p8 T0 u7 B6 s' d$ A) M+ h. c
|
|