|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明5 o* M1 U6 [6 m+ p3 B; q% Z
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下- ~* U' F2 V" U1 M7 h
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
$ H+ S0 Q7 ^& Q3 B! N
& n2 R% h* X0 M% G8 N' C是不是需要在DSP.CFG中进行配置
& i, l( {& V# [8 v: `& l我现在的配置为) ?% ]3 s8 t/ I
& F G. y/ Z/ O9 S' `/*5 F1 n6 I3 G4 [ @
* ======== Operating System Configuration ========
/ e$ ? R7 h* L. p1 P1 I) o */
' h/ i/ W- |' K, K$ @7 G$ v0 w+ m
$ W3 Y; m$ _1 f. K+ H6 D& `8 Q/* no rts heap */. N" j# G2 Q2 ?+ M+ Z }
Program.heap = 0;
; R$ C) K( \5 N# p4 R& u1 pProgram.argSize = 100; /* minimum size */
2 X) W5 ]+ ]; D: Q6 w/ w0 Z* Y* OProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大' W0 C8 U x/ E. [
. X; {! J# ?% @5 d- w$ j9 t/* create a default heap */
# L5 N' n! ?7 Uvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');* K3 c# c5 E8 S# w
var heapMemParams = new HeapMem.Params();
; ~( M" x. O1 PheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
_" _! W: h/ ^( n
' N. `* K/ A$ ~% tvar Memory = xdc.useModule('xdc.runtime.Memory');
, k2 h% D- d* gMemory.defaultHeapInstance = HeapMem.create(heapMemParams); _, i% ^: ~& ]2 @
6 v! T( y; F& Y/* configure System module */
* A; s" X% n- v% \8 K/ [var SysMin = xdc.useModule('xdc.runtime.SysMin');% T3 k% Y9 ^; |" n5 }+ z
SysMin.bufSize = 0x1000;
! I2 f. {# ^, @9 I/ _SysMin.flushAtExit = false;& D' n8 [8 f8 {3 B
$ w5 p0 U/ S; Mvar System = xdc.useModule('xdc.runtime.System');
4 \/ v# z; }/ _ T# Z" C; USystem.SupportProxy = SysMin;$ N+ N3 w ^1 x v
3 A+ u, w! V; e" @- `# S7 |$ R/* configure SysBios to use the lower half of Timer 1 */# x$ j6 l3 @1 ?# [
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');7 e" S l; n; k. S* d
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
# J+ k9 ?/ @& |$ mTimer.timerSettings[1].master = true;- v' x5 \$ l4 a' C! b% f
Timer.defaultHalf = Timer.Half_LOWER;# C4 h' a: w$ z# I
Clock.timerId = 1;
0 v$ G# h7 @8 _$ }- M. ?2 W$ F: N+ y( p9 {5 ~% Q0 W* }0 p# ?
, r6 P8 m1 Y( w7 [7 t# X- O$ G/*
5 d" J3 T1 a) ?5 ^) X * ======== Miscellaneous Configuration ========
' }& c' i2 X$ }" H) z4 |* W *// L& }- e8 _8 U2 ?% x, p3 `
: y# L7 ]7 E) D7 B
/* set default diags mask */* Z: ?( v+ `2 r8 r$ h; w2 }3 d
var Diags = xdc.useModule('xdc.runtime.Diags');
, m; C* i& J) G6 y2 B5 V8 B% d" Gvar Defaults = xdc.useModule('xdc.runtime.Defaults');
7 c1 C4 V1 {/ a [2 U R
. M( w& I6 X% v5 m) k6 ]Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
) J8 a8 f7 r) N$ K( h rDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
# r* A+ D7 h- V! FDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
1 ^; R' G: P1 X+ ^* MDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 s# L, y: N" n2 T7 D4 B# T
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */7 l6 B+ ~6 N) D2 i5 i
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;7 }' N/ q1 A7 Q
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! W; p1 g }' b6 E" l$ v
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;. H" @: d0 \! T0 _+ M
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;# k; Y+ u* C% `" \. l% x! V
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;4 o1 ~( m) m6 K% M6 o. c2 R, M) U& ^
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF; n! [9 [$ i5 ~" M+ n7 }8 m
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
4 L6 T2 N) m$ G/ M/ Y' F) v' b; ADefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
% q+ c, h A7 @' H9 cDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;8 p# p1 Y7 F' v' h/ J: h/ I
C) F6 D9 N5 q, T3 H1 _2 c/* override diags mask for selected modules */; B$ g+ u* Q+ Y1 P
xdc.useModule('xdc.runtime.Main');0 f! w. X M$ j4 u1 M2 ~
Diags.setMaskMeta(
$ o1 J) [0 Q2 U( N6 d1 c "xdc.runtime.Main",+ k9 C8 x; A$ F- ]/ U- h7 R$ t
Diags.ENTRY | Diags.EXIT | Diags.INFO,
3 B, J) l' m' n8 T6 y" a3 p) |6 B Diags.RUNTIME_ON
7 X9 ]. D/ G9 a& J% ~);8 ~/ I: @ z* P+ D ~8 H( b. }
6 T( e( y$ _5 V5 xvar Registry = xdc.useModule('xdc.runtime.Registry');' H$ ?/ B( _+ M! e+ p; w @2 ~9 f# \
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
, }; e8 b( G' K. URegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;4 \" p, ?1 l. s: h8 Z8 \% A
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
2 b8 W0 z, S" p7 v# T. iRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
4 B" H" D* X/ W; j8 V% `. E
9 I# O2 [0 e- |/* create a logger instance */
: T9 u$ U e5 A7 n% Yvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
" q6 Y/ O ]5 `$ vvar loggerBufP = new LoggerBuf.Params();% c! _' J" j& h4 M+ m; N' R
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
) l6 I/ Q* w) s# J& m3 YloggerBufP.bufType = LoggerBuf.BufType_FIXED;
2 F* [+ K$ z" s
! W/ \9 M) }* M- c. Q( rvar appLogger = LoggerBuf.create(loggerBufP);1 Y! u% x; k; D3 M8 u4 `
appLogger.instance.name = "AppLog_Core1";
& {2 B/ B( L9 z( f2 [. V3 H0 s3 bDefaults.common$.logger = appLogger;- W [* d. {9 h# D- w2 g
Memory.defaultHeapSize = 0x8192; 3 e* ^# }9 Z) w U) c! C9 ]
Idle.idleFxns[0] = "&LEDStatus";( P0 L1 I) ?6 E3 |2 w
Cache.initSize.l2Size = Cache.L2Size_32K;8 ~8 T4 s2 F2 p6 N. q! ?
: L& }$ {& ]) G( r
|
|