|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明" r8 y! c1 @- l, t: x5 P
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下+ q6 z2 M9 J- d: R$ ]
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 y; F8 Z( M- V0 [
7 i; q: @, e) U W. c1 @2 v' m
是不是需要在DSP.CFG中进行配置; R; K5 n% d) T" }( n; b3 _
我现在的配置为7 H1 |0 l. M$ k: E
; |0 ?8 v3 U2 s0 w6 {: V3 B& r
/*. C# J8 a" y& ^' D) X
* ======== Operating System Configuration ========) H. m- _6 ?/ ?' R6 n$ n
*/6 p7 E: k3 t! \* g5 Z- a6 l3 N1 S
( v+ a* W7 R ^7 F2 x( u
/* no rts heap */
2 R$ Y8 E5 I. K# ^Program.heap = 0;7 w5 N% K7 u' h# @' s
Program.argSize = 100; /* minimum size */3 A& E8 M7 {! `( T
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
& I. l- @' S! n/ q
: q5 R+ _$ J! f/ l- A* R, L2 T/* create a default heap */
. N7 G: D& e* i3 _9 R- E. nvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');9 s/ O0 Z) ~0 v, o- V) z( d% `+ ]+ g
var heapMemParams = new HeapMem.Params();/ T' D3 J1 @/ G1 }. J# A0 W) O
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大$ w2 n+ e$ ~, _( w1 t
/ E/ h* I L0 M3 gvar Memory = xdc.useModule('xdc.runtime.Memory');
# [' L+ |! G# C2 F+ ?Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
9 P- n* h. N U2 _9 j" j/ p' N
$ D: v# U- I# Z% f- H9 B H! V' L$ G/* configure System module */
; B c" B9 ], k; W0 s# |var SysMin = xdc.useModule('xdc.runtime.SysMin');* X1 R' `& q. P
SysMin.bufSize = 0x1000;
# {& a6 x; z4 v/ \' E( C+ y5 XSysMin.flushAtExit = false;
5 F+ c# H( h8 H' l% r9 l4 J) a/ _# O- A4 ]
var System = xdc.useModule('xdc.runtime.System');( h+ y, d4 l3 m4 ?
System.SupportProxy = SysMin;
! X' s- `/ N1 R: K" e$ x- ?6 S1 ]+ p. J5 J( E, Q, u1 g0 `! s
/* configure SysBios to use the lower half of Timer 1 */% j( e: Y$ t+ @; U
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
|8 }: B" B. D* b- }8 D! Nvar Clock = xdc.useModule('ti.sysbios.knl.Clock');4 \5 m/ r3 U8 R% r& P: P
Timer.timerSettings[1].master = true;
3 E0 [; M8 g6 n( m+ u7 g' U+ XTimer.defaultHalf = Timer.Half_LOWER;
' }2 N- a7 S V9 {) s3 S# k: ^Clock.timerId = 1;0 F% X% @) g, a1 N X; ]
& S: A% d8 F. ^) |6 |- D' _0 u5 ]# `8 N D! g: s& v+ A
/*: R' E9 r4 u' D
* ======== Miscellaneous Configuration ========
& I8 M4 P) |0 S+ t6 r0 Q; e2 x */
9 v/ [, {+ i: W# G6 C
( {( f. S+ j$ x2 d! Y3 T# L* p/* set default diags mask */
7 ~8 b4 _/ r) t+ t# ?- pvar Diags = xdc.useModule('xdc.runtime.Diags');9 ~4 ?2 Z( H j: I: ]6 X; E
var Defaults = xdc.useModule('xdc.runtime.Defaults');
+ U) z9 T6 ?3 K2 [1 j" c o4 y
3 v. l: ?/ W* G F1 L" r: d$ T6 M3 gDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
4 P; ?) Y v* E. {4 X/ bDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
2 P- M1 |: K. Z3 e/ e8 }4 |) EDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;* h; c, [5 N7 ~8 A' g" u! `
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */( v6 O! [0 c8 {& j
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */' g ~, [# ~! D4 k( {; P
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;* B) h4 l1 S, B, v1 V$ ?4 W
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;- H) e/ f: ^# y& C! }" J/ s
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
# o6 \: L- S! r! ^6 mDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;9 V' n1 X7 [' |" M |8 m8 Q
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;) p2 N X8 w9 T
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
: l7 ~5 ?6 R8 J! q5 t* h5 @; ^ aDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
' c: q( ?% i6 w" R+ Z9 e0 `7 [Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
G" H2 }0 I8 L' V( `8 eDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;* K$ H' |+ o+ j9 I6 Y
5 s) L$ Z. r0 L( Z3 u
/* override diags mask for selected modules */
# q8 d3 j, P7 q6 {; Xxdc.useModule('xdc.runtime.Main');
/ D0 A9 E; v2 T X; {+ JDiags.setMaskMeta(% G' r1 I$ ^& u! U
"xdc.runtime.Main",
a* D- o8 Q/ B! x Diags.ENTRY | Diags.EXIT | Diags.INFO,7 r$ v; Y! M/ I& |& F, q
Diags.RUNTIME_ON
2 U$ J& B2 x8 j5 H' ?0 U+ _, v);
( o; z }0 T) g2 R# b4 {6 W5 S. A3 S d
var Registry = xdc.useModule('xdc.runtime.Registry');
! Y! o e" c% k g' C" IRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;3 m, x$ a3 x# }! s' g
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
, v2 l% W9 ^5 x, X, LRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;6 M. C) E6 \7 }3 k; u) r
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;% ^0 b5 T6 c. O0 @1 z$ x
, W5 b1 Y0 U4 W
/* create a logger instance */
) }, v4 I' L) r0 L' x$ |$ Qvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
8 u# A Q$ t! ~3 q! B0 J1 tvar loggerBufP = new LoggerBuf.Params();
& ]! _& ?$ t' y$ u9 iloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory *// C1 }- s* W" L1 r R/ [
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
# r8 n2 |" X1 b: J6 u3 q7 B. |6 Y& T- Y- S5 G
var appLogger = LoggerBuf.create(loggerBufP); n' V# a/ V$ t* f
appLogger.instance.name = "AppLog_Core1";
, S* P2 G9 m7 X' _Defaults.common$.logger = appLogger;% G T5 t/ [! T) y0 s
Memory.defaultHeapSize = 0x8192;
+ \% `8 }" e( q6 ?0 l* _+ H$ tIdle.idleFxns[0] = "&LEDStatus";( f* x0 s* @! `; k+ P4 O6 ?; l
Cache.initSize.l2Size = Cache.L2Size_32K;& E# |/ ` @( t% M
% ?, M5 a. P6 u6 V+ r3 W. d. [) _ |
|