|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
2 U( ~6 B; y: I$ T+ E, S! |: ?+ x) Y我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下2 {9 q' s# D3 c7 \
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
" `+ R) D. k9 s) K' ?) _1 B
) H3 \5 Y+ a1 [( J+ o是不是需要在DSP.CFG中进行配置7 o3 W' q2 J7 c) t1 v& Q( h
我现在的配置为( [/ ~4 {2 j& w" _
5 k c$ `' T) K& l N3 a) V5 K% ]
/*
1 f v- o5 `" E7 f- O9 k: y- L * ======== Operating System Configuration ========4 _6 ^0 L3 M9 w6 d
*/3 Q' [+ \- F# o6 \& k; j
1 B$ g1 B9 N. b0 x/ l0 w
/* no rts heap */( X, a. x, e5 N: U I: E/ Q
Program.heap = 0;
& K7 [' R! u4 f' b7 O/ U! ~Program.argSize = 100; /* minimum size */
/ _, o) N% t0 d; o! y' |Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
3 \! C; u- |5 g9 j9 ~& @# |0 X
* e: k8 }5 g0 z/ \! h2 r/* create a default heap */" P% R" A) Q* m/ Y
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');% q$ o' w! G9 u3 X( [$ r
var heapMemParams = new HeapMem.Params();
! ?8 T |# Q& uheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大( ?) w) _3 C; X
/ R9 e/ ^1 q5 c( x9 J
var Memory = xdc.useModule('xdc.runtime.Memory'); d( _8 {. F/ p& J
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
+ R2 g# q3 {+ G1 s" ~1 g' C' P' d& }! r, Y5 J* C+ @, u' C' [, @5 F( e4 W
/* configure System module *// S8 y1 J: Z3 w
var SysMin = xdc.useModule('xdc.runtime.SysMin');
( o. f0 M$ y3 _' S$ m! D% b5 xSysMin.bufSize = 0x1000;
' C$ r+ t& h- |0 ], DSysMin.flushAtExit = false;& `% A5 O( s7 E8 W, _& p9 E6 d
( @! T( F0 r4 S- n* n+ m0 svar System = xdc.useModule('xdc.runtime.System');3 R; L$ M: @, ~
System.SupportProxy = SysMin;! n2 {+ J. X1 ]/ G; J+ b5 N
. @; ]! J2 \' Z, [4 H3 j+ a1 |/* configure SysBios to use the lower half of Timer 1 */
: e2 o6 T$ q9 {2 ^1 gvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
$ ?2 g; y2 E, m# V# d1 C0 E% \% B8 U6 Avar Clock = xdc.useModule('ti.sysbios.knl.Clock');
# @ I) M$ M& V6 dTimer.timerSettings[1].master = true;% Q! A4 }: A- }6 F: [
Timer.defaultHalf = Timer.Half_LOWER;
: F3 q! }# f7 J3 I$ {7 z' G1 xClock.timerId = 1;
6 E0 m/ Q' h4 O$ t$ r- X n- A! |* v+ G! P, v. ^$ h k8 h
1 o# y; k+ d Q
/*
- i9 I7 v% Y9 i, m * ======== Miscellaneous Configuration ========
: f$ D- K+ w4 y, T7 } */5 l& D7 j5 \" T% D! a% I- I' i
7 J# I5 P* x. {, G' g. o
/* set default diags mask */9 W2 L) X$ X: K. a
var Diags = xdc.useModule('xdc.runtime.Diags');, U8 T# _8 ^, t; Z3 z6 T
var Defaults = xdc.useModule('xdc.runtime.Defaults');
/ V* T: ?* {, n5 Y9 D: o3 R. ?" ?% z4 w4 o# B [
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
) S9 r% w3 Q- f6 c1 xDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; P' z1 k2 G8 J3 m( |3 z, \! Z
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;7 {6 J+ {9 H/ w8 Z3 @
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
- F- o' |) N- f$ y7 G. Q2 S/ k! GDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */5 H* \# g$ Z3 O! ^9 j5 S5 n% ?
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;# F! W' L. u$ R ~: v
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! O, S3 s- |! \& U2 [$ m
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
% u- [2 s* i0 Q) p6 CDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;; X4 @7 w K& ?6 R) c( W
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
+ X f( o8 f oDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
: Z3 H g$ G. `5 lDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF; h' u# k+ N; \
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;6 j" |6 p8 u7 F/ u8 R( Q- u; s
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;3 e5 N! v# O- }0 J" E' g
6 `" X) S9 l! j, b
/* override diags mask for selected modules */
% @' D& ]5 M: J% o* T. Wxdc.useModule('xdc.runtime.Main');
, \- ~4 p' g/ W9 G; ~% c1 H+ {9 yDiags.setMaskMeta(& V: L1 B" h. H$ S& q1 h
"xdc.runtime.Main",
d$ p. n- j& q4 _, T Diags.ENTRY | Diags.EXIT | Diags.INFO,
3 j( X' n; k7 \: X4 k Diags.RUNTIME_ON4 b* G+ K% g2 k0 L4 M/ ^- }
);& l8 [( h# C- e$ m8 h5 {
+ H3 c2 L- U; I2 j7 |- n# b
var Registry = xdc.useModule('xdc.runtime.Registry');# Y7 ?$ s8 I( e: Y4 h" ^9 u
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
& ]* w5 I% N8 t8 P! M5 W: ZRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
- r% \$ r! q2 _. O6 cRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;! C& J* |- K; T5 n
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;% X5 K' ~: P' R9 S3 i M. x3 ?9 v
) |7 a0 _& D8 V" V
/* create a logger instance */
% \8 K# t/ Q* S* Z+ i( Uvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
) a$ b& U( B2 g2 S1 N. N) mvar loggerBufP = new LoggerBuf.Params();5 [9 z3 t% V" n/ P3 y
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
P& e9 \4 C+ y9 @1 ~2 L7 V" {7 @/ \loggerBufP.bufType = LoggerBuf.BufType_FIXED;
+ x5 C' _" l. _- O. s, i( d( X9 I5 C0 a& N4 F- g
var appLogger = LoggerBuf.create(loggerBufP);
- _6 U- }6 s4 G3 a2 PappLogger.instance.name = "AppLog_Core1";
$ E4 E- a* r; d, _0 CDefaults.common$.logger = appLogger;
- R- `8 m, ?. `. u: TMemory.defaultHeapSize = 0x8192; 6 J! Y- `& R4 Z' K
Idle.idleFxns[0] = "&LEDStatus";/ s- V% P+ J5 p4 C+ l1 ~6 B D, K; \
Cache.initSize.l2Size = Cache.L2Size_32K;
( H1 p7 h0 ]# W9 y/ T8 \/ E; G, |, t3 V
|
|