|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
; r9 g. Z) e" A$ r2 J: @) |* D我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下3 z4 Z, U# R! ]# u
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)4 U8 O3 ^9 r% N7 |$ d0 T% S
) d" e5 [4 w$ g1 ?& T s
是不是需要在DSP.CFG中进行配置
! Z! z; K$ c! {我现在的配置为* I7 V$ `' `! ~1 x
5 a1 s5 e1 ?6 U l; x
/*2 c( z, E0 [" \' ?# I; x$ g
* ======== Operating System Configuration ========* b9 o0 ~3 G8 c' U+ f/ h. E) q
*/. I3 m) s/ n- L- ]. `4 x' ~2 p6 e
3 k6 ]0 W( S$ ]( l: h/* no rts heap */
7 \9 q( C! f3 r3 V) HProgram.heap = 0;
! ]7 ?$ X6 X* CProgram.argSize = 100; /* minimum size */
# Q, s) t7 p: n& |! @1 MProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大; C% w1 V3 n3 H2 W! d0 D2 z
& w3 A1 ~* z6 y9 C2 @7 T
/* create a default heap */
- n, q9 |" f2 e! Xvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem'); k1 v2 p, |( u( b. C
var heapMemParams = new HeapMem.Params();; d5 A W! n* U9 @
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
+ q) ~" P7 z V% C' k3 V2 ?" J. U( a8 y* h' ~
var Memory = xdc.useModule('xdc.runtime.Memory');
" q j* y+ Q {3 W" o7 QMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
1 q2 J! C+ ?4 v- {) T8 [3 f# n1 T) `+ [1 W c: Z
/* configure System module */) r; Y! ]4 g5 C# j; D" U
var SysMin = xdc.useModule('xdc.runtime.SysMin');2 h( z! A( ]: R7 e/ H& n# I
SysMin.bufSize = 0x1000;
5 c `0 J0 I9 G2 J/ ^SysMin.flushAtExit = false;! q: f. R: I- v. q7 v6 H( X8 a* T
8 Q, ^ R' G6 Uvar System = xdc.useModule('xdc.runtime.System');0 p$ t- s; o# L, q
System.SupportProxy = SysMin;
1 Q ]5 M I. f( v( k& p
: Q& }, b, {+ \! |/* configure SysBios to use the lower half of Timer 1 */
( U/ t5 U, n) T" H, uvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');' r/ a# L$ L7 Z) B- R/ E
var Clock = xdc.useModule('ti.sysbios.knl.Clock');6 E6 X, F; ^8 e8 d/ y
Timer.timerSettings[1].master = true;
8 p, L& L! Y& d+ ITimer.defaultHalf = Timer.Half_LOWER;
, l, G: r0 `( A4 ]( oClock.timerId = 1;
5 C8 |0 i5 j- ~+ O; s" v
/ d: L" [' Q) k
8 R) z; r6 A2 R+ _. M/*4 e" p# z5 y$ `$ q) V3 S
* ======== Miscellaneous Configuration ========) g5 l# u7 F w- O2 c' R! O
*/
5 @9 P" @! ~% c8 ]# @ \
% Y) P v: {0 l/* set default diags mask */( U, K3 z. W* ~& ]; ^8 N
var Diags = xdc.useModule('xdc.runtime.Diags');
& K7 @8 ]/ U5 |# x) _/ o* rvar Defaults = xdc.useModule('xdc.runtime.Defaults');4 Y$ q5 G# j2 t3 N. G& ~
7 |5 a" }+ D2 A
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;* Q3 ]# z5 K5 z9 M$ n# ^
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
/ |$ w7 n }: X! GDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
% `. f# F8 E4 w! S+ ~- z1 f$ \Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
' p& |: P0 r( `Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
% V: ]2 D+ H1 a9 SDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;4 I+ D: {% g5 [9 Y9 U. i
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
Y+ L0 G. A% {, N5 k4 [) KDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;7 F8 C& e& R) U0 r3 `$ T; d
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;+ M! O V. T3 v7 R# H, `$ d
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;+ F8 s+ D' E# a' t
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;1 ~; g# K& G2 ^0 y
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
d$ j" K" f' O) n7 e9 MDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
& R/ m3 e/ i3 U8 h( nDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;' D- w/ H! `, {. v9 Y
$ C) E2 O/ ?" ~7 T6 q+ u% b4 `/* override diags mask for selected modules */
" g( H$ [' r$ R, C8 s) q" o' `xdc.useModule('xdc.runtime.Main');+ j$ [( v: x* I3 ~/ s; n, Y
Diags.setMaskMeta(* |8 V: Z9 ^- ]5 e
"xdc.runtime.Main",
+ _7 _# ~0 \0 H g$ Z Diags.ENTRY | Diags.EXIT | Diags.INFO,
6 z6 i% H( c5 H1 E( Q" O7 E Q Diags.RUNTIME_ON
) L K) {1 j$ \- m9 U);, u3 A( i4 Y( p+ x
9 F: G* R$ Z- t$ | `' a% _% D. Xvar Registry = xdc.useModule('xdc.runtime.Registry');' l2 ]( J" k8 e
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;/ N1 g3 f5 k" [% Y! i' U+ |
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;# y$ M# Y1 q2 E9 @% @+ ^* O
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
: o% q4 J; C; W# LRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;7 S* a6 \; I4 Z& ^
0 w! L2 N8 c( l3 [# \3 J
/* create a logger instance */+ y! U4 i1 s8 e% {/ R4 q
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');* r6 r+ I& s2 N% i: D
var loggerBufP = new LoggerBuf.Params();
2 U& S& b8 g: Z) D% C! uloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
! ^' G, U$ `; s1 [loggerBufP.bufType = LoggerBuf.BufType_FIXED;, y: b5 }& g6 `% n, u
7 c8 H) V; N' b; D; l$ q+ Hvar appLogger = LoggerBuf.create(loggerBufP);
2 N0 l6 e) W: H$ T8 s3 tappLogger.instance.name = "AppLog_Core1";: l) J' i8 i3 Q! y# w
Defaults.common$.logger = appLogger;
O c8 y7 O: B2 gMemory.defaultHeapSize = 0x8192;
% b5 @" w' }8 }! `+ K/ O4 sIdle.idleFxns[0] = "&LEDStatus";
' }7 e5 C; t: D% zCache.initSize.l2Size = Cache.L2Size_32K;# i& R& p4 e( O5 c4 z! v' c& e
( l( l/ m* A W# { |
|