|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
6 w6 s: n3 h2 A1 H K L我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下/ ^) }$ Y, M/ A" x
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)* A8 q. ^. e, E
4 O; x+ W: b4 S: e- }: Y6 q/ {
是不是需要在DSP.CFG中进行配置/ ~( m4 J" n5 M, X+ u: v7 _' M+ K
我现在的配置为, q. w+ |7 o$ U3 L
6 B" A! S) B5 C$ b& d/*) {5 K" I, D+ s# f1 G! W& r
* ======== Operating System Configuration ========
" v; \5 X/ z6 m9 z9 I* I */" |9 r5 r4 j# ~+ C7 p
% M! S. l! ^& u- V
/* no rts heap */
9 j, [) z D: J" r* RProgram.heap = 0;( ]5 k+ ~, W F# A+ E8 v- X
Program.argSize = 100; /* minimum size */5 q7 a0 ~; o2 \' C% y
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大7 x: q+ {. C/ K, p2 _1 T4 f& k- ?
% d4 J! ~$ ~0 ]- `& e- T
/* create a default heap */
3 R8 j: U2 V$ {3 l, L5 b, ^var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');9 @7 K: ~% W: u I6 e/ {, V' u, s
var heapMemParams = new HeapMem.Params();& ]3 X; n% \7 o
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; C( }9 _( m3 |6 ^0 W+ n
, A* ~: h7 h' y& D+ y$ T8 ~
var Memory = xdc.useModule('xdc.runtime.Memory');" p2 _/ X, S% b6 P( r
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);' C6 V$ }- T! D( s* O9 L
( C- }$ d, R7 @6 `6 P5 v1 G/* configure System module */6 O5 [+ z' o. ~5 P' C
var SysMin = xdc.useModule('xdc.runtime.SysMin');
1 ~6 A, @% C; f, X3 [6 p0 qSysMin.bufSize = 0x1000;
0 P4 s' X0 n3 U6 K cSysMin.flushAtExit = false;1 e' j" j' e8 w/ |; l8 A$ {3 R' p4 M9 z
: d8 X! L0 X. f
var System = xdc.useModule('xdc.runtime.System');
& {0 `1 ^! G. @9 d. V% VSystem.SupportProxy = SysMin;. {( p: f) @& L) }) B
9 u1 a- o3 o" k" R8 |/* configure SysBios to use the lower half of Timer 1 */2 n5 d# I; q0 m Q; y) {: x( y4 |
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
9 }& `8 G& P4 W3 Vvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
: p. {) c6 V* ~# e; f4 ?% T) [: M* YTimer.timerSettings[1].master = true;4 }' j) G0 g% v
Timer.defaultHalf = Timer.Half_LOWER;
6 n4 P: V" q+ y' mClock.timerId = 1;
4 M9 T9 ?7 `% Q U. [' X/ d# r, b# k6 w( A" y( W' C& e3 E
. O9 Z$ N; m/ i F" E) K# s# X. z4 q
/*" z- l1 F7 q1 b
* ======== Miscellaneous Configuration ========
2 X) G$ M1 m# o! ] */+ i$ ?' K( D6 `' u& a! @7 V
5 w$ a8 C0 B+ b, u5 `/* set default diags mask */& @2 B+ Z; P& w* c8 @4 _) d8 D' c; F
var Diags = xdc.useModule('xdc.runtime.Diags');
% D8 i9 g, |( E- B- X. k {6 e- X0 m) \var Defaults = xdc.useModule('xdc.runtime.Defaults');2 w7 a( [. q! \0 z" E( Q
0 d+ j9 z: E- {: w! HDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
/ s& t7 t4 S5 i% R0 H; I! jDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
; F/ y6 I' Y+ `* d9 _Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
9 q3 v7 K9 V, `" P6 J3 oDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */* x3 e( w$ t" S4 }( Y
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */" d1 G# D9 }6 p, V& L1 [) B1 ]; n- M
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;: Z7 w& y+ S% @* F7 v8 L) D
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;$ h9 F( l+ x+ f
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
# p6 r1 \6 S& u' S$ L! K- XDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;7 i$ R b1 U$ A
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;6 I0 f3 L2 g" l4 S* q
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;, Z: Y6 L, ^( o I
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;8 F: \$ Q/ z T9 U
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
' l# f( D8 b7 Y; X, WDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
5 f4 B& y- s# H) v( \, h* u; g
5 l6 ^% M6 X9 Y6 P% z9 r/* override diags mask for selected modules */" l& r8 W3 E& A& f' c. z- D5 a C, x
xdc.useModule('xdc.runtime.Main');" f+ \: t6 {0 L5 X$ t9 ~3 [% x
Diags.setMaskMeta(
- B& S* G2 ~' Z( P "xdc.runtime.Main",
5 e. u1 R. K4 y7 R+ P. x- [3 V Diags.ENTRY | Diags.EXIT | Diags.INFO,/ H# T2 `) A8 {5 P. B/ Z2 M
Diags.RUNTIME_ON
, d) k7 ]/ ^: Q; y7 J( s0 `);7 W/ n6 f* u9 g) v
5 J! H8 j0 M# K/ s* fvar Registry = xdc.useModule('xdc.runtime.Registry');
4 `, T" u9 L, v" A. l' k% QRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;. r: G: L5 B r5 W/ W% N# y$ b3 v
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
+ ~9 p4 C# V, \% y- HRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
% M. X; j- y8 V+ a1 URegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;3 i/ q6 t O, s9 b/ u6 r. R
2 P) j# p9 a* C
/* create a logger instance */ v% B% g# Z- O% P$ s1 @
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');3 p0 z! C% G5 D, L: S
var loggerBufP = new LoggerBuf.Params();+ y8 E# d+ t2 f% m
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */* ^' u0 Y+ ~1 s) _* o2 }$ [: V/ T
loggerBufP.bufType = LoggerBuf.BufType_FIXED;* R& L( u U5 }7 P, M3 @
& X# P. R% `) Z- }
var appLogger = LoggerBuf.create(loggerBufP);! l2 s# y/ Q& t& Z* G/ |
appLogger.instance.name = "AppLog_Core1";# q+ i1 M2 |2 I* u" Q7 C: J
Defaults.common$.logger = appLogger;
: ~4 Q0 z1 B# J: p: o& NMemory.defaultHeapSize = 0x8192;
6 G( H9 D- c% k$ ?4 s! g6 mIdle.idleFxns[0] = "&LEDStatus"; z1 S& X7 U- R. L+ |3 T! ]
Cache.initSize.l2Size = Cache.L2Size_32K;
: K, _* ]; O/ W% H8 \# P9 G% J6 j
2 f- b/ z P, q3 |1 V- K |
|