|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明2 g9 x1 K& A" \8 x! Z0 j1 Y
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
6 {5 h2 W3 r7 [1 C/ f6 W' Y% n(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 Z+ b v6 G1 c' f' P9 m0 Z+ i, }
: P7 b& k S) X3 r: n5 j1 b. t
是不是需要在DSP.CFG中进行配置& X. ?" H8 i% ~! e
我现在的配置为1 _ d1 j+ C: z6 t
9 S/ e8 e/ E* b1 u
/*& y. [+ {; L. L) I6 m
* ======== Operating System Configuration ========2 }' ?2 s, d- x* v" C- ~
*/
. m. t* V2 h+ X8 E6 b5 \5 B: F) k3 L; |, n, v7 m) r2 @0 g3 R4 j, V: e- g
/* no rts heap */6 `# e, l, d& Y; H) k
Program.heap = 0;# Y3 b9 [( `: I5 }% S" x+ e! L
Program.argSize = 100; /* minimum size */
7 k4 j& I1 h" {6 J' h% } QProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大0 f! S4 [% c2 L/ ?+ l$ m
3 ]0 G$ l; E2 Y; _& `: p/* create a default heap */+ e& u7 l0 Y. V& R/ {
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');; S: D6 C2 v w( {3 W$ ?' O3 [
var heapMemParams = new HeapMem.Params();0 H' t \$ G/ V7 Y+ g
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
7 l/ f8 i8 u/ k5 l, H2 D+ z
@, [* R4 y& F. N5 Fvar Memory = xdc.useModule('xdc.runtime.Memory');& A1 f: A! b( ^+ P( s6 W
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);/ i) h1 e! z# b; ~+ O
; Y( u8 S; A1 v& U! e
/* configure System module */
* _ {% o: C) T% Y7 fvar SysMin = xdc.useModule('xdc.runtime.SysMin');
' t& M" R$ P3 q8 I0 t% W0 ^SysMin.bufSize = 0x1000;
3 q! k: B% H$ R1 u8 y! MSysMin.flushAtExit = false;; H1 w: v3 |. c: f3 `
2 O' T! E2 E$ n& D" Dvar System = xdc.useModule('xdc.runtime.System');
8 |* L; X& d! b0 g& K mSystem.SupportProxy = SysMin;
! ~+ F. z: _% z3 i/ y8 S7 q- v j- k7 q, [; Q
/* configure SysBios to use the lower half of Timer 1 */8 Y, N# u' ?" e/ q
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
7 [: N! x) K/ _8 I- Yvar Clock = xdc.useModule('ti.sysbios.knl.Clock');; A5 k0 g) ]* u6 i' R4 \! |
Timer.timerSettings[1].master = true;; n7 ?2 o& g) J# p$ a7 U
Timer.defaultHalf = Timer.Half_LOWER;) J# |. m, g+ Y0 {* I
Clock.timerId = 1;
5 L1 a6 I) s p' v Y/ ]/ H3 m6 v/ S2 N
3 A( ~4 U p) V7 ~9 |7 E3 b T/*
1 |2 k. } A+ ^: \% o * ======== Miscellaneous Configuration ========9 B) R" }! C! }) y
*/' Y0 J R2 u5 Z, t
4 A9 f1 V5 `( L- I7 J% L
/* set default diags mask */( V3 c6 D5 R: r6 r0 f5 s, q
var Diags = xdc.useModule('xdc.runtime.Diags');/ d1 C( u( k" W" H+ w3 O( I6 g
var Defaults = xdc.useModule('xdc.runtime.Defaults');
4 f3 ~. ~ T5 Z( f) c# f* k- R2 L2 H
; `4 U0 X" x# o5 U& ODefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;, b+ Y! D3 V3 w+ k7 B8 ^! R/ O
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;0 D: ]7 G$ ^7 w* p
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;# }& M- b7 @: U) H2 Y9 H* _
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
7 w& P: \7 o2 {( V+ mDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */, j8 Q2 c* f8 B" ]
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;+ W" f4 n1 f* N ?8 j! A
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
' v' I) y' o* j0 U! L( | F: m* F" QDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;4 g t( G# W# n: e
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
1 R- Q+ M4 u0 s3 BDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;1 G+ d' J7 j0 S6 u4 { L
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
' \. S, p# G$ O; y: XDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
! P8 V5 @5 X6 b, N( TDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;- F; }9 o+ N* |6 h7 N% [
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
: ]: ], q1 e4 [
2 X# g' _* m% y) t6 B( H* m/* override diags mask for selected modules */
3 Y% J" p: Y8 r; U3 gxdc.useModule('xdc.runtime.Main');! j8 q# E o& J- w
Diags.setMaskMeta(
2 X9 C R- f6 B8 @: U( w1 c4 e" [ "xdc.runtime.Main",9 Z& M' U9 g- I3 j% o
Diags.ENTRY | Diags.EXIT | Diags.INFO,
" \$ i% _; ], s7 t/ S Diags.RUNTIME_ON+ ^/ v% f5 e+ |; A8 j0 }8 w' O' N
);. p3 C2 t/ H( \4 I' J
" L6 s$ P5 O1 a
var Registry = xdc.useModule('xdc.runtime.Registry');% [# A' g# Q$ c; u+ M( i2 B
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;' m/ |3 @' K/ A$ H, B4 L$ E
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
6 w; n* ~$ x- {- VRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
* w* ^( O: Y" s3 S- ?8 a) ?* |Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;8 J3 X- T( @ I n4 T$ C, K& y/ `5 a+ T- d
^8 W' p8 Q3 \' d4 g/* create a logger instance */
; Y( ?3 b; K' D9 w3 Q1 fvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
) F& m. t7 _% Y8 v; \$ x+ Dvar loggerBufP = new LoggerBuf.Params();; k! R% E6 Z+ s5 { l2 a
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
' E6 o1 x6 o( f: j/ Q' k' u; b' c+ \loggerBufP.bufType = LoggerBuf.BufType_FIXED;' ~7 l [: i4 t1 f$ I) K
: }$ W" Y7 E: Z) ~5 P# mvar appLogger = LoggerBuf.create(loggerBufP);
* M6 K* b8 E8 W u8 KappLogger.instance.name = "AppLog_Core1";; E! p, a" z8 }# w1 i% _# Q
Defaults.common$.logger = appLogger;( F( q" w) o& z8 u3 Q
Memory.defaultHeapSize = 0x8192;
# q( h) U. T: V( bIdle.idleFxns[0] = "&LEDStatus";4 W5 C& k8 }9 R7 x
Cache.initSize.l2Size = Cache.L2Size_32K;
* m5 T: S- j- } }( T% I Q6 s) m
|
|