|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明5 Z/ x; G& b# o
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下# F: K8 \4 {$ x4 R
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)! X) s: l% I9 f
: m. s% }8 B( m" g% m9 _& `
是不是需要在DSP.CFG中进行配置8 ^- l- m' d @1 h1 k) x) k, S9 U. i
我现在的配置为
& t. |, O# [* e( p1 D7 H# A1 \; [) m' ~" |; u4 T0 ]3 }6 D5 v
/*& h$ [) j' t. o6 k0 c( ?
* ======== Operating System Configuration ========
0 Z8 p' S( h+ J5 i9 ]. B) w */
7 w6 v: v2 P: p5 } @/ j E
# V; J$ d3 t7 w' B/* no rts heap */
" m+ a" E3 o: b8 a/ h- IProgram.heap = 0;
9 e( @: i4 J% V* S1 Y, Q& e7 FProgram.argSize = 100; /* minimum size */
& P* d. G5 @$ [Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大1 ~: [3 Z3 {/ Q+ |/ c' o# D* @6 |2 L# W
8 h- p1 z$ Y$ K: h' j/* create a default heap */' L3 h+ ^) i5 D( o! j) h( }' L
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
2 V' ~9 Y( b; B( |1 z, Uvar heapMemParams = new HeapMem.Params();
4 `2 _, |6 e( o( \) F% Y' ~& vheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
# W# q3 u K* U- ~5 o
9 I7 N" k2 x" B; Y& h7 P& dvar Memory = xdc.useModule('xdc.runtime.Memory');# p: }* Z8 ]( J
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);& K% y- E5 ?2 B5 r, X' o$ W3 W
; v7 y7 a. }% c' f# \/* configure System module */
0 J. Y3 Z- v% u- N* hvar SysMin = xdc.useModule('xdc.runtime.SysMin');1 R- r# Z; Q+ E- y( Z4 y
SysMin.bufSize = 0x1000; X; M& f' Y v" r+ `$ Z, i
SysMin.flushAtExit = false;# d9 z7 ^% ^! F5 W3 p
: O9 J/ r, R! j9 H4 a( @. P
var System = xdc.useModule('xdc.runtime.System'); q0 r9 W" a- {! e/ M' y. Z* g1 v
System.SupportProxy = SysMin;# A2 z4 y! A2 K" Q2 B- O5 i$ {, L
* O/ n8 R; m% z
/* configure SysBios to use the lower half of Timer 1 */
/ s9 @: X6 T( e8 S9 t% P! w2 pvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');, R3 O( D- t$ T0 @2 A5 A
var Clock = xdc.useModule('ti.sysbios.knl.Clock');; f9 F8 H2 S, H
Timer.timerSettings[1].master = true;
) ^8 Z2 [4 Q8 v! \2 C6 [8 B* UTimer.defaultHalf = Timer.Half_LOWER;
9 \3 F6 t% T$ h3 B& c% u' g4 uClock.timerId = 1;
) H* ?) W" d2 z; A" h5 ~( q1 D/ c, Y" |% F: o
8 A" w# w; P8 B9 V6 ]- U' d/*
/ K5 S5 j8 F8 Y% q$ D" ` * ======== Miscellaneous Configuration ========, q3 i: [8 O" M) ?2 i: r
*/
9 _/ F9 J2 \9 _' T! k
7 ~; [. e; ^3 I, F$ ]/* set default diags mask */
, A7 t1 ~% L$ b( D1 v3 E/ Bvar Diags = xdc.useModule('xdc.runtime.Diags');
Z/ L) x7 b& @% J- r! Rvar Defaults = xdc.useModule('xdc.runtime.Defaults');" _3 H- J* c! |# `# i
3 r! c3 e& c! d( d
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;1 [$ _* { u; g, h
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;# G% m, A& P$ v/ E
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;4 Q6 j+ k' W3 k$ i3 T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */ o0 \+ l: l5 i& H1 N) ]% N8 _
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */3 ]% ^6 W( q8 n n: R% u
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON; f0 D" ?" _2 O3 J# [
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
6 R+ N/ s, k3 s6 r0 HDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
+ `) \9 {. t; T6 A) tDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;+ `! Y6 L) X0 d; \) |; |) l
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
0 j; a+ A) M9 j; b7 K* ^Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
) r# d# M" ^4 Y' {7 Z5 p& TDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
) @6 M& ^" i; sDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;6 C( C2 R6 p) g) F
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
3 Y3 g$ Y2 G" H/ a7 V1 T2 P [7 u# e! S8 U1 h" u
/* override diags mask for selected modules */ j8 x; e: V1 q+ @) Y: m; O
xdc.useModule('xdc.runtime.Main');
9 f/ a; H! Q; {% kDiags.setMaskMeta($ y9 B7 M& x# t& G
"xdc.runtime.Main",9 g0 j, r5 w" Q8 d% z8 }1 b
Diags.ENTRY | Diags.EXIT | Diags.INFO,
- P% \( C- ]9 K Diags.RUNTIME_ON
. g: r$ z# u% I4 C/ \);
; n0 z3 h/ e9 }0 S
{3 w! C9 N3 Z) w) s8 `; Bvar Registry = xdc.useModule('xdc.runtime.Registry');
3 _, ]" G2 U7 z9 b* cRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
% F0 X) j6 q. y7 L/ eRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;0 |! k/ e+ N9 R+ d2 ~6 P, w
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
e( \$ G$ d+ ~3 @( JRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;: T4 @+ \) ?$ q( o& x* U3 [
4 x: Q) n7 t3 l4 g2 @, t j1 y/* create a logger instance */: b' A9 h8 e6 X2 p
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
: ] L) }3 R0 C$ ?3 S+ H& [var loggerBufP = new LoggerBuf.Params();3 ^4 u& Z C; u) }* m% ~! r3 Y
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
1 A: [, C* r' n4 x/ J/ `. BloggerBufP.bufType = LoggerBuf.BufType_FIXED;
: d% `% ^# l+ l: ~
& i1 j! G( i0 s, Avar appLogger = LoggerBuf.create(loggerBufP);
0 W/ e- T/ {( Y7 X M1 M) b, C8 AappLogger.instance.name = "AppLog_Core1";# S: Q) N/ L7 s% ]4 L! @ ^
Defaults.common$.logger = appLogger;0 `* A# P5 {/ ~* y4 T# Y
Memory.defaultHeapSize = 0x8192; ) u2 D$ ?8 P) g6 y5 D+ \& Y
Idle.idleFxns[0] = "&LEDStatus";
$ A3 t/ m; o: E" OCache.initSize.l2Size = Cache.L2Size_32K;" U( g: F/ K" @( W$ d% X
; i1 E0 Q0 d1 q o! J* `" z
|
|