|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
( ?% }! I& P5 o% v/ m% N我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
$ h i5 _7 a: Y9 {. ]- {$ b(不过疑惑的是,为何单独DSP仿真就没有问题呢?), V9 Z3 J8 ^7 q' M9 O
4 E- Y c! B9 G3 o9 c X# J
是不是需要在DSP.CFG中进行配置+ J7 s: _8 x, c3 g8 g
我现在的配置为& X# ^5 M) V+ U7 f$ ^: [9 Q M
- g l+ c7 ?4 ?/*+ u* A* z- i0 A4 U5 D; R) z% G
* ======== Operating System Configuration ========" [9 R% V; U& \+ r+ a# x- D
*/
+ d7 o$ ]9 e9 c3 p# p0 i) O4 L+ O3 P$ q
/* no rts heap */
, O5 A+ v; J; g1 dProgram.heap = 0;
' }9 R) M0 U- L) e/ f* eProgram.argSize = 100; /* minimum size */
2 ~7 z D5 k+ H2 I4 `$ A- WProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
9 X( J( I( {" O/ N4 {4 e6 C+ A1 [) f8 p
% f7 A' H# I! d) w+ h2 s/* create a default heap */
" T( l2 [& ]' s6 |* p$ @var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');# X: ]5 L) c, D6 G" l- g
var heapMemParams = new HeapMem.Params();4 c; f# p# {6 M. K5 t$ i
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大' r# d$ x$ l+ T& v: `8 a
6 c. A& u2 i2 T, u6 yvar Memory = xdc.useModule('xdc.runtime.Memory');
1 U$ z3 d; n6 W L, t. DMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
% T6 M3 w5 j8 G, n) o0 J5 Y' k, @" X
/* configure System module */* ^9 g0 G7 r% O+ J' D0 b" ]/ Z- s
var SysMin = xdc.useModule('xdc.runtime.SysMin');; K( b6 w8 H/ g& d% u9 X
SysMin.bufSize = 0x1000;
( M4 L1 g# [3 ?8 U) o, [, n! wSysMin.flushAtExit = false;
7 V7 V% e) I. V
" r2 u* \5 n: P V5 xvar System = xdc.useModule('xdc.runtime.System');0 Y+ b: g% C0 w3 B
System.SupportProxy = SysMin;
$ C3 x$ \0 l4 [0 ^- L1 Z) t& K8 r
/* configure SysBios to use the lower half of Timer 1 */
' \1 y' |4 l! i, O" Mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
2 @4 r0 f* A# {& Avar Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 d: C. }5 w: M# t7 \, W& m. \Timer.timerSettings[1].master = true;
?3 a- p0 N# @6 A" ~" B0 a* Q' ?+ xTimer.defaultHalf = Timer.Half_LOWER;
" l# h( K+ I9 K% `. w) vClock.timerId = 1;* M; n8 a# ?$ a+ D
0 B+ D$ U/ ~* S/ @' X. R9 k, W) ?* [
/*
5 I2 y; Q3 S. O5 j3 g5 l f/ g * ======== Miscellaneous Configuration ========
. h# W3 j+ i! R# t$ t$ K( p */
3 T+ R7 g7 u" T3 r3 Q
7 [' N4 k7 D3 P' ]! B/* set default diags mask */1 F' |# p ^0 c! J
var Diags = xdc.useModule('xdc.runtime.Diags');
0 ~1 E9 B: l Y, ~7 Gvar Defaults = xdc.useModule('xdc.runtime.Defaults');; t3 n! ~1 F0 s/ L& s- A1 L& J3 d
) f8 t( P% z4 E( r9 U
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;# A6 t9 ~# ~3 q+ A; j# E
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
" i" o" [- s* n: d; }Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;" M- i) j8 @0 n' w
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
9 }7 I7 ?* I; z) j1 E0 f U1 qDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */; W3 p2 C4 q9 |3 ]
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;" \% o9 s) Q. M: f/ O. p
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
% ?: D+ V) _0 o$ V) \Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
% p7 D1 {# Y4 D9 o! d ]. NDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;/ Y. T+ M0 J% \4 n V5 y
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
* q; v/ t/ {. n9 @5 Y4 j* hDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
2 N1 C- I b" F: F0 t* L( @& kDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;( V' {- a( P; W; D) @* {
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;5 N0 M# X% y9 y) B, Q& M
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;0 L5 I9 {9 j5 y; w6 R
* P6 I: p( G: D, b$ S/ g
/* override diags mask for selected modules */
7 _4 C( V5 a/ Cxdc.useModule('xdc.runtime.Main');' g2 T- B& r ?3 b3 U! _
Diags.setMaskMeta(% h. K* J1 [" l4 c
"xdc.runtime.Main",, T8 q. y G/ a* c6 T; O5 U3 |
Diags.ENTRY | Diags.EXIT | Diags.INFO,
. I" ~* {& i: n5 b* [9 x3 t' @ Diags.RUNTIME_ON; Y" v% S9 f3 H
);
. e% {; s4 K, d* |( H, A* L/ |8 ^! a1 w/ b- d
var Registry = xdc.useModule('xdc.runtime.Registry');% [2 \) v/ V/ S% t; f8 a c
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;( g' T% w: I6 }6 V( ^2 f" F8 T
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;4 l; o+ y3 y, m) _* v) ^
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
: ~+ v# |$ z0 Q5 H% V& D8 CRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;, K* g4 T& q0 W
9 w. d4 G* N; B. V9 i. y/* create a logger instance */
/ N m P4 M& k/ `1 o2 K, Ovar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');+ D' I2 c8 N4 K8 b. l* G
var loggerBufP = new LoggerBuf.Params();
3 q4 _ E/ q& k7 m- @loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
0 ^( `. h% l7 |+ Z; zloggerBufP.bufType = LoggerBuf.BufType_FIXED;( U& b4 Q9 i+ I
8 W+ L$ s7 t% Bvar appLogger = LoggerBuf.create(loggerBufP);* `# A1 b% p: S, ?
appLogger.instance.name = "AppLog_Core1";% p6 N, H& r3 ]+ W. e0 c! V
Defaults.common$.logger = appLogger;/ y6 m2 i( a$ ~
Memory.defaultHeapSize = 0x8192; 8 j1 x3 P; ]8 D# _
Idle.idleFxns[0] = "&LEDStatus";
" L8 ]# G# m$ p) a* _Cache.initSize.l2Size = Cache.L2Size_32K;
/ A9 n2 D& _. r8 G6 Q0 R
4 `7 W3 }' w- N) Z |
|