|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明$ G6 ]4 m! X7 i5 q! Q( I
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, O G# b R! b2 @; {
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
* u" e) ^& S# ^$ P. J& u+ G u" E0 H G' n `$ X$ q& H
是不是需要在DSP.CFG中进行配置
' m/ [& l: a" G6 b, e/ V. y7 p0 S' s我现在的配置为
7 S4 m2 G* Q& u; o1 P' a
& x4 q7 L6 q9 S( |$ L; S: X7 u, @& t/*- q" T7 J4 I! t- W
* ======== Operating System Configuration ========: r' z! b1 [; Q) @4 T
*/9 ?7 G5 l, [1 m4 h1 d' D7 i4 r
; y" }. \) C$ ~3 W) a/* no rts heap */
9 z: f" U7 w3 g- p+ H8 Y( j- C8 F. ]Program.heap = 0;
9 q; F2 Q E" v ]- }3 ~' F1 LProgram.argSize = 100; /* minimum size */' K8 J! e5 n; u( [8 L4 l4 {7 w
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大' ^- f5 g2 w1 L L& j5 }
& W& N. Z& m; ?% q2 I! l9 t& s/* create a default heap */# F; U; Z0 p, G& g5 e
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');7 s; {7 z1 s' {3 p- z1 J; ?* S+ v4 O
var heapMemParams = new HeapMem.Params();
; B) S- M6 v0 N; {% EheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大! p& E9 j. i" ~2 y- `
. z! C" n( g) r1 `+ k; Fvar Memory = xdc.useModule('xdc.runtime.Memory');( _) a# q: @" C! [' g: B
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
) y0 \$ ]+ t0 x* S6 c+ h' |$ Q7 _! `3 K7 r0 u
/* configure System module */# R0 q, D) E& V# D& ]+ l" V
var SysMin = xdc.useModule('xdc.runtime.SysMin');! l% O3 L0 P6 G3 y5 {7 T0 c0 i
SysMin.bufSize = 0x1000;
C) f; a9 m: h9 ?, d% ~2 q; dSysMin.flushAtExit = false;
( p3 ?& r( T* K/ j: q5 T! S2 O$ U( D9 R! F
var System = xdc.useModule('xdc.runtime.System');6 S0 h! Z! m& r
System.SupportProxy = SysMin;
0 Z1 F5 {! I/ d9 \) \+ B
# s; w" V, w! _# Y+ V H3 s8 a1 p/* configure SysBios to use the lower half of Timer 1 */
: i: W) E$ P' nvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
- `, ]: P' z# u6 \9 y7 p4 avar Clock = xdc.useModule('ti.sysbios.knl.Clock');& z( c8 Z! ?+ Q- B( |3 L
Timer.timerSettings[1].master = true;
3 A! D+ i, z2 p4 vTimer.defaultHalf = Timer.Half_LOWER;
4 o) K! ]6 D2 Y( a3 j/ UClock.timerId = 1;
- U: R7 H) ?) Q+ h7 g
: J) M3 J: D# D/ c6 L' r
# e1 X, C6 G+ c5 N4 _" b; v/*/ g1 L' k' c. J' A: L+ I
* ======== Miscellaneous Configuration ========/ T# Q! I; O" s- t) [
*/, U6 k6 f* T1 R- r* I; F0 e( x b
( W) d0 {6 a* P
/* set default diags mask */
3 z) C2 {4 @. ]var Diags = xdc.useModule('xdc.runtime.Diags');" M+ I1 y( x3 |( @ q8 M
var Defaults = xdc.useModule('xdc.runtime.Defaults');
. U3 n0 U% U( D; V" M4 A4 U
- {% q2 w/ o6 F' q, |* U* ~( iDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;! Q# @& O- r. q i: d; _' v
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
/ }" I! C# R' o/ j, T8 c6 [& bDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
: N4 M: F) H8 N; b) lDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */* a% P- T3 I8 g: j/ {& R
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */! N* a8 |7 w5 |+ g. [) S. \
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
! ^( ?! C. k! z4 aDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;# Y. m( a! x9 y" |% ?* I/ o
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;4 [% ?8 F) D: t* _, ^* P" J T" j
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
" y+ M+ w( O+ J9 ^& g- n- DDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
+ ^ z! @4 M8 x* L6 pDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;' ^ I {7 A; [; \
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
! p- z8 Z, h8 c7 Q9 b7 }- T; X5 M% {/ iDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
5 j" c7 c. s; A, F9 MDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;& ^7 p; R: l4 Q4 q$ K
+ t* n Q* j6 F5 `
/* override diags mask for selected modules */
# D. H1 ^+ z" V! b' Vxdc.useModule('xdc.runtime.Main');
, \% S# m1 M U/ _5 vDiags.setMaskMeta(
" k# i0 F, b" [ "xdc.runtime.Main"," X5 K5 f5 @8 @& p: U
Diags.ENTRY | Diags.EXIT | Diags.INFO," G% Z, Y) O4 {6 r( ]7 H
Diags.RUNTIME_ON
8 g, `% e/ ?6 w$ Z, S);6 W2 n! L0 A% @4 c
3 _1 g; \3 P7 z8 l" L, Q8 L
var Registry = xdc.useModule('xdc.runtime.Registry');
0 X0 U" O4 V2 F+ n) s# y' N, u0 WRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
i) Y& u3 F$ w: w/ h k. Y+ hRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;2 O* u' t% K, j7 K6 _8 H
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;6 R. B/ K- a* G
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;) d, ~" T. K* ^/ H
0 m9 A0 C: w7 d' m/ y/* create a logger instance */
7 ^6 T$ I6 E; {3 P% ~var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
5 ~; J+ `5 J% Q, k5 `9 evar loggerBufP = new LoggerBuf.Params();
. I0 E I a/ h7 jloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
" s: b$ ?9 ^# m) G3 T; A% g yloggerBufP.bufType = LoggerBuf.BufType_FIXED;
/ G% m; y- [/ Q6 S( H8 _- x1 y& B: S' U! @
var appLogger = LoggerBuf.create(loggerBufP);
. ?! L/ A8 `& M1 @appLogger.instance.name = "AppLog_Core1";
, x2 B, G- i3 V; PDefaults.common$.logger = appLogger;+ ]( C4 z$ L/ t1 ]
Memory.defaultHeapSize = 0x8192; ' h2 c* u N' j
Idle.idleFxns[0] = "&LEDStatus";
. V$ l+ ]' G0 ECache.initSize.l2Size = Cache.L2Size_32K;5 _% ^( O! a/ C- q
0 {* O" x9 ]. _' T" j5 z2 [/ l
|
|