|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明# I# U7 z9 J1 n5 P" D
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
. Z, v) O0 {& Z6 N! Y5 V(不过疑惑的是,为何单独DSP仿真就没有问题呢?)* Q* F @* ^& w% ^" F& _
5 C+ }) Y& u6 V0 |0 k I9 p: c- k, r
是不是需要在DSP.CFG中进行配置
4 R3 F2 V, \/ }4 v; {我现在的配置为
5 V0 ?$ P# l& I, a- I* }
" |2 E- P$ k9 }; [9 R* }/*+ q- s0 V0 b# |7 |* h
* ======== Operating System Configuration ========1 [, t- z- [; }' o
*/
" X- R# D1 }$ [$ ~
7 K. U4 N/ d5 S, R' c" L/* no rts heap */
$ n$ T! T& r6 [7 I3 sProgram.heap = 0;3 R* O- }- R8 {
Program.argSize = 100; /* minimum size */
+ v6 c" O6 T: gProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
% }' z' @# p& s
( `. e* P5 R" l. Q4 n/* create a default heap */6 Q$ Q4 R5 h: n9 Z0 F
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
9 u# V5 [: G/ t3 E+ v( v7 A' V% Pvar heapMemParams = new HeapMem.Params();
' B1 p0 p: C- F2 Y) I6 NheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
3 n% J m G! \1 l6 A
$ p* O4 f. ]% W8 G+ Q/ Svar Memory = xdc.useModule('xdc.runtime.Memory');
9 W) I7 Z; y9 q$ O+ \# K% b' C" LMemory.defaultHeapInstance = HeapMem.create(heapMemParams);5 c% S2 ]; o4 T4 Y3 u! X4 r
2 g$ T/ F7 F% D* q) ~8 } g3 ]/* configure System module */
5 g/ `* F3 p$ e; Wvar SysMin = xdc.useModule('xdc.runtime.SysMin');
/ s6 d2 i. k K2 O( KSysMin.bufSize = 0x1000;
) F$ A' w$ g' d3 h# J% g! ~& }SysMin.flushAtExit = false;
4 p' I4 z4 G: S3 k7 m: K/ J) O; B0 ^* w' G' N
var System = xdc.useModule('xdc.runtime.System');
/ O3 r8 V3 ]7 R9 v; vSystem.SupportProxy = SysMin;& S* j# U8 O, c- z9 p% t
6 Z2 x+ ]# A0 j
/* configure SysBios to use the lower half of Timer 1 */0 m4 ~' M* M% |3 f
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');* h0 O6 l4 H; _6 Q4 H
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
e/ _$ w! S; MTimer.timerSettings[1].master = true;
% p2 e, M6 T! d4 K. I0 MTimer.defaultHalf = Timer.Half_LOWER;
% x5 X( o) h( Y# B* O* GClock.timerId = 1;
$ d: c+ x: z# k( w$ P& q: o% J, g Z2 F. @( E: S7 F
4 l$ e# l- p5 l' s7 v( ^9 K/*. q' W# V1 C. i8 N& n" n
* ======== Miscellaneous Configuration ========
6 t. }0 Y2 Z ]" a */
# m! v3 `7 ?; D# D4 \0 Y3 d/ d& ^9 z$ n$ P/ o9 p
/* set default diags mask */& o t$ j8 ~. p2 \8 c
var Diags = xdc.useModule('xdc.runtime.Diags');
w' x$ L! I" W( p) w% f8 |var Defaults = xdc.useModule('xdc.runtime.Defaults');
- g/ A: N6 ^9 ?6 y) E
. K0 {- E+ c# B ?( G* Q4 g! jDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
. E# j8 z0 D3 o8 y7 O7 MDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;" B1 T! v. i5 f6 @+ N$ K* l
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;2 y& r8 r# H# C1 a" X2 g: m
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */( J. q7 B4 O6 V! v2 \ [
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
) P' n2 o2 [/ j/ _9 f+ ]Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
% V. l) F# Y' _: l2 ~7 A6 cDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
3 [" }; p' k: S \Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
2 A+ s4 X; ]& V9 g: h3 r" } j& @Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;5 k/ w& v) Z- H1 X1 T" f F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;8 A. U, D: l8 P+ a" k
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
K0 d/ t1 H! \& D( z. @0 fDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
" S" E+ y% f4 i( c, qDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;" I0 b8 _! O' k" f$ H& L
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
' h3 k9 N+ J \9 g+ h% w# c) K- J4 j/ c0 N
/* override diags mask for selected modules */
+ z4 j! B- i$ L b; R# L; |9 zxdc.useModule('xdc.runtime.Main');
% q/ }8 ~* J: ]7 y0 o: {Diags.setMaskMeta(
8 u; `+ l/ ]0 R2 ` "xdc.runtime.Main",3 J$ Z. i. L' o( ?
Diags.ENTRY | Diags.EXIT | Diags.INFO,$ J! q) U" X+ i4 w$ D0 m
Diags.RUNTIME_ON
) U2 T p& ]0 v q);
U% c+ @9 S3 o& _; w& K4 Q' O2 ?
N1 Z4 c- ~% b; ^' n5 Cvar Registry = xdc.useModule('xdc.runtime.Registry');
+ Q" L9 Z" r# h! L+ o- N3 r4 {) @Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
8 F6 w! q4 V. @& L/ o' b% }Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
, [0 w0 \$ t, d' N, mRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
1 o5 `( p; R. @6 |3 Y8 }; VRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
* T) M& u7 G4 \% V. M5 M; C) B- E; v1 j- \. R6 V) P6 h# W2 W
/* create a logger instance */! H0 U4 ?) a4 l# p6 q( \
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');, m, K5 e& V' D" |/ U" B
var loggerBufP = new LoggerBuf.Params();
6 j1 Z9 _* _7 W; AloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */; m) O# H7 M7 @& _& N+ i" _
loggerBufP.bufType = LoggerBuf.BufType_FIXED;; Q5 [1 l! }$ [$ B
2 N) z- \* T7 w" a- Y
var appLogger = LoggerBuf.create(loggerBufP);- X* n. U, U8 ]9 y. d0 |0 J2 E. U5 Y- t
appLogger.instance.name = "AppLog_Core1";
/ B: q$ f' g" m5 I1 lDefaults.common$.logger = appLogger;* S+ O* D. D0 Z" N5 ^- C
Memory.defaultHeapSize = 0x8192; / _6 Y2 Z% v: Y; q4 e; C
Idle.idleFxns[0] = "&LEDStatus"; H: h* R* L: s6 P2 F: t
Cache.initSize.l2Size = Cache.L2Size_32K; x: t2 P2 O" u8 q8 u
; g$ N L+ P5 @8 t |
|