|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明- u- s) O1 L: D1 W
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下6 c/ s. _' l) t4 U
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
3 J) X6 Y. q: P2 N/ q* B7 y T: p! Y+ C' i; _
是不是需要在DSP.CFG中进行配置3 G& w6 k1 l( K4 c" C, k
我现在的配置为; B' \+ g5 e: C% u
2 B9 Y2 o# t3 |1 x: C" K7 R$ J3 |/*8 c. q/ b h/ I J6 u- u5 p
* ======== Operating System Configuration ========9 x: n# c3 T1 D1 v1 I/ S
*/8 h! N: q( ?6 R
2 A }/ U. u8 `% ?& j2 d6 ~9 u' o
/* no rts heap */
' P, s( A/ S4 ^: D6 hProgram.heap = 0;7 G/ A% Z9 [! |# K P0 ?+ Y' d3 J
Program.argSize = 100; /* minimum size */ @6 T) J6 w/ \: a/ B
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大- L2 v/ {2 j, z. e
* T& _$ W0 g+ Q/ M, Y$ Y/* create a default heap */, ~1 e% G0 |+ R) @7 r; L" x
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
/ L7 \' e7 @! j# F8 Tvar heapMemParams = new HeapMem.Params();
9 b$ \( ~! P. }- ?( Y7 MheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大% W8 f5 k, Y- i4 W% K9 D9 }
8 g8 i# q% J5 ?; nvar Memory = xdc.useModule('xdc.runtime.Memory');
) Y* @1 A# ?# E0 M- bMemory.defaultHeapInstance = HeapMem.create(heapMemParams);, j m1 W3 P7 f0 K# U- \+ J/ H
) r3 U0 E/ ] \3 T/* configure System module */
1 L4 ~4 [$ K7 s( h Y! Tvar SysMin = xdc.useModule('xdc.runtime.SysMin');
2 j8 o6 V' A+ ~" x! Y, A8 \SysMin.bufSize = 0x1000;, X2 b2 T; t7 ]- B4 v1 _
SysMin.flushAtExit = false;) G: o- p( P$ R& [, c; i' q, I7 e L+ e
5 P' ?! Q$ f6 { |* B0 Ivar System = xdc.useModule('xdc.runtime.System');
5 v2 L9 y/ q5 A VSystem.SupportProxy = SysMin;
# M" y+ h4 h; o6 t) s0 r
1 [9 Z' ~" f7 R0 q5 d& B/* configure SysBios to use the lower half of Timer 1 */) V& u. A% \3 O* {7 V; O
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');7 x+ Z! E8 X9 S6 {$ N/ Z6 n
var Clock = xdc.useModule('ti.sysbios.knl.Clock');( R( S0 P+ i! T, ^
Timer.timerSettings[1].master = true;
: r& w0 O2 L K( v' y" s+ E; JTimer.defaultHalf = Timer.Half_LOWER;
, Z- n: i2 C3 |0 o" g8 r1 CClock.timerId = 1;. P/ A3 _7 H: O- ?3 v6 p5 X
* D( q1 D' q9 ^7 r% N6 \
+ K( @3 O" ^2 _( E4 V# F/*
+ F7 O. g$ F& d& W5 {0 W7 M * ======== Miscellaneous Configuration ========+ M+ |9 p6 y& H1 d @
*/
" J q7 T7 f# b9 Y
! `$ x4 s9 ?) x) |9 C/* set default diags mask */8 X% O. x+ ]! [ q( {* Z" k
var Diags = xdc.useModule('xdc.runtime.Diags');
2 G/ ^/ D- b7 `" W, a* I1 cvar Defaults = xdc.useModule('xdc.runtime.Defaults');& P) N8 @+ n* G r; Y
+ c( c7 z, b2 I$ A
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
5 M# M3 }; X. t- S* g8 @Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
6 k5 e' V! R w! G& @# ]Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
% h0 o3 @4 w3 z9 L- IDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 s/ u- N9 F3 k |! \
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */3 H5 Y/ P$ a; T2 Z/ C- I" o" k
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;/ B% L( O/ H9 s( [1 ], v& x
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;/ Y: G; s7 S4 r$ G) O
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;& e+ m! ?8 [5 b* \3 v5 m
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
# V: j# d! Q9 z6 ?: o: S5 GDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;: ?, h7 O+ S: \$ G* B7 V% x. t
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
" d% |& P% Q! c! mDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 T$ g) \4 |7 KDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 |2 X9 U( {- X9 j1 t6 uDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
+ v, I0 L, X" N, h* w4 q
6 w Y, w+ S3 L! m/ {9 S% j3 s/* override diags mask for selected modules */% u% `: U& K. O1 y. u, e l Q! h
xdc.useModule('xdc.runtime.Main');/ N' k8 h9 Y; [8 I
Diags.setMaskMeta($ |! p& S7 N& f* ?
"xdc.runtime.Main",
" B$ |+ b! `" I) _; r8 F Diags.ENTRY | Diags.EXIT | Diags.INFO,8 c# A; g3 a) b) ~
Diags.RUNTIME_ON, I9 i8 G0 d9 r& ?* P, L2 [
);' v$ f6 e, P0 \6 Q
; S) D1 }0 [5 A. a% M9 ?, f0 i8 fvar Registry = xdc.useModule('xdc.runtime.Registry');
' B& R, ]0 C/ D: y! o/ J2 NRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
1 k/ Z) c1 X% o, U2 Z) G- u7 WRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;+ U% X# x$ A# L( y. p4 R
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
# }) s* c) e, ZRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;: e. b) T: j# w4 Q# g. _$ Q
9 [% ~" Y- i& f V) z1 w
/* create a logger instance */
$ T2 k0 J' ]6 o# fvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
/ r0 H( D$ F$ _ |var loggerBufP = new LoggerBuf.Params();
+ r+ b1 _6 P7 d: k9 @loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */" ]# X- v9 q" e7 ?% H+ l
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
( G9 ]( [6 U8 j4 X7 d& n- S/ _5 h+ n
var appLogger = LoggerBuf.create(loggerBufP);; @1 C- T( q3 I& O( B
appLogger.instance.name = "AppLog_Core1";
2 N d. o6 A% TDefaults.common$.logger = appLogger;
8 S8 r7 B9 w$ K8 D3 v6 MMemory.defaultHeapSize = 0x8192; # h3 D% Q0 H1 Z- h( U1 c! h1 P3 f
Idle.idleFxns[0] = "&LEDStatus";$ G$ z" Y: C" S; S. |
Cache.initSize.l2Size = Cache.L2Size_32K;
) w& h( u: E1 Z# o/ h% [# m6 B+ v& P5 Y9 n7 [( W* I
|
|