|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
3 P% k1 c* C# U+ n4 O我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
$ s; K$ s [7 G, @(不过疑惑的是,为何单独DSP仿真就没有问题呢?)% q$ F$ J6 b7 I5 f$ ]; R4 t; M8 E
5 g' D0 A, w0 }3 t
是不是需要在DSP.CFG中进行配置' L; e8 ?* M8 x. r3 A8 f
我现在的配置为; x5 F, H1 Q+ E* n' U
7 H' u$ y. k, d/*! j) ?5 @. ^, F" D5 w% i. h \: ?3 m
* ======== Operating System Configuration ========
* t4 d1 Q1 z" v, e( O( O; b */% a( e+ c% p' T! ]: P
$ w5 r/ F( Z# E! k8 f
/* no rts heap */9 }; v0 O+ t" M3 K6 f1 X
Program.heap = 0;- v! K! w$ p+ E& H
Program.argSize = 100; /* minimum size */
; O4 V. e0 M! \! I8 y3 _Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大' v0 Z) @( X% s# H. ^
) @" Q6 D$ B }: M4 |; @; v% i2 V" e
/* create a default heap */
* L1 W2 H2 |5 o$ |var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');. E; K5 T) D7 D0 L
var heapMemParams = new HeapMem.Params();# q; q" h5 ?2 t0 |
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
1 b* r+ h U/ ?6 e5 R o7 G' T5 W6 [! c8 }0 s4 A7 _" Q
var Memory = xdc.useModule('xdc.runtime.Memory'); a( \' R6 ^) j+ U8 v) T% I* ~
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
, R3 Q5 ?2 |" }/ Z) Y) H' K% \" ^
7 }/ _# A' b4 E7 F, G. ?/* configure System module */
5 z! W9 q( J9 C- ^- S6 e% W1 V5 lvar SysMin = xdc.useModule('xdc.runtime.SysMin');
7 p) p: S) Q& B7 F4 l" bSysMin.bufSize = 0x1000;
, ^& Y# d9 m8 [1 `1 J+ Y- f8 {2 }. _. qSysMin.flushAtExit = false;, d/ M& [3 }7 O3 @% w, i5 `, @* a( b
( k9 n2 V- Q# Ivar System = xdc.useModule('xdc.runtime.System');
2 w5 }3 W! X5 J5 T/ ~5 h) `" G$ mSystem.SupportProxy = SysMin;3 N z2 a l# }3 j& X' p1 a
/ Q& s/ y6 [/ r! n+ e) G% A* ` a
/* configure SysBios to use the lower half of Timer 1 */
5 P% l0 q/ I5 e; q, Mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
+ j( K# f8 ^1 Y& ]/ avar Clock = xdc.useModule('ti.sysbios.knl.Clock');
8 F' Y% N( p& B' BTimer.timerSettings[1].master = true;
; N1 U& l$ D' D! E" h( {Timer.defaultHalf = Timer.Half_LOWER;% g( l, q" n9 v4 ]( u3 {# ^! V
Clock.timerId = 1;
$ V6 v# L ]8 g: P/ E9 S: B; w1 ~2 |3 E' A
0 S0 \; a# G: O5 B$ H6 `0 f4 F ]/*
, V! h( h! y; S8 ~: U8 I$ @; s8 x; i e * ======== Miscellaneous Configuration ========; f% U L* @2 u3 B
*/
% f7 _; ]) j! n" }6 Y8 y+ M! s; @4 N$ i
/* set default diags mask */( ^! C V& [2 ]/ b
var Diags = xdc.useModule('xdc.runtime.Diags');
% {5 j! ~1 S1 z2 q! i* t3 G" C3 b( tvar Defaults = xdc.useModule('xdc.runtime.Defaults');
+ I# e3 T/ R" g8 M% y
# M3 x7 y- z& Y8 a5 kDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;# `! w, ~- c" w) q7 g
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;( I1 j4 a1 ?# \3 g4 I
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
7 H% q' C, j* u/ o" p' r" m3 w! {Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
% F; T% ~% ~! h) sDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
) I% J( l! x6 {! j9 ^Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
, e; z9 w5 m# yDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;0 S7 n) K+ \; |' o% ~) q `! `: h
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
* q( l. g$ H1 y l9 V- f. t4 kDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
: G2 U8 a5 a3 t, l' H/ n: pDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
4 ^* E5 t( \- U4 O) ]4 E0 R8 d: DDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
6 g. ?8 \: n( O" F1 ]# `1 Q% ADefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
# V% o8 N1 Q/ U: o( U) TDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
! K" W- f7 U6 YDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF; ?! C; w( i3 n8 [
% E, Q: Y; S. j+ M0 p, O- V5 m4 {. ^
/* override diags mask for selected modules */
& w# u5 q$ @2 f& v& E3 m6 lxdc.useModule('xdc.runtime.Main');
' }, M M ]' EDiags.setMaskMeta(
6 Y$ A8 i, ?0 K- Z* y" b "xdc.runtime.Main",1 G+ n% {! T T$ S5 D+ x
Diags.ENTRY | Diags.EXIT | Diags.INFO,* n8 a& h; z& z& h
Diags.RUNTIME_ON
& F3 D* s1 B* C% o);
" l+ P% T9 N z& i. K2 q. @5 O) E- @* \4 T0 U8 x
var Registry = xdc.useModule('xdc.runtime.Registry');
* F9 T9 F& ]1 s# n2 W2 t1 {% ]Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
: f0 v, a+ {& j$ |* ?" q+ U4 d! H8 iRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF; ?' K, u" q X; r8 Y
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
: [0 q" O8 B' l KRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;+ S* N, @8 C# R; t$ ?4 F$ b% K0 ~! z
4 Q4 F+ Q; S3 Y; u$ o: `
/* create a logger instance */4 Q' D, G" T- J0 I3 j
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
; |- v$ D$ q, Bvar loggerBufP = new LoggerBuf.Params();0 g% M2 ]( C1 P0 n1 { Z! W* y) M
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */5 V I' ]3 C+ w
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
; j2 X8 S- T, `4 i
/ v& ^) V$ n- K7 U+ ^var appLogger = LoggerBuf.create(loggerBufP);! e$ K% ^8 u+ |1 K/ V: W
appLogger.instance.name = "AppLog_Core1";6 n6 S- C+ [ c- @; @9 y. |$ c& |: E
Defaults.common$.logger = appLogger;
4 r- L* h" W) l1 y4 sMemory.defaultHeapSize = 0x8192; * H% y8 `3 ?1 r; ]" P
Idle.idleFxns[0] = "&LEDStatus";
$ A# y `( |. L. j* [Cache.initSize.l2Size = Cache.L2Size_32K;* T/ P7 z2 _3 ~; |
3 [& `8 b% y2 m) m ~' {1 v& O$ P |
|