|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
* ^1 Q, X9 X! X8 S: |, H8 `/ F我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下* s$ Q# \ U% o3 n/ u2 V
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
3 s' k! z$ v9 [/ U: c( D6 a! y; z; e
: a. k% U9 H c1 `9 i0 S是不是需要在DSP.CFG中进行配置
* i7 t$ d% M7 `& l8 P6 x我现在的配置为
+ n! Q3 g7 H+ a: B0 t) k/ r
# s/ L2 c& V' X. n: Z/ Q/*# Y. i7 @9 e- } r2 N& `+ G- u
* ======== Operating System Configuration ========
! r, ?! X: t" Z- ~( l# e& A */
" R6 u7 D& b4 v
e; Q) h% e, d) x/* no rts heap */
' j2 w6 x6 V" y# ~3 @8 l2 aProgram.heap = 0; u0 C+ o8 H. O! P( O' ?. B6 l
Program.argSize = 100; /* minimum size */
2 e! P) O0 |+ `Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大: J; G4 R( I# S& }) w4 J
2 a# O" m6 d' y1 n2 G: V
/* create a default heap */
9 R, T/ r+ M, P# ]- K* S; qvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');, A! d5 { I( @& s- @
var heapMemParams = new HeapMem.Params();
" x$ x4 A; p& G, Z' A; z% TheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大, R- `. o- C1 D' J8 S2 t
; T. C+ l5 z3 M& Z6 D$ g1 m. F
var Memory = xdc.useModule('xdc.runtime.Memory');
" H2 u, g" k7 ^% x* B5 VMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
3 n9 i3 z/ Z, X9 ~/ h/ @
. I5 M' h! s& _/* configure System module */
! U- @: C7 a. p* {var SysMin = xdc.useModule('xdc.runtime.SysMin');+ D7 A1 T0 ?* z6 r) y3 a, {* C
SysMin.bufSize = 0x1000;6 X. }" B) [8 |6 i, O! }" p \
SysMin.flushAtExit = false;
9 x( w4 B7 {4 u% Z+ @( e. w9 E! N: Y F) v( `' ?
var System = xdc.useModule('xdc.runtime.System');
0 D( k, }8 r* Y+ \( L. j4 B) J% rSystem.SupportProxy = SysMin;
# t1 ]' B- {3 c) H8 Q; q! X- Q5 U# p# H! Y6 K
/* configure SysBios to use the lower half of Timer 1 */
! S- G- {" I9 V* D- G5 G" S* _4 A& Mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
+ D% O7 r8 x( G1 ?8 cvar Clock = xdc.useModule('ti.sysbios.knl.Clock');% s2 m m2 [. O) [ G
Timer.timerSettings[1].master = true;! u+ E$ k! |1 c; y8 H
Timer.defaultHalf = Timer.Half_LOWER;' S: s" H8 b- K( c1 Z. m
Clock.timerId = 1;' p0 f/ p& V+ ^& `3 |2 \/ F$ N
( a# _8 r2 p7 y* z" |
/ p. k/ [; I) H+ c; _" n/*( O% ]' U6 u: _0 M: l+ z& o# X
* ======== Miscellaneous Configuration ========
1 ]/ D5 c V+ O! A( ]2 w+ X */
( T- f, C5 U( c6 k) b3 F+ H3 L" h& `3 t7 c Q5 d
/* set default diags mask */
, ?! i0 i' x$ z9 H3 Cvar Diags = xdc.useModule('xdc.runtime.Diags');
6 w* c2 `6 E0 `( k8 `! x; t, u3 Xvar Defaults = xdc.useModule('xdc.runtime.Defaults');
( p% K% M* S4 Q0 ^3 B
1 n% H3 u: ~) v# v$ |# x: C( HDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;+ ^4 I% ^- P0 g2 W& s g
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
+ n! X3 M- V) x+ E- c# _0 gDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
- Q' G6 N' E+ P0 a2 PDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 I+ {% r( X) ?8 B" s
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
# b% `6 y% N8 k5 f" {Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;2 f7 P3 P4 Y+ p- B: h1 s
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;6 ^, l/ U) y2 |
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;0 B+ j& n6 l* A0 w
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;* A' p4 u; W( @. V0 t0 ^& K/ o
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;) D9 J) o& D* ~* ]: S" L
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;" v" {0 C7 y7 l. k# }! ~
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;! h5 c3 D5 ~6 {2 r
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
; O# X6 |4 |4 U1 J, c n" GDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;, a- J; ~5 z0 C' ]* K+ i
* O# N: o& J& f# g9 @6 I
/* override diags mask for selected modules */: S6 a* ?' C3 @( |5 x; P
xdc.useModule('xdc.runtime.Main');. n' t6 k/ S s; M f6 Y
Diags.setMaskMeta(3 \8 b+ D7 q) q8 ]2 G
"xdc.runtime.Main",
8 h6 G: S# V1 O: L3 _# k7 m Diags.ENTRY | Diags.EXIT | Diags.INFO,' n' } t( g7 L, r1 j
Diags.RUNTIME_ON
6 }5 B7 q% z) }4 J# Y/ h' R);
" l: M- B( Z' v; b
# M9 a( }- z+ v- C& Wvar Registry = xdc.useModule('xdc.runtime.Registry');" d& A9 m. n- {
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
7 l1 [% g; `+ w$ f1 n" G2 |Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
# S7 t" F3 C% Q1 O& v6 L; q" LRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
& \3 w5 B! X- DRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
' q" O. t; G& p
/ {$ c ^( n1 `: c8 m9 c& a/* create a logger instance */, G ]4 K2 v s, d; e% ]* P6 j
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
9 C8 L( p/ n' t. |: {8 K( Ivar loggerBufP = new LoggerBuf.Params();; h; Q/ A0 b1 c% n
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */* j0 `6 w* n( w# [
loggerBufP.bufType = LoggerBuf.BufType_FIXED;. N; g& p* N! ?4 \* w' P
* [6 {- W; g" w8 p1 ^1 }4 yvar appLogger = LoggerBuf.create(loggerBufP);
% c& V/ a z2 m- Q3 n, M6 e! R0 OappLogger.instance.name = "AppLog_Core1";3 `- h; a, s; V+ e1 a4 p, M$ [
Defaults.common$.logger = appLogger;
8 y; G+ `1 [! s7 @$ TMemory.defaultHeapSize = 0x8192;
" c7 s8 m. B0 u1 @5 h. ~! gIdle.idleFxns[0] = "&LEDStatus";
/ H+ _% N7 N+ v T6 D. }Cache.initSize.l2Size = Cache.L2Size_32K;
; V' c: O1 k4 x5 \+ F6 s6 m' n. b/ V% E& Q; k* @5 ?5 V: o' C
|
|