|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明0 D/ o' {3 ~. E/ X2 b; R
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下' U4 N- _! g+ ~: v* ~$ x' D
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
. I& p0 q8 w$ J9 m& O8 W' j
9 T( h N/ }# E是不是需要在DSP.CFG中进行配置* z0 _. m& B) a1 j
我现在的配置为
6 |5 {) f' G. e! V1 d+ U( C+ E( j' \
/*, l; k5 }8 U% j: Q% R
* ======== Operating System Configuration ========" t$ K' n9 q# `- i& |7 \
*/" j% B* P- E. b, }/ ^# M, `! j
2 R0 I2 i: ?6 v) N- N1 o/* no rts heap */
, J$ x* X4 s3 G& _6 _& H3 @5 L: zProgram.heap = 0;
8 Z+ ~0 f% T* ?/ G8 t, h- \Program.argSize = 100; /* minimum size */
7 k2 S1 k. m; C. wProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
- b) Z: |8 s; c6 R) {( @
! N6 W0 V/ O1 b" \- Y/* create a default heap */
: a" F8 [ e) i; t+ t* K* wvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
3 t* e1 @! q- Wvar heapMemParams = new HeapMem.Params();4 p( G. q: r. l1 z+ e- q2 R
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大2 F% d( E. K: D$ [" k4 i
! b2 ~- u; |% {$ c# A6 o4 ?var Memory = xdc.useModule('xdc.runtime.Memory');
: k! I1 k. R5 E7 Z; lMemory.defaultHeapInstance = HeapMem.create(heapMemParams);* d1 y. Z: A$ O5 w4 T
- F$ W; E) V7 A2 ]' a$ |. g$ p; J/* configure System module */
! {4 M' }" j' P! E& l+ {% Rvar SysMin = xdc.useModule('xdc.runtime.SysMin');
( T( \. w% R/ |SysMin.bufSize = 0x1000;
" u1 J f5 J9 v, t4 f/ T, Q3 iSysMin.flushAtExit = false;
5 o1 D0 N* i% I- Q3 M! w2 {: s# X$ V
var System = xdc.useModule('xdc.runtime.System');9 C0 |2 i' Y# m& a/ F% j
System.SupportProxy = SysMin;8 ?4 D0 ~& `. A Y
: C' s+ U' Y# E- Z% O/* configure SysBios to use the lower half of Timer 1 *// G* s' n: ?) C: [# Z) r1 |
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
4 X& e0 ^8 ]$ o. k8 y1 |var Clock = xdc.useModule('ti.sysbios.knl.Clock');' d) U1 v" {3 T) r+ \( z) E
Timer.timerSettings[1].master = true;
' \; O& {. U) ], Z0 r" _Timer.defaultHalf = Timer.Half_LOWER;# s' P7 c$ G- W8 O9 F6 t6 f
Clock.timerId = 1;
% ^+ z, g2 K" x3 ~! O3 J9 v: _, ~' `8 B4 b* W3 y9 [
, Q! K6 t x9 L' K% J: w& n% |
/*
6 H5 X- s `' s$ K M* R( Y * ======== Miscellaneous Configuration ========1 I2 ^7 w5 G2 E; K
*/
" a2 A- r4 q- k5 l) c: [$ n: i
/ h$ {/ B# |( M9 }6 u/* set default diags mask */ U, M* {! G6 b [
var Diags = xdc.useModule('xdc.runtime.Diags');. E4 }9 u: p1 j R) ~3 P) q/ B, s
var Defaults = xdc.useModule('xdc.runtime.Defaults');
% a) B# Z9 V/ v9 L6 i0 h/ e' G7 [) I$ }4 C3 p
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;/ n9 ~) C% N5 c0 W
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; \- l5 K1 t, y: M$ g" Z6 S6 Z3 {
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
v6 L" `* K+ h j$ Q. x5 E) F! {Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
; I! w% [+ C4 B9 M! C# pDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */9 T0 s! u) ^* ~* F5 ^; g2 l' C. M
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;* t2 d+ r' f1 [3 T
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF; `/ q) [ J' A! [+ \' i3 U r
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;. ?2 ?2 z( D# ~$ x# X' o
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
4 q2 o) z# G2 \! G* s9 W+ VDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;+ ?2 F3 l9 Q6 [& z0 q
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;8 s+ _& b2 |, o6 t4 W% i' I
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;# {6 V! U% e6 ]: Z H
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;1 V+ d" n# u. n s+ D
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
1 w6 E1 l0 s$ S, p( B9 C1 n0 Y! s1 ~
/* override diags mask for selected modules */! F e! b6 o! I! j& O
xdc.useModule('xdc.runtime.Main');$ r# E4 R: }* c9 Q' Z$ ^
Diags.setMaskMeta(1 `& c) j$ Q! R; h6 s; V% p
"xdc.runtime.Main",, T, s& q' X: T/ ], m' f
Diags.ENTRY | Diags.EXIT | Diags.INFO,& e1 d1 L& N* \- B8 E; ]
Diags.RUNTIME_ON' O. t# r* q$ d
);) a) `9 X- G) t. a$ Z" [
) ~. N Q# y5 v$ t* }; V7 cvar Registry = xdc.useModule('xdc.runtime.Registry');4 G& V0 q7 {- e A w3 C
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;+ t, b1 d6 J; d) Y9 H# w. T. X/ Y
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
! J0 F0 {; J' ~% B- gRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
$ o; k3 X+ U0 I5 w2 PRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
0 Z& l: @- [' @1 c' v5 ^' r2 b* O5 X b% C5 V7 r \9 Y3 t
/* create a logger instance */' ^4 l5 i/ |" c4 T4 ^9 J
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
* m+ n' E: p) c3 qvar loggerBufP = new LoggerBuf.Params();. i3 G [; n j; L% u# m" y1 r
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */$ \0 \% d( G$ D4 d$ ^1 x. w* S
loggerBufP.bufType = LoggerBuf.BufType_FIXED;) V$ |" X) X! h2 g2 T# h
) L3 \/ K# J4 ]) ~4 |0 p
var appLogger = LoggerBuf.create(loggerBufP);* f9 X) F: J ]/ G
appLogger.instance.name = "AppLog_Core1";
n$ Y2 [3 J( F& g ~. eDefaults.common$.logger = appLogger;
/ `0 h) M& m2 Y9 H: ^2 AMemory.defaultHeapSize = 0x8192;
8 L5 [% e* D0 kIdle.idleFxns[0] = "&LEDStatus";$ e, z' v6 O! ]
Cache.initSize.l2Size = Cache.L2Size_32K;; P& S1 W1 W" h$ q# n0 t# E6 z+ F# u7 z
; ~/ l- D+ B J/ ^6 t; a p |
|