|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
0 w7 [. k6 H! Z* @' J我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下5 X) `3 n8 U; K7 {% ]/ ^; w0 C' P
(不过疑惑的是,为何单独DSP仿真就没有问题呢?), j- A4 B7 s& V/ G) h# s- q
$ L* f2 @' Y& h
是不是需要在DSP.CFG中进行配置
- `' @' F* O( i _8 Q7 Q* `我现在的配置为
7 l4 p5 U4 i$ @* ^4 K, {: l$ o& o& y& `3 B g5 ^! `" Y
/*
6 V* s, U5 ]/ A * ======== Operating System Configuration ========7 Q& b; l& d0 v9 ?- n
*/
' d) Y" T7 N' G* }, D& F- v0 o: W# M& `7 s9 O: R. V
/* no rts heap */ s0 k# H2 }: I. ]' N8 c- k& X) ? u9 A
Program.heap = 0;
/ ~+ w2 N, b2 h* l( WProgram.argSize = 100; /* minimum size */# c0 y3 d+ J! X# `
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大" k6 Q/ [. X3 o( ^# B
# R- J8 a' w/ e x/* create a default heap */, L w. H: J, G% y0 F
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');, {% G) |5 P* r7 D
var heapMemParams = new HeapMem.Params();2 l# h2 ~" j% H2 ~% z
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
2 |2 p. v5 E3 W5 e; ^1 O4 i3 r- S
/ ?! u, i1 Y2 z2 A ~var Memory = xdc.useModule('xdc.runtime.Memory');
# p: m1 O1 d5 O% @1 i& ?5 _2 y; \Memory.defaultHeapInstance = HeapMem.create(heapMemParams);* c4 { x% Q, ]8 r5 R4 P+ N
1 s n& g4 Q/ b+ g/ c7 G/* configure System module */
- j* u2 T& ?! X' D1 ?) }var SysMin = xdc.useModule('xdc.runtime.SysMin');
: o! A7 M/ } t xSysMin.bufSize = 0x1000;( A) U5 W7 k H ^6 Z _4 ?
SysMin.flushAtExit = false;# v' i2 e4 g/ E6 N- i8 k: M
2 L: f( a; I# Z& w. o; ?var System = xdc.useModule('xdc.runtime.System');+ J2 v& v a+ K% n! A5 @
System.SupportProxy = SysMin;
3 Z! H% m- Q8 b! @+ W4 {. D: n. K0 N: v( G, |
/* configure SysBios to use the lower half of Timer 1 */
- i4 ?. x/ \$ i8 v; U! B! Svar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');8 _# C+ _, }6 V# s' f
var Clock = xdc.useModule('ti.sysbios.knl.Clock');% _& o; @: {* s9 J
Timer.timerSettings[1].master = true;: @6 e8 ^7 U% k/ v9 X: w
Timer.defaultHalf = Timer.Half_LOWER;
# M+ G m6 j& @) WClock.timerId = 1;
" P9 r% I# R, J, @% [( P0 h. H3 _4 U$ x' Z* M/ X) _! S8 u
/ F0 u( q1 D* `3 X2 d4 u
/*
0 D) a6 N- R3 x$ f, _1 ` * ======== Miscellaneous Configuration ========
/ p2 R9 R! V; a" R8 K */0 g: k8 t: A O. \- z1 r
) n* u+ q; _$ O ?2 G1 T; p: z
/* set default diags mask */3 J. \8 \+ o4 b6 e
var Diags = xdc.useModule('xdc.runtime.Diags');) }* o" |% i1 a' T& L
var Defaults = xdc.useModule('xdc.runtime.Defaults');
; O: b0 q+ |# d
" ^% U2 @9 p% u9 }- H# `Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;3 s+ P- n2 G$ {6 R/ ~) g# t
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;7 g6 f/ n6 I6 O7 ~2 Q8 C/ c
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
0 j; U3 Z. ^. W0 Y! u2 YDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */' k" h l* H$ T3 {; ^
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */4 }; ?( D$ `/ a# m1 `2 l: W
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;% A1 l# `* I% H. k; j: q+ R
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;( S' @# d7 n- {$ ?0 a! Q8 S
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
" t: F5 A N: s- G! N( {3 L3 Y P* T% mDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
% w" J1 R/ j! \& E7 JDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;+ I: V4 J7 L3 c, B
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;. [$ Y( S) }* Y9 |: [, ^: ^1 N
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;0 G0 X0 T& U5 a4 |
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;4 w# }: Z0 w" R
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;- c! C2 R! L9 [' ]& m8 X
2 G0 J' ~+ y& P# A9 T) E/* override diags mask for selected modules */
2 r" R" k2 b- d5 }, }xdc.useModule('xdc.runtime.Main');
: I) R, ]; S4 {3 k' GDiags.setMaskMeta(
/ u. x6 X7 G. J8 u6 F# y5 r. n { "xdc.runtime.Main",
]% ~4 Q2 [, o- J# M+ v- a! w Diags.ENTRY | Diags.EXIT | Diags.INFO,; ~& E7 b+ }3 S! R1 J8 y
Diags.RUNTIME_ON
- m. e8 T1 k# n);$ T2 V# o' m$ h! W7 j7 P3 c
! n0 E% B% g9 t7 Cvar Registry = xdc.useModule('xdc.runtime.Registry');% {* _, `4 i3 f- f2 [' D
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
# i% J) p4 F) N; X1 L7 `Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;+ K# G. b3 h' H8 V+ D
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
2 n3 A5 H! o. O9 m" j9 e; n& \5 E, CRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;4 S* e* J' b7 V3 e5 ~, j
" _$ y+ O5 I4 ]0 B" I. `) O/* create a logger instance */
- ?$ y2 j' X* E, y1 Xvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
- c3 b: j/ S, n6 Gvar loggerBufP = new LoggerBuf.Params(); k; V1 m6 G! b$ {2 G7 D' m& ?! m
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
( `8 S! h% d8 |( Z% U4 n9 GloggerBufP.bufType = LoggerBuf.BufType_FIXED;
3 a/ ` c1 u7 r& L0 a! y& t0 Z5 V" l" F( Z( v$ i* P% G
var appLogger = LoggerBuf.create(loggerBufP);
2 c+ k+ P2 ^. yappLogger.instance.name = "AppLog_Core1";0 ]& @' ]# i- O- { o2 e
Defaults.common$.logger = appLogger;
. `4 Z2 {0 P6 t8 s: h# n( h9 AMemory.defaultHeapSize = 0x8192; 7 A# J; y, a1 R. o' s$ ^/ l" T
Idle.idleFxns[0] = "&LEDStatus";! M4 u/ ]8 y% p, A# `
Cache.initSize.l2Size = Cache.L2Size_32K;- y; S: O s9 o
: s. v) B5 Z" ^* U+ k |
|