|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明" Z d6 a8 Z7 y1 B- S6 j# y' r; ~
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下& I& Q- X$ A$ e6 w' ]4 l* D
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
, E. P7 j, v4 J4 e: R3 Z! ?6 N6 O6 U$ S
是不是需要在DSP.CFG中进行配置1 } d1 M( L6 R: t0 Z2 g
我现在的配置为* k2 w0 ^7 ~6 A+ F" _3 [: y; [
/ @- S. |! D9 M
/*' W& Q. x& w, x N
* ======== Operating System Configuration ========
. z) J5 S3 ?6 n \9 c */
0 `8 V6 f* U7 \) L% l/ e4 y) ^+ d& k" ?. \
/* no rts heap */! ?4 E; o5 X- j2 `1 ]
Program.heap = 0;
+ E1 K5 }3 F, _0 F8 b5 f1 W$ D! S1 mProgram.argSize = 100; /* minimum size */
# ~3 U# N; a- E5 ]+ yProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大& U; Z: Z$ L2 t3 [( @" D& G
& n/ B6 u l _# m' V' s/* create a default heap */
4 B% g- h% Y- Gvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
3 |2 f4 X6 d, c* L1 r+ Uvar heapMemParams = new HeapMem.Params();3 m1 w" v/ |2 I5 i: L$ n
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
1 m7 A; H) D% q- q. t! E
3 R' z3 p8 x. m+ E' o+ d* F' Svar Memory = xdc.useModule('xdc.runtime.Memory');
2 e8 g; e( @* C' Y& I* WMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
* f+ c2 Y2 q3 I5 ?+ j! L' g' D3 d
, z+ v3 ^+ b" U+ Z* V3 \/* configure System module */$ \: K, r- ^1 i0 \* [5 W& ]
var SysMin = xdc.useModule('xdc.runtime.SysMin');8 Z8 h' y' `7 n/ o$ i5 I
SysMin.bufSize = 0x1000;9 t6 q, q3 _2 F' w; v' k( |
SysMin.flushAtExit = false;$ _- p+ T' `# P
! k) L8 G5 v _' F i9 ~- `var System = xdc.useModule('xdc.runtime.System');
- A7 Y6 |1 K: i6 JSystem.SupportProxy = SysMin;, Y3 u8 y5 U% @
/ Z. ]0 {) x- v- N$ g% @% N6 S
/* configure SysBios to use the lower half of Timer 1 */' d/ {: {+ M5 ^' u8 N
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');4 E9 l. I6 S; A0 w) z: W: S
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
, N8 \ I- S; E( d' ^Timer.timerSettings[1].master = true;- d+ ?9 x4 K% I7 E# H1 A1 n z
Timer.defaultHalf = Timer.Half_LOWER;& Q8 P0 Y$ M) r2 `
Clock.timerId = 1;
9 j$ {+ g' ?1 h6 d4 U! L( o. ?# }3 n7 Q$ k0 \* Y) P# m2 b3 A( _
4 F& Q3 h8 e7 b9 G, x
/*7 }9 n( } s. M$ l% ^! A
* ======== Miscellaneous Configuration ========- s% G( t$ {. T/ O3 F' N) z$ y( V
*/( k! ^( Q' A. v5 `" n" [
% b2 F* q6 @& ]5 z [) L/* set default diags mask */
7 L0 d H( p" } a4 I' T. Dvar Diags = xdc.useModule('xdc.runtime.Diags'); v6 B4 G4 ]; F
var Defaults = xdc.useModule('xdc.runtime.Defaults');1 b* L8 g4 G, ]
. E K3 w/ q3 o
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF; w: c; c9 X$ z4 p
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
5 g- V! N6 v' Y0 ^* J1 ?& q/ }Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
* v6 p% q0 x( H! zDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
* j2 b" J: h( g* PDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */ k; G9 C0 `/ M, l- q* @2 V: o
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;0 R" I% N; o2 X
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;) @, b2 b( W# ]5 x6 Y1 A
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;1 ^! r5 V% Q- C- |
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
9 M! M4 g7 u) q; `/ C+ RDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" X( W# }" T! S! y- {& T4 e" WDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;9 C2 n+ j3 y) p0 L; C
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;3 M5 v- @5 v0 X% k" F8 I* G9 s S" z
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;# l" L* C" w8 g1 v6 m8 ~7 X
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
4 y2 w6 B) G. X P: B4 `( ]7 l, g; r' h0 w1 w7 o
/* override diags mask for selected modules */
; c" x, l b2 `9 C. ~3 {% [xdc.useModule('xdc.runtime.Main');
& p% S, J8 Q& [% B: M' p, D( VDiags.setMaskMeta(
& I9 t0 S. a& }) e& K "xdc.runtime.Main",- Q0 z( q3 k, G2 T0 H& m
Diags.ENTRY | Diags.EXIT | Diags.INFO,
6 Y& y! j- E" A) N Diags.RUNTIME_ON' X8 {' O5 r4 _& f3 S) z$ f: I
);
0 u3 U a" W* B0 ]" F2 T& I
% G' C8 \' G, Nvar Registry = xdc.useModule('xdc.runtime.Registry');: I- A6 R: R( B7 q0 K. `1 |' K
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;6 j6 J0 }( c; `; w( V- w/ _' |# P4 C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
; d6 a8 f! `& O% U! eRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
4 @# |; b9 E4 m; S2 M$ B) qRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
) A& R0 `) Z% H6 v: K
/ t6 K/ c W3 P- M q( R2 T7 l/* create a logger instance */5 z+ w- ]% `" t6 W/ b8 D+ z
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
# _- Q/ x( T" F+ b+ q$ O: h5 avar loggerBufP = new LoggerBuf.Params();( o% e* ?% N! l# R" I
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */3 a7 x. j V3 Q& T
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
m; ]' p; T) [" T! ^3 S
. L2 U7 d% S" J% a4 Pvar appLogger = LoggerBuf.create(loggerBufP);. J- Z0 L, G( Z' f: V: a; o* @
appLogger.instance.name = "AppLog_Core1";
& j8 f; v! O& Y2 c0 O' H* EDefaults.common$.logger = appLogger;6 ]1 E% K2 D0 s! |4 F
Memory.defaultHeapSize = 0x8192;
9 J* c! Z- r9 `2 |. v( PIdle.idleFxns[0] = "&LEDStatus";
$ d. S# S2 q0 f" P, y, hCache.initSize.l2Size = Cache.L2Size_32K;* n& R2 b* H6 O9 e7 v5 F7 v
) M/ \+ u# u! ?4 @3 B6 Q6 N- o |
|