|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
/ y: g @. T2 _- c# T: R我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
# |. _5 G7 @& H% y1 C4 r; f(不过疑惑的是,为何单独DSP仿真就没有问题呢?) m# v F+ W3 b( C( i- Z3 f! V7 I; N
" Z6 y3 t* x. A5 q3 {, f1 T# U
是不是需要在DSP.CFG中进行配置
3 ]6 J8 Q7 P2 [# ?/ N$ Q) s我现在的配置为
. j# R+ I: t! r% x9 q0 C. Q
$ L- \' @8 a* j. O/*
. A8 U$ b0 w8 }. [; g * ======== Operating System Configuration ========
( ]" p' O( K) e: {' ?/ p */$ Q/ P6 ?* n) X, A
8 G1 ]2 f9 X1 A5 ]/* no rts heap */
' S" y9 V n* u9 D8 R4 t" B& EProgram.heap = 0;% P8 B2 J& k: s4 ?# k. C8 ]
Program.argSize = 100; /* minimum size */8 i7 c3 W2 {* ^, K
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大0 Q9 L2 H9 l4 {
) ]$ C: R; m4 Z6 K5 i
/* create a default heap */) N- ?5 _; U3 l6 [- N" Y- Z# o
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');, }6 c/ @% P7 x% K
var heapMemParams = new HeapMem.Params();
- `" B$ T1 o* ~: [# m# KheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; ]$ V/ d7 a' ]# B7 A
, V8 R$ j- e6 u V' ovar Memory = xdc.useModule('xdc.runtime.Memory');4 L% _# _# W6 k+ H: h8 `
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
9 k- T9 \, z- X3 h: k `0 h9 s" z$ u0 l% i% v: n, Z* v
/* configure System module */$ Q0 M# [6 D4 F Q- `: X5 r
var SysMin = xdc.useModule('xdc.runtime.SysMin');+ n; R8 a' v2 l; K# K- q
SysMin.bufSize = 0x1000;0 K$ A I! P9 J" R; _) h
SysMin.flushAtExit = false;
, ?$ h/ d- g V; p3 ?/ _; D
% J2 {. C& w4 ? `; Jvar System = xdc.useModule('xdc.runtime.System');
) q8 ~) l% J+ m# o* a1 [4 cSystem.SupportProxy = SysMin;1 T/ k4 I$ @. G$ [2 o" F+ k1 ?" W
1 Q6 D, U7 o6 j ?/* configure SysBios to use the lower half of Timer 1 */
! U. Q: D4 o' ^. w0 d' M& k0 xvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');2 Z+ S0 x7 P0 S" i
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
7 p9 \) v: y9 X8 `# ]Timer.timerSettings[1].master = true;* r, f( A {7 P6 C8 |5 R- Q# C
Timer.defaultHalf = Timer.Half_LOWER;: z5 [, t+ t$ V5 _7 e+ N. h8 y% X3 B
Clock.timerId = 1;
3 R0 W3 A8 T4 V7 ~5 L" S9 J
J, D# V; Y. Y; M
" n4 L' h) f( {# R0 z: x/*
. S2 `1 x* H. s" O9 V * ======== Miscellaneous Configuration ========3 i8 ]5 m/ M5 s0 K- S0 Z
*/, H( j' r+ i1 j' p6 o
9 ~1 e T3 H6 a5 O* O; B/* set default diags mask */
2 j. y4 z: f* [% \3 y4 wvar Diags = xdc.useModule('xdc.runtime.Diags');
- `9 H: Y; y& F* V( l; Gvar Defaults = xdc.useModule('xdc.runtime.Defaults');
( s# B4 P; S; m# @
# C: |2 t3 j/ }$ Z b3 M% P# hDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
5 V2 s; d% j; `' `1 s# M @Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;( M" j: U( D l$ w4 w% x
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;% [: g) G6 W8 @
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
7 l( T" A" m! {0 P, u* z/ K' yDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
% i, M& O2 X, d. o0 h" c. U# iDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
& C t! t% i6 l. O3 @: L/ ~4 tDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
1 M3 o+ b+ M# f' L( Z* J! IDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;% |0 x1 c0 g$ Z# \9 a
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;& d2 ]% X) B, X% H. c4 ]
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
K# O1 _2 @" ?8 A+ z9 tDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;$ U$ e' P2 B3 {, [' v2 P, ?
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;6 R: K! R8 F) ?1 d4 q2 \
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
+ ~8 @/ g7 o0 L! N6 UDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;( n+ b4 A2 W) g6 M9 P* P3 x
. ^$ O6 u1 v. h# u/* override diags mask for selected modules */3 p+ I! x; Q5 \9 u, D) |( F
xdc.useModule('xdc.runtime.Main');
- ]8 C* k n* G2 o" q# |Diags.setMaskMeta(0 D+ R q. l/ ], ]0 t9 J
"xdc.runtime.Main",
( ^* K, T& I3 W Diags.ENTRY | Diags.EXIT | Diags.INFO,
+ u( s* A+ M4 r y1 N) H Diags.RUNTIME_ON
, ^" l. w8 l& [- P5 W! _& F0 p% A);
a: {1 |7 j/ L# z( B' X* h7 }- h
J* L% w' O7 gvar Registry = xdc.useModule('xdc.runtime.Registry');
+ y) l( L( P% ~4 v) TRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;; c, C' `3 H3 X. H7 C5 Q* N
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
+ W- e {: V. t' v! gRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
1 ^% V5 h) u8 a$ v' L. O ?Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
: H! l' P# @1 s' {
! s( M1 G6 ^. a/* create a logger instance */
$ o" E4 {! `5 j8 g0 ivar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');2 E2 q' g2 N% l* r& c1 L* W
var loggerBufP = new LoggerBuf.Params();% _! y" \# B1 M ~! W
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
4 z" h: x" ?6 L# |0 rloggerBufP.bufType = LoggerBuf.BufType_FIXED;% ]8 H( i' a) p3 U0 c" e
1 e/ y; x h. E) T5 w5 m' j: ?3 @var appLogger = LoggerBuf.create(loggerBufP);
0 Y! S2 A O8 o, wappLogger.instance.name = "AppLog_Core1";
/ g; {2 Q! f1 S; \" _Defaults.common$.logger = appLogger;
, _/ ~5 H* Z% i, G; B+ ~' o6 QMemory.defaultHeapSize = 0x8192; % @, Q2 U/ g: q+ g* X* i( o. t
Idle.idleFxns[0] = "&LEDStatus";9 z6 R1 P0 Z }; Z8 z5 Z* A: L- W
Cache.initSize.l2Size = Cache.L2Size_32K;/ a W8 Q9 M2 i& P3 S
& \1 k/ I; n* ~/ k |
|