|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
) p P, f8 N$ }# N( T/ }7 x我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下& L$ b9 d6 g# V5 p3 k: e6 v
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)( ?3 {) O; I5 l% x0 r. I
3 F# ^: n' a4 T$ K4 [
是不是需要在DSP.CFG中进行配置0 w8 p. L; L- L/ d0 u5 [
我现在的配置为
& [$ O( Z, ]+ }/ H$ l9 `
F4 J% ]8 B/ M/*1 o5 m% i! y8 ?1 y3 f- v) G
* ======== Operating System Configuration ========) j; q1 ]/ @ Z9 G6 _5 {
*/
2 Y' A1 |5 F; q
& {6 R( Z9 \+ b+ W( z/* no rts heap */
9 P5 s0 `# d% d7 `" _9 t1 K2 h5 g% a2 dProgram.heap = 0;
* v" K( m! S( r3 X0 X3 |: }# aProgram.argSize = 100; /* minimum size */, A( i, j! Y5 A" t+ I% N$ W
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大2 q# x, o4 X' G0 K& z# k3 w
: z) C3 Y" q! ~! H! n" ]+ ~/* create a default heap */
: T: A3 v. b# D, tvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
8 T D' \! X! ^7 n- g7 wvar heapMemParams = new HeapMem.Params();
% n: v% `1 x I8 F9 d" h) yheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大6 z0 I8 O% R, F
0 y7 |5 m( `) U( o9 Ivar Memory = xdc.useModule('xdc.runtime.Memory');+ X# ?, A& }0 N% r
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
) [- Q) Q1 ?. N5 A: T8 ^1 @* W3 ]! z% O; |% l7 q3 A
/* configure System module */
}7 d7 \7 K9 d8 G' p- M/ E8 O5 Qvar SysMin = xdc.useModule('xdc.runtime.SysMin');
$ x9 u9 H8 c8 a& wSysMin.bufSize = 0x1000;
! X; G/ Z$ O8 t) x r9 X4 w$ lSysMin.flushAtExit = false;
# B: K2 M- y& \( a/ ^- p, u9 S& j7 ~' o* x& l
var System = xdc.useModule('xdc.runtime.System');
4 a& f1 J& }* M" F) }6 r* qSystem.SupportProxy = SysMin;) ^; i- b* d$ } ?* A
5 ]: z! I! ?& P) H+ D# |. X# F& t/* configure SysBios to use the lower half of Timer 1 *// E# i2 \, w. c+ Z" N2 b1 |
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
i6 e7 ^% H* q8 j/ `- Kvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
/ L1 J4 _+ }# n! f9 f8 dTimer.timerSettings[1].master = true;
4 [ U* R7 v: @# J- tTimer.defaultHalf = Timer.Half_LOWER;
2 z. ?0 \; a8 a" Q3 ?! ]Clock.timerId = 1;1 h! x0 F& N* A
# `( `# F7 t$ `% ]
0 [! F% A! ?0 t7 L) M9 t/* X, \- }1 T) e; M, K" R
* ======== Miscellaneous Configuration ========4 a8 q& i2 u" _( H# `2 Z* e. F
*/
- g+ Z7 Y# l! ~1 e7 N% ^8 T7 S' l5 Z, f; |7 J9 A
/* set default diags mask */: ~: a! r4 d$ |
var Diags = xdc.useModule('xdc.runtime.Diags');
/ s! {; l! X$ X. i- tvar Defaults = xdc.useModule('xdc.runtime.Defaults');
$ a- F! |* n- c# h9 B8 r, E2 _! F5 u8 k" a. s' X
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;- G4 F" ]! E8 U
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
! t4 U& Z0 m% a& Y" oDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;; |3 l: x$ C) T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */0 L8 r! x. S" o
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
, U/ h6 z- v( V' [6 j. k' N; @Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
4 ^5 k: U" u9 w/ PDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;# i& }* l% a2 y0 q3 Z
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;" ~7 p, A, }8 p, N, t4 s7 W
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF; u( R" |7 K% P3 F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" } }6 x# o/ N( YDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;! l. O1 s! ^+ H
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
- C2 b+ f" [+ y* {) r1 o, @Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;. P( G' H2 z i; _4 {( j
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;8 c$ _4 w9 r3 |. F
% U% _- ?$ S% W: T v' _9 T/* override diags mask for selected modules */6 Y& T9 ]4 k& _' {/ k, u
xdc.useModule('xdc.runtime.Main');
5 B. R& c0 h3 o* m/ s0 t/ XDiags.setMaskMeta(
1 p5 b9 g" V% G" u8 p "xdc.runtime.Main",7 ]. X# |; b: m7 S: m
Diags.ENTRY | Diags.EXIT | Diags.INFO,
" s& O( G, `& T. R/ z9 a! E1 ] Diags.RUNTIME_ON
/ u) K; z/ O2 d4 k- N);
6 O7 j! z- G0 A% M0 X# k9 W K' }. H1 }8 d: C9 v$ r0 ~
var Registry = xdc.useModule('xdc.runtime.Registry');9 s1 j5 U; e6 F3 R& a( @+ `6 F
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF; s, {7 @+ o, e6 S+ ^* y7 T/ u; p
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
% g7 h; K) @0 j9 s( sRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
, U* ^; L! J4 y3 uRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
$ d2 K! j0 U2 E1 \3 B/ s" Z$ P" Z% a8 E: p5 `% Z
/* create a logger instance */' {$ H# z: J5 [+ f
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');; Q: `4 C1 s+ @, v
var loggerBufP = new LoggerBuf.Params();- J0 J( B6 e3 [5 J L" h0 _0 n
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */0 L2 H$ Z+ B0 C: \6 U
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
& z: ~/ X; ]) [! p' H) c2 n
4 x" C1 K! O$ t1 w, nvar appLogger = LoggerBuf.create(loggerBufP);
) m$ ~& A5 x/ e4 dappLogger.instance.name = "AppLog_Core1";6 |9 l8 m4 h5 E- k6 e8 \
Defaults.common$.logger = appLogger;
0 @- f# Y; @8 T: s: y5 TMemory.defaultHeapSize = 0x8192; 9 b( L# |" @. |" B- q/ m0 a6 E f8 q
Idle.idleFxns[0] = "&LEDStatus";
* j3 h1 w5 O R) ]( P# f9 rCache.initSize.l2Size = Cache.L2Size_32K;
# Q8 f' y) ~4 }* K4 l% i/ \$ U
0 s; f9 ^" F; k1 g$ Q( L/ {& l( r |
|