|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明& f- v( H& ]( n0 ^) G% h
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下; {/ h3 Y* y& Q9 d0 r ^' m1 r5 x
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
" c$ D9 d6 S# w5 G8 x M" }0 [( C4 X% ~8 ^4 z' A
是不是需要在DSP.CFG中进行配置& R: e; W& ?2 p' D% s
我现在的配置为
( }! m' r/ m3 Q5 T' @- s& z7 ^2 _. F) e
/*' i c, b5 u& X
* ======== Operating System Configuration ========
! {* a/ B k" r. n* O3 O3 I e% H! k */$ J H( `7 j! X/ O
1 V# D" V1 {4 d& Q$ v6 i3 ?7 r/* no rts heap */
$ j. \2 `3 B& r9 D* E% K/ a, G- XProgram.heap = 0;
9 {8 Y# }5 O# H6 i. NProgram.argSize = 100; /* minimum size */
) f; I% I7 } }% m, k! o& O" NProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
8 t- `, x2 v/ ^* a6 p& U6 E; G# O8 _+ u) l! r. b$ k* f! S9 w! S
/* create a default heap */9 U: ]" y3 a* B' Z( l) `3 k6 `
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');5 z b, c% E7 A$ g. l4 v
var heapMemParams = new HeapMem.Params(); q4 \' S* \4 L( A( O& m1 t
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大/ i. N# q, i1 Y9 H- F5 E
* o/ i4 |: s+ X. u9 X; H4 uvar Memory = xdc.useModule('xdc.runtime.Memory');3 ^ Z) N, U% o' I c! x
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
- b W5 V/ k: ~. d
4 e% ^8 v, X% x- j7 h/* configure System module *// n, B2 h: q5 _* w
var SysMin = xdc.useModule('xdc.runtime.SysMin');$ Q2 l, M! K* `/ [( R) y' v$ k
SysMin.bufSize = 0x1000;/ p( [& s1 z# k: k' G9 B8 E4 N" `
SysMin.flushAtExit = false;6 W0 `; i/ f& @: \$ |( b
2 v. @' u1 v# ?3 d C) \) Wvar System = xdc.useModule('xdc.runtime.System');% \1 V4 i+ K0 V$ V% L
System.SupportProxy = SysMin;6 ] o; u! i# h; l8 k) S5 j7 T# I
5 @1 ^9 H6 E( R* P( {. e/* configure SysBios to use the lower half of Timer 1 */
. D8 ^: Z c0 y# m+ _var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
+ t n8 e2 D: L% _/ b) E6 ~var Clock = xdc.useModule('ti.sysbios.knl.Clock');( y: U5 L& Y( a' Z
Timer.timerSettings[1].master = true;5 c! |1 R& z2 t( _: I) [2 Q
Timer.defaultHalf = Timer.Half_LOWER;
6 w: R! L C2 r! Y7 PClock.timerId = 1;
/ d% }" N" x8 }2 x# ^1 q1 T8 w1 D3 u) \
; d- x+ X. H# O5 F* X+ V
: d5 Q- L$ Y7 \2 T/*, x; T) }" r w- k* C' N; [) z
* ======== Miscellaneous Configuration ========( F5 C, R/ u$ Z# V# f6 n$ A& D
*/9 L( \8 x8 |# J* [* L/ e
$ c( N3 M5 Y: g0 f0 R, M/* set default diags mask */
, c9 r* [" R7 a' U" e7 Dvar Diags = xdc.useModule('xdc.runtime.Diags');3 s$ b" l) g# m+ ?4 g( R g
var Defaults = xdc.useModule('xdc.runtime.Defaults');9 `6 ?: X* l3 ~2 j* F
8 {5 _0 z1 ]0 k! m7 k, b: _Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
: f k+ B' ]- r4 D4 @Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;, t2 C! E9 ^" u% B v9 V
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
& p4 c" C- A1 V8 t6 j+ @) fDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */! X4 d) O9 m) L" Q2 G5 B1 e
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
2 q& V- M! ^2 V; iDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
, i, d3 Q( Q; \7 J8 J( ^7 VDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;- A) q" U4 F. Z5 Q) t( e+ O
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;* m2 V) }; l* ?7 T" D
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;$ z8 P8 n8 A9 C$ v
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;0 t x' l- B2 n/ q
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;+ Z M! G8 P/ m( V: s- c
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
# R, \6 D. i6 V% A$ L# L- Z0 B, yDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
& D" o: V" g* S* n4 qDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;/ K0 B n1 n& [ \
X: l, m# `1 o9 O! k% w; _. x/* override diags mask for selected modules */0 }1 F+ o. @1 y! D$ x- W5 ^8 y
xdc.useModule('xdc.runtime.Main');7 B6 K% R2 ~* R& \9 J: G' J& l
Diags.setMaskMeta() m+ p3 P+ o. `6 ~; s
"xdc.runtime.Main",) C0 y1 K, _% b- r E
Diags.ENTRY | Diags.EXIT | Diags.INFO,8 X d2 Y* F) J2 `8 I0 {
Diags.RUNTIME_ON' D/ b8 J' R. ~6 V
);2 v9 o& R" E1 g" `9 ~
# |* f3 s$ j- I$ l
var Registry = xdc.useModule('xdc.runtime.Registry');% l* u* {, |4 {. E
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;: |; O$ b% l3 H0 j0 s& e! C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
# ]6 o# B/ x# i% CRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;# k. V; J3 ?% y5 n( [3 e8 w
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;' A- p& j! Y: i# J5 Z# v# ?
; `/ @: ^* |. ]" A; v( Z6 P2 V" o3 J/* create a logger instance */
3 g8 u) [6 X2 C# W. A4 g/ y& bvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
" B" Y0 w" s. `2 wvar loggerBufP = new LoggerBuf.Params();
- A- E A% t# X8 jloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
( e* J$ @7 }5 OloggerBufP.bufType = LoggerBuf.BufType_FIXED;
) ]0 F# d V5 ^# m# }3 v9 B+ \9 ^' C' q ?
var appLogger = LoggerBuf.create(loggerBufP);9 a m! W! U( T' L
appLogger.instance.name = "AppLog_Core1";
. t# P% o: M1 O1 I6 [Defaults.common$.logger = appLogger;$ e: O! b' B4 `0 U) e6 T3 c9 D+ F
Memory.defaultHeapSize = 0x8192; 7 U- @4 I9 ~, X4 D0 I9 g+ H" D
Idle.idleFxns[0] = "&LEDStatus";- V+ }& q! m! d. d3 K3 H5 O
Cache.initSize.l2Size = Cache.L2Size_32K;
/ B3 L0 E. E$ x; c1 ]
; k" T/ Q" L% r5 D |
|