|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明% z' {* F5 I3 b" g8 J$ `
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, h# n. u' o" C( H# Z
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
; U- J4 c- {9 i6 L2 T$ d' ]3 k$ f; X2 p# m: @7 t$ {# e) X5 i
是不是需要在DSP.CFG中进行配置
. b% \3 h& k0 ~+ b+ D$ b1 K我现在的配置为
: `2 I7 G u a% n1 A
& H$ w% J* o0 t) P! O; r/*
3 v, F6 [8 b% m- S, s * ======== Operating System Configuration ========
4 l9 Y9 B6 n+ s */
1 P( O2 c! A5 ~- M( v( l) M, U, s4 |/ g' ^& a5 n- Z
/* no rts heap */' e% U% y) ^* H7 Z- S! |1 j
Program.heap = 0;
u3 f0 | D! }$ j1 ]3 D' KProgram.argSize = 100; /* minimum size */
: L2 L1 M9 q" z/ z+ ^Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大& g) ~% l' u9 H9 |* v
! X5 r/ J9 H( c# {, W
/* create a default heap */
; f2 o4 p1 Y( N/ I* C5 Ivar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');4 m/ K4 N% y; v- a! _
var heapMemParams = new HeapMem.Params();
, g) p2 j3 ?. O8 e G% aheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大- u. h' W/ J) }
5 [' I# Y. u9 h% {) w3 k' G' B4 n
var Memory = xdc.useModule('xdc.runtime.Memory');
$ }5 n1 D: K- I* GMemory.defaultHeapInstance = HeapMem.create(heapMemParams);' j3 |& _/ M* z" M; f
& I6 h/ ^( Y/ E" k9 J1 l
/* configure System module */$ M( K3 j* ]- K% M+ w/ c
var SysMin = xdc.useModule('xdc.runtime.SysMin');, q+ c( z( `. R6 c* u. s
SysMin.bufSize = 0x1000;
% d X! D+ J! c. v% zSysMin.flushAtExit = false;- }* m( ~8 `& W
9 d( [5 [9 Z# i& }9 l7 k U- i
var System = xdc.useModule('xdc.runtime.System');
% j" r7 k$ X7 u0 v) ^# VSystem.SupportProxy = SysMin;/ A5 k7 C$ _ X P, L
" ~6 [- f4 {1 x
/* configure SysBios to use the lower half of Timer 1 */
4 u( m8 [& j+ Z& ~) xvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
# }1 I4 s2 w; Y& Fvar Clock = xdc.useModule('ti.sysbios.knl.Clock');9 S ~! n: g5 g
Timer.timerSettings[1].master = true;
$ W* ^ H/ X2 P" e7 s4 c0 ]0 nTimer.defaultHalf = Timer.Half_LOWER;
& O$ Y _- A( SClock.timerId = 1;
2 s5 e! T/ a0 v2 Z j
' d" `$ v6 |0 T: L/ y/ v2 W( W
+ E$ L R. F* u4 u0 E# Q/*
* g1 l& i" I; m( d! P * ======== Miscellaneous Configuration ========8 e5 h6 {% z- Z {, t! e/ |
*/3 t( `3 W3 s5 Q6 `' R5 W
) k+ R: Y4 z8 Z- N: @7 m
/* set default diags mask */6 S. C$ ~- `. v( ~
var Diags = xdc.useModule('xdc.runtime.Diags');
+ G. z) q, }3 X) R0 ^$ P4 n) zvar Defaults = xdc.useModule('xdc.runtime.Defaults');
. g7 r# d- E3 Q3 c3 S) G
' p' V1 T/ f3 y3 }Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;2 I) t, b, L1 [) v2 W
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
: M; C; D" D3 m: vDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
# s; V$ V, q6 ODefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
, ~6 I' A3 ?/ |# i$ Q( ?Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */8 }/ i) ]$ ~2 g4 {
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;! h/ [7 b# g1 A. e: b
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
3 f0 ~. l, y! [7 |" g: ]Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;9 U, W# G' r; y I9 @1 C+ @
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;9 {& U1 P! J- s6 D: J
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;' i3 z$ C2 L! b1 U$ |
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;* [7 W0 |9 [* U+ b- Q3 I
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
% {! t/ [) @ G2 b4 g2 oDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
+ o3 K- K! I( a$ U( R% {Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
7 J9 k- t4 o5 [2 D( k+ w* E* Y2 a8 m& {. \
/* override diags mask for selected modules */
# J* K+ |" L: l: |xdc.useModule('xdc.runtime.Main');
; K! \ X, i0 u* J) h; JDiags.setMaskMeta(
% E- |. J l' a* I) {' F2 c "xdc.runtime.Main",
7 D2 u+ u1 v% ?. E, \& y4 p Diags.ENTRY | Diags.EXIT | Diags.INFO,
* {; R% o* _, K* \ Diags.RUNTIME_ON) ]" I6 k' [" Z( g0 x
);
! ^% Z/ Y$ E& H- p4 y+ b
. w i% E3 h* [6 D; B* V, yvar Registry = xdc.useModule('xdc.runtime.Registry');- ^* m! s" |, V7 u
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
9 n: x# R. Y( k1 A0 xRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
2 ?- m8 l& M+ DRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;/ |. Q6 l- o% a& l" S. f) L
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;8 Y: n8 O$ u7 t, H
2 Z, M' q! |* h3 o1 l# H [9 F
/* create a logger instance */
# S G6 z9 u/ ~6 Lvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
: Q! I8 |: t. G7 `9 T" qvar loggerBufP = new LoggerBuf.Params();
$ b' R( U( P XloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */$ o G o1 u3 a# W9 [2 ^8 ]
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
2 b: [- p6 |5 @4 G0 Z4 _7 [! e, c2 w+ U7 m1 }- ]
var appLogger = LoggerBuf.create(loggerBufP);1 l- {5 K+ B g# v& `
appLogger.instance.name = "AppLog_Core1";4 U' J$ V0 T: I4 i( O
Defaults.common$.logger = appLogger;
, Z( g4 u' a; cMemory.defaultHeapSize = 0x8192;
/ B/ @4 s! N7 T# B" d M1 U+ X3 o1 ^Idle.idleFxns[0] = "&LEDStatus";
0 V0 H8 A6 v1 l8 s6 R0 b; G1 eCache.initSize.l2Size = Cache.L2Size_32K;
3 y1 w9 e3 K/ b9 a
7 P" q+ M# N( L6 B' Z2 g$ ~' | |
|