|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
7 u+ z% y9 m% p1 u4 h我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
: J C5 j0 I# j8 u. V$ g/ o+ U(不过疑惑的是,为何单独DSP仿真就没有问题呢?)- V8 o- f$ Q/ k+ i
/ P; G" u3 r0 j+ v9 ]2 q* p. W4 H" n
是不是需要在DSP.CFG中进行配置) |! Q0 x3 V8 t: w% F% W
我现在的配置为/ A, m4 ` n1 Q) ?) [: a. {
, q, s. y, i% ]5 N3 t8 B/*
" i$ L3 @ G% J' M+ j/ Z7 h/ e * ======== Operating System Configuration ========: z7 M% d) }7 H R2 \: T
*/. m2 g, h4 D( j
- N7 e; ]7 G* R. r- l8 C/* no rts heap */8 x; a e- `+ f
Program.heap = 0;/ f+ d: S; l. z' U: X$ @/ t9 b
Program.argSize = 100; /* minimum size */2 I7 q% j* i& _$ L2 {4 \, v
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
$ Q; D( D& s. Y; w% c5 @- e5 T, u1 }9 h7 ?6 b
/* create a default heap */
q# [4 S% \5 }0 z- x& \var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');9 P+ K/ [" [8 N. L
var heapMemParams = new HeapMem.Params();% z O/ l. F: M
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大( T% d* {! F6 j# \# I5 I) m8 A/ Q; h0 m
! M2 w0 K! l4 y
var Memory = xdc.useModule('xdc.runtime.Memory'); f6 B& d9 s _: A- Y$ r* U1 [
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);2 `6 y4 q, T( k: w
8 c) I* ]1 F5 P& G/ W, j
/* configure System module */
; @4 M2 [& z+ k7 k4 Evar SysMin = xdc.useModule('xdc.runtime.SysMin');3 {+ O+ p% A2 L$ {% b! }6 ^
SysMin.bufSize = 0x1000;
5 G5 d7 g K! P7 w& T0 @7 eSysMin.flushAtExit = false;
8 B4 B( U6 T8 k$ }( d$ l5 x
$ K4 }7 c5 p) P0 v2 J3 m" r; T, Vvar System = xdc.useModule('xdc.runtime.System');: k, s" ?, o, L; Y" }: M! w; G
System.SupportProxy = SysMin;
7 d0 f# c! s+ \; k) |
( N; a5 [) V7 l, ~% C4 J# i/* configure SysBios to use the lower half of Timer 1 */
+ _, S1 _7 K8 X4 Uvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
8 {+ x# i6 m6 Pvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
: e L4 p. U+ h* a3 J/ cTimer.timerSettings[1].master = true;. |4 R4 T$ X; g/ v
Timer.defaultHalf = Timer.Half_LOWER;
- l' t# O, q9 m: L$ zClock.timerId = 1;
F$ c# p9 G {2 H) L t
& [) |3 L Y) {
3 E! }, I" h" r; a# ~, q- t/*) ]2 M1 z2 v) b7 h# U* c
* ======== Miscellaneous Configuration ========
- C; J* E! C2 y& W7 K7 S */8 a. J3 ~, c! ]1 G
, @" ~4 {7 X" z; a9 g1 n5 d
/* set default diags mask */0 n) W5 u$ V6 X# P
var Diags = xdc.useModule('xdc.runtime.Diags');
. B: g0 K9 y1 N/ X- b- Z( _! fvar Defaults = xdc.useModule('xdc.runtime.Defaults');
8 v' `7 m( q. Z5 e. g7 f+ Z9 w, q. Z
9 L' c/ a7 n' c7 X# K* TDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
# q7 `5 U5 @1 [( {6 KDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
! `# K- }9 I+ J8 x0 I2 ^Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
' T0 J" ~4 x1 D4 J9 z9 N9 t3 lDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */. w3 f. Y3 P4 G
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */' c! v$ G* x: o$ B. n8 Q4 j ~
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;8 R6 i5 e9 J7 ^3 d+ q1 q) f: |6 N
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
1 n% |* Y5 S# NDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
2 s0 W _5 e1 v9 f' cDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;7 o1 G5 l0 C- m) X$ f/ v" j \
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;) p k. x. F9 f9 ]2 B
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
- G- }) Z( W0 _6 J- ?Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;- F; Q7 Q+ B/ \" c f. B, _
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 E$ m$ q0 k/ c O! ~( w3 m6 aDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;( _/ q' _- O: |+ q
0 S' X% N+ A5 i9 U$ S
/* override diags mask for selected modules */
& z8 t- f) z4 D+ H+ |+ sxdc.useModule('xdc.runtime.Main');
5 [& d& I3 u9 J2 n1 Z. G BDiags.setMaskMeta(3 r8 W* y. x3 D: q9 q
"xdc.runtime.Main",
- q! m+ }* I6 r1 y0 K" x: ~ Diags.ENTRY | Diags.EXIT | Diags.INFO,1 y* H; I- ~& r% v. @
Diags.RUNTIME_ON
0 F. C, t7 Y. o);# U+ t& f- ?+ Y1 O
' A& n/ D6 M7 b6 ~1 U; j( Kvar Registry = xdc.useModule('xdc.runtime.Registry');
* [1 C/ x" l5 ^) V. G3 KRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;0 Y- ]; {* E/ @5 V+ r
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
, F; p Z' i6 L( V) cRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;0 m6 i/ N0 X) L9 O8 ~( j/ ?+ E
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF; B' p+ W4 t2 \, `, w$ e7 |
. ]# ?$ K3 e7 E8 }
/* create a logger instance */7 d: C% q+ d7 }4 y! s5 ?
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
5 `& P, ]' |) Q, `, I5 p( p6 ~var loggerBufP = new LoggerBuf.Params();
) {6 Q: ?' Z0 B6 }3 ~loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */3 E- p! _0 V) }- \' Q3 d
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
8 I9 q& G! X9 U& _5 X4 I6 n4 j$ T. R' _# `1 {5 l' G+ a! ?' g0 o
var appLogger = LoggerBuf.create(loggerBufP);
4 M! `) v* {- ?$ k4 r# o: ?2 sappLogger.instance.name = "AppLog_Core1";
, X3 p/ w; u8 K j3 ?% v! H! {6 fDefaults.common$.logger = appLogger;" \ u6 f) k! b, e4 o: r# q. c( H
Memory.defaultHeapSize = 0x8192;
! B6 K) t5 h/ l2 g" YIdle.idleFxns[0] = "&LEDStatus";
/ U0 j0 G% `4 q, G. }) ^ c, hCache.initSize.l2Size = Cache.L2Size_32K;
, n3 B! e7 b. q U' U1 x$ V( h4 B# s
|
|