|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明+ u+ r3 v* h+ Y' A% C H9 a
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下8 N" o- q! {# ~ C5 k2 p l
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)1 o. d! [ P8 \1 R. d$ H7 z, w
+ Y; |5 P/ {3 f- @ U" n$ \, T+ a
是不是需要在DSP.CFG中进行配置% I" e9 ^. `/ `
我现在的配置为
! \$ }% W8 u2 K" Z$ U8 } g2 ~
3 x) ~( Z6 y# x! k/*
3 y2 c0 [0 U# \; I; Y * ======== Operating System Configuration ========
" x4 S( H# ?# ~1 O5 _/ H */
9 X% w; l" G/ H% |# M; e s$ e/ h2 x0 d& Z' \
/* no rts heap */+ N+ P+ Y- G3 x8 H/ ^
Program.heap = 0;% d' K- L" F+ \# t3 C* v% e6 t
Program.argSize = 100; /* minimum size */
! R5 K: Y j4 {6 V0 W5 N1 p- uProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大/ e; w, c; U3 @+ ]# S- [ }7 ^
2 ~6 g3 W; B, F$ M/* create a default heap */% Y! q6 a4 ~! R p
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');) o9 M3 ?2 W2 s8 |% [$ T8 W7 x
var heapMemParams = new HeapMem.Params();% t- L4 {: l& ^* N9 J# \6 @
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大* @1 c" [+ U+ K- r7 E4 F( k3 l
6 ]! k( d5 T: }' k* d7 N
var Memory = xdc.useModule('xdc.runtime.Memory');
# C9 F& q) ~& x2 {! l% V* y1 zMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
0 A7 Y* A. g+ y1 h8 I
0 }- d" ~% ?3 H9 x: o8 Y/* configure System module */
; D" |7 h9 y- Y7 ovar SysMin = xdc.useModule('xdc.runtime.SysMin');
0 r( k e& s2 y( T @" pSysMin.bufSize = 0x1000;
0 _1 {: R2 _; E2 _; PSysMin.flushAtExit = false;
' f l* m- c: o/ C% \3 a' K4 p7 _* y0 l# }1 P# \+ ?4 A, q* V
var System = xdc.useModule('xdc.runtime.System');# B8 W% q: U B$ _
System.SupportProxy = SysMin;
. ?8 C& P" Y2 c- `1 u6 `9 c) j) `& Q! [' F# f/ i) x( j
/* configure SysBios to use the lower half of Timer 1 */
& T/ k) N0 G. l9 nvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');. D. N0 E6 c' G2 |9 p( t* _
var Clock = xdc.useModule('ti.sysbios.knl.Clock');3 Q6 i$ ?3 y$ N# _0 o5 t
Timer.timerSettings[1].master = true;
* `. z1 l8 g9 b! c* pTimer.defaultHalf = Timer.Half_LOWER;
6 g4 L+ y- x4 ]; D0 T2 ]" c4 B1 AClock.timerId = 1;3 h0 I; [* p3 f1 o3 s
! m: q. w% \1 U: J( m- V _* ^3 k2 m% M! I
/*! E$ e" Z8 O" V$ A" f7 j
* ======== Miscellaneous Configuration ========
7 j" F; j! ^3 P% O s6 G */
' ]( v& j) v+ @; O* `; ]& R4 _9 I7 t, X# E9 g
/* set default diags mask *// I) T2 C7 |% y) u% V/ e$ y
var Diags = xdc.useModule('xdc.runtime.Diags');
0 Q$ t6 f1 ?8 f. R) n- Svar Defaults = xdc.useModule('xdc.runtime.Defaults');" T* p9 O- g8 ~6 a7 u% f7 {
: D# G; P7 |7 |( Z5 mDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;, p9 x* W) g* e2 n! r2 U4 s
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;9 [: |- \6 A" ?4 i( u
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;! I2 Y6 _- `7 Y- N0 V7 `
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */" ?. o# v+ y5 z! R
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */" z% T- P# h" E* M; H
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
2 U! \2 Q# ^) VDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;4 q( e- K \% _0 K
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;6 R* r+ a. B0 e7 i% S
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;3 t9 {( Z( n# V
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;$ {( S+ }" k' x6 r* l; v& ]
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;- O+ k- h* I5 U/ `3 [% h
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;$ t/ y% V# g4 C3 [
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;( R5 X! z; m, M
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
" W5 A9 Q# ~* }6 ?: o
6 R3 E2 X3 W) B) |: J }5 Z9 s% b/* override diags mask for selected modules */
, b- J ?1 H$ r! Hxdc.useModule('xdc.runtime.Main');3 r* j! ~5 n( ^3 [1 i
Diags.setMaskMeta(
2 _' G6 S' u' k* W1 [2 R6 Z5 k "xdc.runtime.Main",, g P- p$ O% ]
Diags.ENTRY | Diags.EXIT | Diags.INFO,
( ]- d+ o$ p2 R, I4 d2 j Diags.RUNTIME_ON6 q$ B7 p& w% {2 _% Y8 B6 q- [$ j# V
);1 a7 h/ T9 e; N) L- c
W3 i! O5 U% E0 Xvar Registry = xdc.useModule('xdc.runtime.Registry');% h. P4 E0 u8 ^! n" a& z
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;' d* B( Z0 A; E$ p/ \
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;. r+ \6 u" `# p' t( q+ M. r9 l
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
; r4 f3 u6 L8 J" ORegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
) B6 P" q( v/ ~4 W5 p, M# W$ F% ]& m/ F. J2 C9 @- u0 U. z2 M
/* create a logger instance */
3 A5 U. G& F8 @var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');' u. [3 z3 z; b, H) |* |% d" Z, P7 n
var loggerBufP = new LoggerBuf.Params();
" k& d7 O+ s3 I9 O2 `7 XloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
7 {3 ^8 [, Q" n1 {8 u0 D( QloggerBufP.bufType = LoggerBuf.BufType_FIXED;
+ b6 Y) t6 j1 a7 `* r: x4 ~1 k0 y; o; l5 ~. X Y' s# ]8 r
var appLogger = LoggerBuf.create(loggerBufP);- s2 Q, L% d1 i' N' V5 [
appLogger.instance.name = "AppLog_Core1";' @' J$ O& R) [) S+ s& W* O3 c
Defaults.common$.logger = appLogger;
# R( \. C3 d6 }- v, g2 EMemory.defaultHeapSize = 0x8192;
2 w+ _' }3 ^( D2 Z9 s5 F- `! IIdle.idleFxns[0] = "&LEDStatus";; h- ? h# Y+ H' m4 Y8 q
Cache.initSize.l2Size = Cache.L2Size_32K;* }8 a% b6 b* w6 S3 N( b
/ \+ Q+ T- S8 a; x) j% e( k# u
|
|