|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明% q2 Z. v/ b4 y) [6 L$ z
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
7 H, {; V" c# `& e" ]* @+ y6 g(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
. ^$ W, E( m5 A8 K1 ?
; r% o9 X* e& [* m$ O是不是需要在DSP.CFG中进行配置; @' h, i- m$ S$ ]3 A
我现在的配置为
1 X9 T9 ]- q! I# j2 w d5 d/ B
U& ~0 O. a6 B1 f: v/*- e L8 U% e& @7 b/ F% p
* ======== Operating System Configuration ========( y4 g/ h0 h3 C) H$ @% d& l( c
*/4 n! O7 [" Y: o, d- v
- `8 s9 `6 J5 L) ^5 B
/* no rts heap */' t6 w# q) i$ }" V
Program.heap = 0;) `7 v G6 a9 F5 H1 U) v R$ n
Program.argSize = 100; /* minimum size */2 m' Q$ Y: o0 `% g7 \9 R, I' P
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
7 y/ `8 ^( n! _3 Z5 {* I ?/ ~8 T# ?
/* create a default heap */
8 R. B5 T; r- v4 O1 I9 M" M0 Xvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');8 m+ G7 B0 [; J8 @' }6 L
var heapMemParams = new HeapMem.Params();
1 p7 ], `8 U* x; \* l/ WheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大" i7 [0 E, V# Q; Y; ~' `% ^
) L6 G- x; o6 m5 l1 ~/ Bvar Memory = xdc.useModule('xdc.runtime.Memory');
[ ^. W5 X3 A# ^9 e9 f7 q" oMemory.defaultHeapInstance = HeapMem.create(heapMemParams);+ F1 k' q+ ~- Q) v0 X2 {
' Y7 V% J) u e5 M8 z2 Z/* configure System module */
- m2 o2 G+ g, T( |9 Tvar SysMin = xdc.useModule('xdc.runtime.SysMin');
2 `8 m8 M) z; p3 I# g* f+ @+ X( HSysMin.bufSize = 0x1000;
2 ^* ^4 f7 q2 s8 W) x( L sSysMin.flushAtExit = false;3 C# M3 a# T3 C9 R/ c+ {3 D+ h
. p P* \' X0 V
var System = xdc.useModule('xdc.runtime.System');
. W# Y8 j" }+ gSystem.SupportProxy = SysMin;, F( o: J* X F* a
% v/ x; k$ i3 B6 `' h7 s0 q/* configure SysBios to use the lower half of Timer 1 *// N# U1 Y8 ?) \6 p
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
7 {- N( M( Y; |5 jvar Clock = xdc.useModule('ti.sysbios.knl.Clock');5 u* j, j) i5 x+ B/ R$ I
Timer.timerSettings[1].master = true;7 I) Z$ P$ i! O; ?( |1 Q4 I& C1 {
Timer.defaultHalf = Timer.Half_LOWER;: S; j+ q/ V; w8 @7 E9 W
Clock.timerId = 1;
' ?" s3 ]; e+ L, B8 Z% ~1 D( [* q
: w; P; d& K8 t! H# T# W
/*3 }6 a* ^& t3 O3 ^& q
* ======== Miscellaneous Configuration ========
1 B) h4 C3 i& U! n H0 M2 ? */7 ^0 w- g- }; B. S* `) E! e% Q. S
' ^* B3 U- }9 P; n( P6 Z/* set default diags mask */
' ^/ X7 Q$ A7 E8 R* hvar Diags = xdc.useModule('xdc.runtime.Diags');
5 a7 t2 h6 D5 K6 u6 m7 o- Ivar Defaults = xdc.useModule('xdc.runtime.Defaults');2 t2 J6 C2 p8 z% z
9 p0 G4 D" m% N4 |" h( l- Z# H% h
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
3 a j0 n" t7 Z- X" P$ j* xDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
) L: F5 `$ Y7 \Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
+ W7 R# \5 K3 f+ v& A8 x. T7 RDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */. t" \# x% n- Y( F
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
6 I& v9 h+ g9 }2 m+ Q. j: eDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;6 J6 x) ~9 O$ M7 N/ O+ n
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
" t' K3 H; l5 T' | }, B4 vDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
$ N+ q) @' @4 _: KDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;+ _( r) T1 ~ U+ N1 T) E N
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
6 x# B, w! A( w9 c" B% VDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;8 `9 K6 }; p1 K L/ \
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
, R4 g2 X, y& J! ^! }Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
3 d. ]0 I3 y8 B2 Q/ y `Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
0 o$ x# z7 g7 a8 H- ~8 H
' f; F" c7 t( _5 I" D- @/* override diags mask for selected modules */3 m# W" X3 z4 d" O$ G2 N
xdc.useModule('xdc.runtime.Main');3 @/ N/ W$ b* I) b2 d1 F. M% i
Diags.setMaskMeta(
% F. y" V5 ?- P0 \& I! y2 C' J "xdc.runtime.Main",& [+ _) J* K+ ^/ O0 Y
Diags.ENTRY | Diags.EXIT | Diags.INFO,8 u. U+ {9 n" i3 ^
Diags.RUNTIME_ON
) Z+ c" _. p6 c0 l& I2 D: z3 M# j); V8 O) d' m, C# X& ?
7 _6 ]7 {7 Z( k$ v K
var Registry = xdc.useModule('xdc.runtime.Registry');
! r8 w; n0 v+ b b, i$ i; S. m% `Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;1 W- G5 P2 L; T# F7 j1 S
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;' w# f! M- }4 E! V
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;: k! e$ x( p' M8 l i+ Z9 h
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
+ {- ~' d2 X$ u6 Y2 z0 Y
* s: l7 y* P. v9 A/* create a logger instance */3 J( w/ ^* L) d# o! E$ K
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');% {8 U- g/ S2 Z
var loggerBufP = new LoggerBuf.Params();5 g, Y2 J$ j. O( u. J8 X
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */$ Y: \* D9 U5 V
loggerBufP.bufType = LoggerBuf.BufType_FIXED;9 q' [' e' X2 g8 {
* W3 D p! b1 `+ I4 ~
var appLogger = LoggerBuf.create(loggerBufP);' ]( @4 E0 l) Y; r, Y% s5 U
appLogger.instance.name = "AppLog_Core1";
9 E! Z# m9 ^! A: K& W2 FDefaults.common$.logger = appLogger;
$ q- k- G: G* b4 L/ R& ~3 ^- sMemory.defaultHeapSize = 0x8192; 6 x% i: w( N, O) Y# h) c8 H6 N
Idle.idleFxns[0] = "&LEDStatus";% \ k3 d$ k' u: M% W# s* a
Cache.initSize.l2Size = Cache.L2Size_32K;
7 @: W) k* Z( n8 m
$ |$ I* o( I6 Y# u |
|