|
沙发
楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
. q! c5 k9 S# D8 y3 ^6 }! [我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
) j; j- ]0 c* M% U( Y(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
) n( Q6 U1 r h* f; F9 P6 x) h: f/ E$ \1 j% b# [% C& C6 x
是不是需要在DSP.CFG中进行配置- z5 s1 g" \/ A* d2 D j
我现在的配置为
4 z* p- O+ M( m- s* ?/ Z) o9 B
9 X# J! W: z1 w$ h0 D8 H/*' x5 z( K* Y" w' W. g' F4 m
* ======== Operating System Configuration ========
' j- n# H7 `0 Y" s0 @5 B5 C */
( L1 J* B! n. |+ r3 m3 [5 v3 _# \2 L# b/ h
/* no rts heap */
) I& t1 L6 k0 P2 h. }Program.heap = 0;" ?, G* X/ J- k6 m& X& m9 l
Program.argSize = 100; /* minimum size */% U3 K0 r( `3 d, N! I! \2 R6 J
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大) ~2 [( k1 G T z# O
+ N6 [9 z8 x6 b; l/ g/* create a default heap */
! [% }( E" ]0 [/ w+ ]8 H! Mvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
* g# O' T+ q0 w1 H9 V+ [# Gvar heapMemParams = new HeapMem.Params();& }* C* B) `+ |$ x
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
# Y5 ^! @4 f5 x/ m' x& k2 A
( |8 E0 L0 f- U c) tvar Memory = xdc.useModule('xdc.runtime.Memory');
- ]8 C( K1 s) x! E2 b" r3 I( RMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
2 R7 o) c. q. J3 L! \& A: f, Z: w
! g! Q! i s5 G6 [0 n& {/* configure System module */
% k1 R5 C1 B. \var SysMin = xdc.useModule('xdc.runtime.SysMin');
- w! |+ G) }4 g4 {2 lSysMin.bufSize = 0x1000;' q# j) d' P* [
SysMin.flushAtExit = false;
3 Y6 v( [/ {0 T8 S' g" n) G
% l6 X8 ~$ z' {) L+ \. yvar System = xdc.useModule('xdc.runtime.System');2 m& z; O, b/ k2 r% P
System.SupportProxy = SysMin;9 \) H0 p: G* s1 q! D
* S! ~3 _% H# D7 T U' S
/* configure SysBios to use the lower half of Timer 1 */
1 ?* ?* o7 p2 t, pvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
. T# c) X. l8 z* f+ k" l( D% Fvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
: K; U7 q1 g, D) N3 BTimer.timerSettings[1].master = true;
0 H, i# k, f7 \# L( ATimer.defaultHalf = Timer.Half_LOWER;
$ o; J3 B' ~6 ^9 ~0 V3 e. ]Clock.timerId = 1;. Y- Q' j! j- S7 y% w
7 F; F, S' v% e3 U$ A6 Y
4 {& N. n/ [9 V0 `1 V" W
/*" g9 a1 u0 s# Q: q6 _; Q7 N) a
* ======== Miscellaneous Configuration ========3 ^4 E0 { j C0 u
*/
2 s9 N9 g" T/ I9 ]. F. e# G3 e( u! g% E2 u; N
/* set default diags mask */! f" U* D5 [4 s5 o
var Diags = xdc.useModule('xdc.runtime.Diags');* H$ p' o3 C: M" g
var Defaults = xdc.useModule('xdc.runtime.Defaults');
9 n+ ~+ l* p* O, j
" l h0 o$ x3 p1 a; ZDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
5 o! B5 c- [$ {Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
4 J5 f n. G; W; F" l, e* _Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
6 d/ r% |; y2 P1 S4 O& TDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
( F) L0 V. E% K5 bDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only *// Q1 |' @" d4 W; C9 U" B$ Y8 x
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
$ \; P- Z e6 J, l* tDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! `1 F, q& ]; ^$ \1 ?
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;9 C9 [+ q! R' S
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
+ E) ]4 C. T5 Z: O0 G* GDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
6 L0 t% y, b* O. ] r) fDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
0 C7 C! X q- S. D5 ?Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF; ]! F" ~- I @+ N$ w( I8 `# z
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
( D6 T! p' g; _Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;' e! V+ {8 A' @3 {6 M' d
. u- k. U# i. |/* override diags mask for selected modules */
y$ ~ _1 d3 Rxdc.useModule('xdc.runtime.Main');
5 E3 \+ A; S; m. x4 mDiags.setMaskMeta(
7 n' y- a7 v. J" r6 K "xdc.runtime.Main",
( F y. i8 q4 Y I% K2 n. m. q Diags.ENTRY | Diags.EXIT | Diags.INFO,1 c8 }; [1 c5 ~6 a# ^) R" R' Z( \
Diags.RUNTIME_ON, W! i0 l$ c+ S' b a
);" K7 B( u- E1 S
0 Z1 e- N- \7 ]var Registry = xdc.useModule('xdc.runtime.Registry');
5 `+ v7 A5 z) j( n6 RRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
+ V1 _' r* k, |Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;" p: n0 Z- m n- u1 [
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;- z' F9 Z, x7 h5 e( E. ?
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;) c# @* i% e: X1 m0 x1 K
) e1 a- Y3 P# L/ N$ h f
/* create a logger instance */3 M3 J8 [( ]/ H) V/ T' ?
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');! f* f9 }& X8 L: W+ \
var loggerBufP = new LoggerBuf.Params();
0 d2 s6 q. R' \: J. Q, P1 TloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */7 W) J, @8 E8 {( f+ |
loggerBufP.bufType = LoggerBuf.BufType_FIXED;4 _5 e! H% n* K; Z* s( S# i2 u8 U2 ?
/ _/ K5 l5 f. N
var appLogger = LoggerBuf.create(loggerBufP);
% _4 e, w# {: Z* j0 {! }appLogger.instance.name = "AppLog_Core1";
. A) S, n4 |$ h: i9 |Defaults.common$.logger = appLogger;
" H* @0 z6 z5 M6 f. [Memory.defaultHeapSize = 0x8192; 6 L) n/ d; A9 r
Idle.idleFxns[0] = "&LEDStatus";1 {3 ~4 r9 w4 C6 C1 j7 b! j' F
Cache.initSize.l2Size = Cache.L2Size_32K;
' W. Q( O' n/ u; K
8 K4 F* q% l7 Q+ G |
|