|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明* p: d {, t6 X9 M. I! Z7 R9 f
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
& L" K& @7 h3 U* ?( U2 Z9 G; {% n5 \(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
( ?$ j( B [' r' W! v% V/ |* X+ f% w" E7 O7 x3 g
是不是需要在DSP.CFG中进行配置
$ r. N2 ~3 z, |' I我现在的配置为% i* y# Z$ M8 @( |
3 o" H! J" f; D* Z: U. ?& }: S
/*
( w: M. D U; A) ?% W$ c * ======== Operating System Configuration ========0 H2 u4 }+ I* S o/ {% b r
*/
. _" |7 j* L$ ~/ w
# O9 i+ E: x3 v& ~6 x2 n' ~/* no rts heap */2 F/ Y' b+ I0 e6 N$ b
Program.heap = 0; z1 B# Y8 p' Z1 y& u
Program.argSize = 100; /* minimum size */
: q/ B, l @* J' O7 z4 q) vProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大" w' y- l1 H1 m
; d8 ?! W, u; N: O! Z1 [/* create a default heap */& E6 H1 S' K' p9 [- L+ K, V8 t% c9 h
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');) z! u/ Q; k# s6 M( @* u! w% r
var heapMemParams = new HeapMem.Params();5 J0 ?/ M9 n. M0 A
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
. {4 s: m& d+ \0 C. V: T. s) t$ X* X" M0 O4 B+ K
var Memory = xdc.useModule('xdc.runtime.Memory');' w' W5 R8 R1 Y# p9 J
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);; D. [4 n3 H& R! p! w$ b
- B; a* Z- R5 ~' l
/* configure System module */
* n' f8 w0 r* H; x( H' ]( f7 V+ xvar SysMin = xdc.useModule('xdc.runtime.SysMin');
- D: w: N P' M! TSysMin.bufSize = 0x1000;" g% X! C$ v; ^4 \* }
SysMin.flushAtExit = false;' A0 c* n" H7 `& J. \2 n
8 r6 L/ i# D I5 S% Jvar System = xdc.useModule('xdc.runtime.System');
; e6 |' w' Z4 h }4 `System.SupportProxy = SysMin;/ A8 M2 Z9 Y( g) a
3 X) M0 u" q. | I+ i
/* configure SysBios to use the lower half of Timer 1 */- g* q, } q/ e2 `8 l* M* p2 o2 F
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');: @2 e, i+ ?9 ]9 D0 W7 y
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
w! u* p% _& N0 @8 WTimer.timerSettings[1].master = true;. A- j: _: e4 t T2 S, _, K
Timer.defaultHalf = Timer.Half_LOWER;
7 y( Z2 N/ `! j# iClock.timerId = 1;8 c! } N0 m9 V; @* O2 U6 `
! Q& A& a9 U( i5 Q3 ?2 ~1 ]% Y1 o" S
+ C) a( W$ _% C8 W! Q/*, g* k5 M/ A" h: T+ u
* ======== Miscellaneous Configuration ========0 ]' h0 y6 c$ ?$ Z! L. a
*/4 j- h* D$ P; C0 E
- J7 n$ \) U% ~8 G' `0 _/* set default diags mask */: A. e( c3 j) }
var Diags = xdc.useModule('xdc.runtime.Diags');8 ]" B4 b# ^4 Z d7 H
var Defaults = xdc.useModule('xdc.runtime.Defaults');
+ h0 A N1 K3 q9 C
/ w# y& j; [& j. _2 i- D: }* H3 H3 FDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;! x+ X* I# K- @/ d$ x7 \+ e$ ^
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; J7 b" ?9 @9 h/ c& s1 L
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
: Q7 {$ f% p2 m7 \/ KDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 i) W+ \% E4 \+ X
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
$ k/ j1 ]" `; j) O2 z) wDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
1 b1 _& K! R; O) F+ L5 A& ]Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;! p5 X9 |: y( H* C
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;. o; Z1 B y' F6 x1 F% q
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
T6 f" g4 Q: @1 X0 V' |7 NDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
& P0 x2 r0 A+ v# gDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
H) a0 M% A4 A$ l0 H, B, i Z0 BDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;% T* |! k8 j, L9 s% Z$ t A. p& z
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;# [ g4 h. U p" A/ Z
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
0 @! M. R# P6 K7 S( w( W
) J2 l9 x$ [! i. T6 W* i G* @( T/* override diags mask for selected modules */
7 W& p3 _" d& u# A1 w6 T' oxdc.useModule('xdc.runtime.Main');
- L0 W8 N% v, b" W5 q5 o( @Diags.setMaskMeta(: B+ m q2 P4 U3 r
"xdc.runtime.Main",2 E, V2 T! T4 }& _3 N
Diags.ENTRY | Diags.EXIT | Diags.INFO,
- K/ b4 O% v% j3 M1 M Diags.RUNTIME_ON
% J# X, f2 p1 E8 m9 p2 Q$ j& A);
" Q0 I8 M. F; w- ^% D2 ?) L" g
9 X% @9 b0 j7 w; ]8 fvar Registry = xdc.useModule('xdc.runtime.Registry');( a Z' A: j j2 p \
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;$ L+ R/ @; O7 T$ J4 Q
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
$ I4 ]$ f& r% S7 S' F" PRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;' b# s6 b8 n$ v+ f
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;# p; B" V& J' z1 F8 d2 f! I
" ?- W3 c/ x: V! D
/* create a logger instance */
- w3 ^2 K( i8 A& e9 uvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
8 u F2 D& @( _0 i6 b: dvar loggerBufP = new LoggerBuf.Params();5 N) S% i3 p* j& i$ J
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
8 I$ \, y p- e+ O6 d% u$ l8 BloggerBufP.bufType = LoggerBuf.BufType_FIXED;
/ s& G# [9 ?3 R. v9 Y/ l
: U0 [' I/ _6 Y/ g8 g6 C8 `1 bvar appLogger = LoggerBuf.create(loggerBufP);* u9 a: Q5 A/ \
appLogger.instance.name = "AppLog_Core1";
; P* @( x3 ]1 v( _% cDefaults.common$.logger = appLogger;
/ B) w4 {$ D. O2 @& v+ IMemory.defaultHeapSize = 0x8192; 7 [' N' y+ J$ p* A# G! J' U
Idle.idleFxns[0] = "&LEDStatus";0 c& U, c; B n& d0 G+ S. _
Cache.initSize.l2Size = Cache.L2Size_32K;
0 }# H" j/ p8 ^5 \& Q0 U& _0 f: O6 g7 H4 C# o. d
|
|