|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: l! F+ N6 G# Z* Q2 Q7 s/ \我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下" D2 M( [7 U, B
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)+ t5 ?3 |/ m Z- o5 c6 H* ]
& M& S4 v9 |% W1 ~5 z, R! J是不是需要在DSP.CFG中进行配置- }- j D3 `; o% |9 C+ g! a9 W
我现在的配置为! r2 E6 P, w/ S% o0 {
) F! e. Z# _ J7 J" g
/*
) v$ N, I9 ]8 E0 f * ======== Operating System Configuration ========
, C/ l: O. C5 R `; b */. Y9 e+ P! ]# O* N5 `* S
8 G9 p6 V! \+ d( z/* no rts heap */$ X+ a, s) Z% W% ^* z8 t
Program.heap = 0;
& C+ y) f9 c" l0 {8 ?) `Program.argSize = 100; /* minimum size */
9 }9 s8 y8 e6 h0 e/ ~Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大* v2 W- w& b- B" M8 d5 \! e0 a0 d
# j Z: ~3 x% `" i2 q1 k
/* create a default heap */
2 r$ i3 @ g- x4 `$ m$ Zvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
9 h6 l: D! F9 E; D! }. ^var heapMemParams = new HeapMem.Params();0 s- h I- I* |) k& _% E& Z2 M
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大: o6 z! ]) @7 w( p
2 g9 z* d H1 W! k5 W- @
var Memory = xdc.useModule('xdc.runtime.Memory');
9 R; d4 R% q2 t8 a6 jMemory.defaultHeapInstance = HeapMem.create(heapMemParams);3 A/ z( G7 D# \8 t* z6 Z0 l
8 b- }6 z9 _+ }+ z; ^. B6 I1 h
/* configure System module */& o4 T; y0 Z, Q, _1 w! {6 @" Q
var SysMin = xdc.useModule('xdc.runtime.SysMin');( \8 R% W% _6 x% ?9 M9 ~
SysMin.bufSize = 0x1000;5 M1 t0 n( ~7 g
SysMin.flushAtExit = false;" E- q2 u0 d/ x0 M9 c' Z, |4 K
4 x: o1 g! y7 U; x0 D2 D
var System = xdc.useModule('xdc.runtime.System');
8 I% h" s; v# A) X" w7 [& B" WSystem.SupportProxy = SysMin;
- ~( t$ h+ Z% s7 w: f5 N" Q1 Y1 l. h
5 i" a1 N+ u6 M+ p2 L. K% t' \4 O0 X/* configure SysBios to use the lower half of Timer 1 */
8 k5 ?- s: F; M( [7 L+ A# uvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');0 p5 B. ]6 h% V- ?
var Clock = xdc.useModule('ti.sysbios.knl.Clock');" a/ G4 t g# u: V5 s7 y
Timer.timerSettings[1].master = true;
) `% E6 X0 t! |7 H7 |3 ?Timer.defaultHalf = Timer.Half_LOWER;! K6 I- y. b" \3 o* a
Clock.timerId = 1;" X4 L1 G/ H: Y2 h) M. ?
$ c/ I+ c0 `. b9 }5 B$ L
$ {& b- s, _3 e r
/*
$ U6 O2 z' y2 Z# F- R * ======== Miscellaneous Configuration ========7 A% _9 }1 l: G! M- f
*/
2 s5 L8 C. o4 ~8 b! f8 h
: V* ~# Q2 j0 y7 i" S/* set default diags mask */; g) a; `0 G) A9 p, Y% g# g
var Diags = xdc.useModule('xdc.runtime.Diags');
# O& L b/ x" i" Y, [8 z: }var Defaults = xdc.useModule('xdc.runtime.Defaults');# A3 |8 ]8 v3 A! q. A! ?8 U% L
; I' M+ c7 C) J) x3 z
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
' V$ o' p) J. L/ C. QDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;# N$ e. l h8 e* h8 O u/ I
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;" S8 x" t7 ?1 U+ o- X! i% g
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
; s! ^* P M( a3 _Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
3 j: u; W4 N H5 _" s5 Y" HDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;6 p$ X0 h9 l% A' H- C( Q
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;& n) j: W2 m0 D
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF; U! j$ H3 n+ p4 ~
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
1 V3 Y, H2 n/ |2 j" x2 CDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
, r5 C8 a8 n; h. s! {( vDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;$ H0 V# e P2 {! z# b$ A5 {
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;. i! J; E) r. S" h* v
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;/ y7 i* V* y: Q/ u
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;1 \! p$ P$ u" Z2 c7 b- d1 M
8 L3 R, X. g3 K. }
/* override diags mask for selected modules */
3 p5 ?5 M. A3 B& ~$ e p4 xxdc.useModule('xdc.runtime.Main');# U2 T0 c1 `7 l7 d5 x* ^" B6 a2 X
Diags.setMaskMeta(
, o. a) j$ x& j5 x6 V& G "xdc.runtime.Main",
4 V1 y9 a! h: a/ \9 ], O2 K, A Diags.ENTRY | Diags.EXIT | Diags.INFO,
' P$ D) d6 S2 ?) l/ \+ W Diags.RUNTIME_ON
. P& ~2 m; r4 a! n& {* P7 g6 z);3 d7 y" V* C" o! g! Y7 d3 t
+ A9 b6 g) W7 g- Q/ A% evar Registry = xdc.useModule('xdc.runtime.Registry');
: z/ n1 `2 G3 S DRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
3 Q9 l F, b& j7 P) |; z. G- ?: |4 ~Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;$ h, r5 `) D$ m( G
Registry.common$.diags_INFO = Diags.RUNTIME_OFF; u! R* y! `# N3 V& B m' N% N6 U
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
4 w8 p, f" {2 o }1 v# F9 B; _) {+ R* n& C- N* F
/* create a logger instance */% m @. u1 A! y0 m7 b
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');' [" `/ I$ V( Z: n% b" y. h
var loggerBufP = new LoggerBuf.Params();
. v+ E+ ?0 }9 _' h% y# c* [4 H6 JloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */( y9 M5 E: L, W3 K& K% X/ o5 A" ]
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
/ Z- k; j! S) R# n1 `
5 U5 I8 D. D7 x' A1 Uvar appLogger = LoggerBuf.create(loggerBufP);; R7 h) i2 u5 ?! e: z* A
appLogger.instance.name = "AppLog_Core1";5 i; {; i2 R0 B4 f
Defaults.common$.logger = appLogger;
* |+ u( T- _3 X" R, W8 VMemory.defaultHeapSize = 0x8192;
1 _$ v$ c6 L2 d3 w: rIdle.idleFxns[0] = "&LEDStatus";/ L5 Z7 C5 [$ U; w, i# G$ C# r
Cache.initSize.l2Size = Cache.L2Size_32K;
$ H) a0 O7 o A4 h$ {" y2 b# h& D$ k/ S E9 g0 F; @
|
|