|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明! E0 u1 Q4 `2 ?. q7 t$ m
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下# ]: B7 b) o+ P) w/ ^, x" {
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
) W" m2 ?/ F! S6 \0 p
+ R9 N- i2 l+ P7 n是不是需要在DSP.CFG中进行配置) ]9 t* Z& J' q E2 ?1 q) F
我现在的配置为
f1 j7 I+ \: J
0 k8 m* W# [$ g& j$ t7 O/*' J- i# ?+ p8 x8 m0 l, z/ J8 f1 [: ^) R
* ======== Operating System Configuration ========
2 G: @$ a' K9 l( j/ Z' G0 t */) F8 ]3 G- o$ u& P
) B9 A; o, f5 O3 E0 j* O. S5 T
/* no rts heap */+ \4 @. ]$ }' n5 Z+ \9 S6 J# }
Program.heap = 0;
& y6 z1 ?0 v Y- TProgram.argSize = 100; /* minimum size */ ]; A/ m) F9 K3 G( @1 w/ R' B
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
8 ?# I1 X a' i' S ~; D, m! x7 T
/* create a default heap */
. \. u+ C1 P. o$ I5 M% [" _+ Kvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
0 i1 b3 v+ T# O7 I, e) Zvar heapMemParams = new HeapMem.Params();
$ v& }0 ^2 ?6 [0 e) t1 xheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大8 v3 `% z2 e/ Y6 r1 f
: n( e3 r! h9 Wvar Memory = xdc.useModule('xdc.runtime.Memory');" d/ X9 v a; P5 b
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);( `6 O! d: s" \0 I2 H
/ P- C8 @4 F/ ^+ a. n, O) R E# u/* configure System module */
5 b" A$ D: A. Rvar SysMin = xdc.useModule('xdc.runtime.SysMin');& f( X, i: @1 M
SysMin.bufSize = 0x1000;: }5 E1 D8 D- z- j$ R0 T# e& ]+ c
SysMin.flushAtExit = false;( }6 X# j7 K3 Q/ y; c' I+ W
) c; }. l* W$ z; S8 O# x# k
var System = xdc.useModule('xdc.runtime.System');* T) r; Z) t: Y: j
System.SupportProxy = SysMin;" h: y( a/ \( m. p0 |5 @6 I
* C% b7 Q7 ^* [' l1 ]9 P
/* configure SysBios to use the lower half of Timer 1 */
6 n- d) o8 u |1 V+ [6 Mvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');& f8 g0 f1 Q# a) I" Q! e3 ]" n
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
5 |$ i7 R$ ]' uTimer.timerSettings[1].master = true;! D, `+ J7 X4 ~' d9 }/ _
Timer.defaultHalf = Timer.Half_LOWER;2 W8 r0 g5 Y9 }
Clock.timerId = 1;8 v) C9 H) B. z5 c6 D
+ n+ ]9 l+ D# Q
, Y' V! o$ W) n% r1 v, ^, e- n( g/*
0 g# H/ U+ o! j! P * ======== Miscellaneous Configuration ========
0 o) |% M" D4 w7 q */1 I- O: B1 {4 T9 }
! f/ P; Z! F5 n9 k$ ?
/* set default diags mask */0 B8 n/ u- [9 v+ r( o. Q* u: y
var Diags = xdc.useModule('xdc.runtime.Diags');
& Z' V( _ L0 c; Zvar Defaults = xdc.useModule('xdc.runtime.Defaults');
}- V. d. l" t' r& U- \* J4 [$ H$ }$ \( r' j. B9 S& U
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
# g! E( X4 N8 j% h8 {9 H. yDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;9 M0 Q' T% d0 x3 A* f! {# u
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
5 _! o' n+ N9 p3 t% F- U7 _3 \6 _Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
9 A6 x# M. u# ^' gDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only *// {, A+ ^: s3 g5 G8 W
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;- v, e9 i% J' T, S8 l: q
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;3 ]; g1 r' o" }! M, K1 }5 X8 H
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
7 D; E9 J' K& B. r/ gDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
& M4 |" S4 f6 M* I( lDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
" y4 p) m( ?2 e! C: U9 PDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; M+ H3 H8 q% M5 [9 XDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;! A V+ g' E+ v( m3 B* l4 S
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;0 W) D1 ?) Y: k: v- k1 @. @
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;. z& p7 d0 w- d7 {& G/ U5 F
* F2 g, N" V: l9 r9 z1 ^0 s/* override diags mask for selected modules */$ H7 `# U" B/ R# Y
xdc.useModule('xdc.runtime.Main');
6 X1 n1 d4 G, m0 {# C- x) ZDiags.setMaskMeta(
?$ b- u9 [; d% ~5 Q2 w8 Z "xdc.runtime.Main",
& x6 t4 ~; }! T( Q Diags.ENTRY | Diags.EXIT | Diags.INFO,
/ |: G. T) q8 ~- ^$ M U& R Diags.RUNTIME_ON+ F" `0 I: S3 \1 O6 i* a: \
);
& O [( N. C/ B4 H. ?! T
. e# W) w" Q! Q P7 bvar Registry = xdc.useModule('xdc.runtime.Registry');
' l3 N' x# W2 }% MRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;! V* `! |8 z$ }7 K9 x( g Z
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF; n4 v/ n! T5 h2 h2 ?* G
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;" m$ e6 c4 G. l1 E+ w% [
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;& Z9 s6 M) K/ v( h
; H$ F/ B9 Y/ p" V, g- G# e: K* t
/* create a logger instance */" e& W% U" s: V& `! e- ~ K
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
. X; v* r- v3 W& P8 g# v: L& ivar loggerBufP = new LoggerBuf.Params();4 s# p# m6 |+ g- K: P
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */1 K1 o8 J1 Z$ m, U. }7 R
loggerBufP.bufType = LoggerBuf.BufType_FIXED; R9 P# s0 }+ m& F# l
" Y9 j+ V9 x+ [9 t6 M
var appLogger = LoggerBuf.create(loggerBufP);
( i2 g B9 \/ Z$ e0 UappLogger.instance.name = "AppLog_Core1";, b( E$ d+ q* `) e* q+ p' L
Defaults.common$.logger = appLogger;
% H. S1 V% P4 V3 ^/ `Memory.defaultHeapSize = 0x8192;
: O% r6 } g7 }+ nIdle.idleFxns[0] = "&LEDStatus";
/ ^. e* R8 g- z! L! A+ VCache.initSize.l2Size = Cache.L2Size_32K;# I0 R; V4 k2 T: L& b& L
" P" E$ y+ A/ ?4 X8 ?5 O
|
|