|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
, q0 {3 Q: c( ]! B- m% k2 [( W我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下! U/ Y$ E: v8 n( E; ?- i- a2 q. M
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
, O, H7 d0 q5 d; g! ~- z7 a) X! z8 v: d& [
是不是需要在DSP.CFG中进行配置9 G. v- F9 a* N! D) y
我现在的配置为
2 |" K( p1 ]+ K3 ?' m9 q( x' t/ s& w; n- H' M" H. c% ?
/*6 [( f0 i/ K; v9 X, k2 w2 Z& h3 }% ^
* ======== Operating System Configuration ======== o. {, ~8 U/ g0 _- S5 E
*/
! J- m" x: {4 o% {4 N4 |4 H2 u8 e& s2 e u: w+ i
/* no rts heap */+ T9 P, e5 d* g" E5 x- C1 Z
Program.heap = 0;
; T( D) Y8 X j- k( |6 dProgram.argSize = 100; /* minimum size */
0 s- o/ F* z- b) G" U: W& sProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
( L' q4 G0 y3 S1 M! B2 j% {0 F2 v. R1 Z: [, Z6 ?8 L' F P) J
/* create a default heap */
5 o# N+ L5 R" s% L+ a; b5 @$ evar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
" N: [5 s; u# cvar heapMemParams = new HeapMem.Params(); @2 i# o, @1 N% a
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; b- R% h! J& j$ u* \7 Y) y& s8 n
- _& w& G% X# C0 [) F3 `var Memory = xdc.useModule('xdc.runtime.Memory');: j5 V# r' ]% b. @6 x9 j* R8 u
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
9 l( B- S3 m/ B3 E7 u7 F3 z, C! G) R7 A) s8 \% L' j
/* configure System module */
' ^3 W* p3 [$ Z8 ?$ l/ b q8 X7 |1 Qvar SysMin = xdc.useModule('xdc.runtime.SysMin');
0 g7 c$ f" P+ |; RSysMin.bufSize = 0x1000;
" s7 H, h+ I6 _& wSysMin.flushAtExit = false;
" S3 M! p' n7 E' h
& p5 }6 j3 R) u8 @7 _7 K3 avar System = xdc.useModule('xdc.runtime.System');( Y# m1 S4 K" b! e# J W
System.SupportProxy = SysMin;
2 i8 W% J. t s, l& ?
7 B2 [+ U8 X7 d* \, D) i. Y5 Y. s/* configure SysBios to use the lower half of Timer 1 */
' n0 @/ G5 U6 ]0 Q+ R/ a# fvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');1 P; }/ ~/ R$ H- C
var Clock = xdc.useModule('ti.sysbios.knl.Clock');, w- {9 O0 w5 q
Timer.timerSettings[1].master = true;
/ { m) @; J7 E) {9 _. ^Timer.defaultHalf = Timer.Half_LOWER;) g) g* a) N0 L2 w( A
Clock.timerId = 1;1 L1 A/ N6 U4 r. a0 |2 W0 b
& }; c! J6 X3 D4 J! Q6 _& m
2 J$ w3 z" `) Z+ M# [! @% P/*! S- s) r- s- y: m4 u( J
* ======== Miscellaneous Configuration ========% \, r) E5 O2 g* z7 Q
*/8 n* i( X5 e. g
& Y. r! P" x5 G% f4 Z
/* set default diags mask */
9 i2 E* M+ i% i7 U0 tvar Diags = xdc.useModule('xdc.runtime.Diags');
7 h6 R2 ]' Z( R: k0 r/ F7 Vvar Defaults = xdc.useModule('xdc.runtime.Defaults');1 N6 `- w e/ @$ f4 I& E" }
2 p# j, B" P2 q+ x: z7 `3 S$ cDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
" t- F9 ^2 W, }* B7 G% V: iDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;* ~. l4 N9 l E8 X4 O$ E" a
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
: u+ r$ m" K* J- U6 ^4 Q+ `( l4 iDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */ B* H/ M+ [$ x8 H% z7 i8 T
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
2 A: c, u- |$ |! \2 ]/ [; O+ m$ hDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
; A) |0 @6 K' sDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;- X& x" P I) g5 |
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
) v9 @8 G$ Z2 o, g2 ~) VDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
) G3 a! z1 `" Z1 i* S- b4 \Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;4 F% f5 F/ W. K9 U* B! B
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;) ~% {) h# Z- h
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;7 w) a: ^3 N" e! T& N
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
4 z9 ~, f3 z- _' jDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
9 \. m3 _2 T$ E3 o# Z G9 M3 T5 A, Y6 Z0 _8 K% S y% g6 ^! E
/* override diags mask for selected modules */
, [0 k5 e( v) J( Y/ O6 V0 |/ Ixdc.useModule('xdc.runtime.Main');& x, V9 n! z7 B$ h# ?/ a
Diags.setMaskMeta(1 e) l6 Q1 a4 A# c+ g2 M$ h$ ]$ B
"xdc.runtime.Main",4 Y* U1 K" O: c4 ?- W$ Q
Diags.ENTRY | Diags.EXIT | Diags.INFO,
: P8 H& x6 I% ?0 b$ r7 K0 { Diags.RUNTIME_ON
! e4 F3 \* m: B);
3 z0 h9 a0 w1 r3 Y @3 B- T$ c8 X
var Registry = xdc.useModule('xdc.runtime.Registry');
& ~7 Y& ~& I( h' _) w. mRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;* d* A9 w e! T$ R9 G0 ~6 ^
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;; F. S( H0 i4 w+ B" D( i
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
5 m$ c P% @5 H$ G2 N4 b& GRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
O/ D! a# y R Y# D
4 ~) K8 e- G, x# J3 S5 n/* create a logger instance */. o$ ^7 y' B" Q3 p8 x; S
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
$ a; [8 [- Y* F" ]9 {8 i0 Qvar loggerBufP = new LoggerBuf.Params();# \2 K1 A+ v9 o; @) Z' Q" h7 ]& }
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
+ e2 Z1 e7 `% J0 b, O1 r# kloggerBufP.bufType = LoggerBuf.BufType_FIXED;
$ G7 J1 ~) L& E' A* j" u4 H* i# x& C/ B# R3 J& E* V- s; p
var appLogger = LoggerBuf.create(loggerBufP);
. T3 b* ~$ P7 Z9 h' ]4 @: xappLogger.instance.name = "AppLog_Core1";3 d8 d. |. @ y1 W
Defaults.common$.logger = appLogger;7 f& W. X( N; w3 ]
Memory.defaultHeapSize = 0x8192;
+ h, h6 C; W% R% @; DIdle.idleFxns[0] = "&LEDStatus";9 S/ h7 u$ }" D+ v
Cache.initSize.l2Size = Cache.L2Size_32K;
: O! W; F. ^0 t. o
$ q& [& v8 Q2 b" ]0 [( Z* Z+ C |
|