|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明4 [9 @. P3 C V k3 g2 W7 J
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下( s- H- L! Y" f5 y
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
4 [0 o7 v/ l: j; q1 U. \
7 V% s1 z# e+ ?4 |- n是不是需要在DSP.CFG中进行配置0 a/ [" d; O+ n" o- @- U4 `# M+ I
我现在的配置为
% {2 R9 q: q2 K0 Z8 I# O: o5 e; P- u6 f" N5 M; r$ X+ M" O
/*
/ j2 M7 {: @: G+ R- a * ======== Operating System Configuration ========
9 z/ X( d0 c, r* y4 G1 z/ Y */% g6 `0 Q: i$ o5 D8 u
$ [& q9 z/ E% `, l5 J5 V% K% B
/* no rts heap */
4 C1 r0 r: I% DProgram.heap = 0;8 }! f4 v5 I/ Y2 F2 G% M! E) S! s
Program.argSize = 100; /* minimum size */
& R4 K- b: b/ ^Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 c5 n: H' X: t; f U' \
' t2 h2 [& p3 Q! ?/ ~' n
/* create a default heap */8 ?5 F2 g. [ @ k
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
. m+ O) C9 q4 @7 `; uvar heapMemParams = new HeapMem.Params();
$ f% c! E2 B% R: m. theapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大8 s0 t T2 v& J3 p8 k `
z3 `. V0 k* |& h& H! {# }" c
var Memory = xdc.useModule('xdc.runtime.Memory');1 I* y* I8 o8 |3 g! b. M* h
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
) d- _+ Z1 S; b2 y3 B3 c J+ y/ T {9 d! a+ m. m
/* configure System module */
8 v2 b0 [$ s5 I2 p) {5 ~0 z( r7 t. Fvar SysMin = xdc.useModule('xdc.runtime.SysMin');; P7 T8 r- O) O& j
SysMin.bufSize = 0x1000;% j% O1 Y+ v5 ~0 R# v$ c
SysMin.flushAtExit = false;
2 a, A) _, a2 _0 H
! I2 r4 o5 @7 m V, f# bvar System = xdc.useModule('xdc.runtime.System');' Y" f1 N: w+ O. f% `, ^7 F" i
System.SupportProxy = SysMin;
, C: S7 ~4 h% q; a0 M- f$ t
+ I4 ^- i# K8 m8 k* v/* configure SysBios to use the lower half of Timer 1 */0 T3 b2 [* c$ T3 {
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
6 m1 {- F4 Z6 h: C/ Xvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 ^3 l# Y; K+ r8 XTimer.timerSettings[1].master = true;
; S7 f) l. j) O V% `Timer.defaultHalf = Timer.Half_LOWER;
. _+ b8 D6 _0 P2 g/ g3 j, ?Clock.timerId = 1;, x: v1 H b9 v, i4 M) w
& ^, R1 W( y/ k8 `% w
/ G: k9 A0 z/ t8 l A/*
4 d |. h4 Y! j5 w+ r5 U0 W+ B * ======== Miscellaneous Configuration ========
9 c. E/ ?, C( w! a- X */4 w5 V1 c) v1 K; L; I! \. ~
3 S- }3 z9 [2 B- Y
/* set default diags mask */
- {$ R& D- L# g7 z+ ?$ ]6 r( avar Diags = xdc.useModule('xdc.runtime.Diags');
y0 L* Z1 s2 P9 avar Defaults = xdc.useModule('xdc.runtime.Defaults');) l. a: U. R; D
5 u8 Y( ]5 ~5 i# X- V! c9 t+ }
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
: y: o# ~: s+ x) H2 ZDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
/ B5 T6 C9 C4 A6 a) i- zDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
+ j2 [( X; e: l; F) ?Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
2 r* N$ ~ P) h0 H1 ADefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */1 P6 w9 _9 X V0 f4 L
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
$ k! C A) C+ h, c5 PDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
}! x$ @3 c/ t, yDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;7 e; E4 G% P! ^* K" B$ @7 [; s
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;' C& P% k3 D2 R& P* f
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
* W4 N) A5 y4 }1 d% a. j% vDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;# R0 g e. A2 b# G9 r% y9 q5 b9 ]
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
0 `* E: Q- q1 _( h) UDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
' d- ~& z4 M1 m+ X& ]' [) H$ y7 EDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
5 T! }, Z# u, W U# _$ ]2 |% O7 H
0 {0 ^$ c" ^% v% d/* override diags mask for selected modules */0 _/ R' |- k, \+ ~; ?
xdc.useModule('xdc.runtime.Main');
4 V* ~" `$ f# bDiags.setMaskMeta(1 d: [1 E' G. r9 W+ J0 {( U6 O, h$ v
"xdc.runtime.Main",9 x1 u4 H# l2 |9 [ A6 e. o, I, _
Diags.ENTRY | Diags.EXIT | Diags.INFO,
) I8 \9 F% [. A' y3 A+ t Diags.RUNTIME_ON4 |3 k5 f6 ?- q3 `
);2 T; W: ?: V" b' t# n9 u) e- V+ ]
; q. H( Z- D$ u
var Registry = xdc.useModule('xdc.runtime.Registry');
+ W3 K, \) Q1 o1 R6 R! h F, mRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
( s' X6 `# c: L: nRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;0 J7 c6 }# V0 E- y+ c
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;3 \( V7 X6 t% [/ S: m
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
: }# n! j# O* W- I* Y* L( `
8 G1 Z ?+ r$ i% R% T. K/* create a logger instance */
0 d2 I j W U2 v4 W/ w& |var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');, s+ V- s8 p, e7 x) G
var loggerBufP = new LoggerBuf.Params();# X A9 }2 O0 o/ W/ v# W9 P& k
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
) J( ~5 A4 L9 o- mloggerBufP.bufType = LoggerBuf.BufType_FIXED;* s+ x" b# `, H9 _- Y; x% I
$ \$ a3 t% d x7 V: u+ D9 x5 A9 e$ t+ U. o
var appLogger = LoggerBuf.create(loggerBufP);
0 |- z( W) T: K5 y: v" lappLogger.instance.name = "AppLog_Core1";
/ s1 o' W N) Y; h( I5 ?Defaults.common$.logger = appLogger;
9 n8 \( Y( b T. }: \Memory.defaultHeapSize = 0x8192; + h+ ~) M; D9 X7 K
Idle.idleFxns[0] = "&LEDStatus";9 c, n7 A! Z; |
Cache.initSize.l2Size = Cache.L2Size_32K;* T& o. @2 D: V- k2 p4 o6 C
. E; }) H; B& p- ]" n0 C |
|