|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
; `, q5 {$ X# q8 y+ P我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下 I2 k" m3 U$ L, w9 \
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
$ W" J# y1 v+ [2 c' q5 J) R" G
: k2 r1 Q- v& E3 ~3 x1 S% H" P: U是不是需要在DSP.CFG中进行配置4 [, X0 y1 a) Q9 s7 a! j
我现在的配置为
& ]( N8 Z0 Y# U# K7 }( v0 A9 X6 X9 y! W( E- m1 p
/*
! g/ V6 }7 y/ z2 T * ======== Operating System Configuration ========" D% F: n8 y9 `
*/
5 `1 u8 d, p+ b3 @ V- @& ^6 k* c3 \5 n1 R, H% q
/* no rts heap */* V6 V2 b Q- r. M5 h6 `
Program.heap = 0;
: Q7 L Y4 O) V( D HProgram.argSize = 100; /* minimum size */
% ?& j. h& s1 R" }7 i. sProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大6 c0 g, Q# t0 o( V
! w; m$ P2 |5 H0 k: n) \" ?
/* create a default heap */1 a: S& T& j' k2 u
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');8 A6 S/ y% f$ @. w
var heapMemParams = new HeapMem.Params();
3 @& d+ ^6 B! }heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
/ x. E1 d6 S1 k1 v4 W. P) F" l" i$ \6 b# \ t2 \) `
var Memory = xdc.useModule('xdc.runtime.Memory');
8 b3 p( C6 Z( f* I. pMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
- q( h+ k! A, p6 g8 Z7 z: f/ `: q& q3 {# o7 K( A" z3 j
/* configure System module */5 ~( N; a+ Q7 @
var SysMin = xdc.useModule('xdc.runtime.SysMin');/ u5 R+ Q) o$ p5 y+ J8 p' D
SysMin.bufSize = 0x1000;. Z3 W$ y6 t2 z- e9 j1 J, {
SysMin.flushAtExit = false;
% _5 {' c6 h* o$ D9 S. }, A& j8 g% I1 [& v0 _ y# K( i" F
var System = xdc.useModule('xdc.runtime.System');9 V6 C; S5 B8 v. ~- e
System.SupportProxy = SysMin;$ S% I( L7 L7 r6 F7 M
: h7 _% K- D" }' r6 \/* configure SysBios to use the lower half of Timer 1 */
' G3 _% F4 ]( xvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');4 N, ~6 m" G- K& Q' O
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
. A' K, @! ] g6 JTimer.timerSettings[1].master = true;9 ]7 y, g& k& _7 g' S4 S( N" a
Timer.defaultHalf = Timer.Half_LOWER;- E3 S0 V" l1 ^ W
Clock.timerId = 1;
0 L5 a6 E- A; w" P8 S0 d) ?4 V* z m( z$ A
4 z' {9 n/ u j/ t
/*
* r1 C3 Q9 I7 s' Z * ======== Miscellaneous Configuration ========4 r/ }+ c# x4 d$ m
*/
' l; {# @$ Y, f$ f! j: {
$ t- d4 z1 O2 k2 [. ?/* set default diags mask */
, H2 j9 a6 g2 Z6 f7 Zvar Diags = xdc.useModule('xdc.runtime.Diags');) S6 C+ S& S0 H: t$ I0 d
var Defaults = xdc.useModule('xdc.runtime.Defaults');
r4 T5 _4 g, A) u) s2 N# s4 t- y3 T8 W7 d, O
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;$ r b& Z0 r8 A" W
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
& u+ j9 t! k0 D# H& j3 `8 VDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
6 @& R6 R8 p4 u bDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */) ~3 Q" H9 ?7 {- P6 _
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
/ P+ \( _% c; ~9 q. vDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
3 K7 {; b0 _ c' b; CDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
3 j! [1 k5 [9 Y$ E. d6 ODefaults.common$.diags_USER2 = Diags.ALWAYS_OFF; M3 ^1 ?# i" ]" r" x
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
h5 G) L. k) vDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
% Y% K6 `0 P' aDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
! f: j# s) f: o6 rDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;2 g" \; p7 R; {3 r$ J
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
# W/ U) S1 q5 a9 x9 a. b: a- sDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
; E5 @$ z4 c- d6 U/ n( E% @3 @
( d n& ?2 u9 K1 m6 c6 n. G! F/* override diags mask for selected modules */) W) f) k$ u8 u9 ^0 s
xdc.useModule('xdc.runtime.Main');6 m. ]3 r, }+ v" b
Diags.setMaskMeta(
3 Q( m; a+ [) A3 w "xdc.runtime.Main",4 p# V! p' E5 O; k( d% V; V
Diags.ENTRY | Diags.EXIT | Diags.INFO,
/ d3 l! H8 l$ e' `" A Diags.RUNTIME_ON
. H' m% E4 G) S2 J, z/ S);
i* u( P1 i: t* a( u; S1 d N+ f! {
var Registry = xdc.useModule('xdc.runtime.Registry');
% F$ W5 m/ r2 L+ ORegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
2 h7 U9 P: S5 m' y1 d. }, Z7 t5 C$ A" ZRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;2 h" ~. c8 m- B8 v; R
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
* _. U2 ^2 p$ O7 R# DRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;4 ]4 l# `, d3 [2 U
8 ]7 Q5 z4 k5 s7 Q5 s- u8 v; S/* create a logger instance */! V- h6 l- P: F" ^
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
. ~5 {% w' x8 F; H% \+ qvar loggerBufP = new LoggerBuf.Params();
) @$ u- M) [5 t2 ~0 RloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */1 _9 e: z, t/ S2 ^/ R% X4 g+ |
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
/ @" V8 P9 @% Z) Q9 ^8 p+ @4 B
P9 ^1 o* N/ {* l4 E5 E; Ovar appLogger = LoggerBuf.create(loggerBufP);! s) t8 [8 Y; r6 K9 W
appLogger.instance.name = "AppLog_Core1";; Y1 H) `$ i( v
Defaults.common$.logger = appLogger;
s/ G6 O6 Y0 lMemory.defaultHeapSize = 0x8192;
. P9 ]% ]3 D. B& bIdle.idleFxns[0] = "&LEDStatus";
6 X: x- h3 B- T. hCache.initSize.l2Size = Cache.L2Size_32K;) Q1 p/ M% y& E4 k3 e
& F1 x s n+ v
|
|