|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明8 _$ `6 U9 J1 P; g# ^1 @
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
3 F$ o$ J; W1 q. w9 h(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
4 [% A* S& P2 L2 a$ l( N6 ^7 i* r7 B( r; r8 Z! W* w- V
是不是需要在DSP.CFG中进行配置, X( Y6 P6 J$ I! c. ?4 J& u
我现在的配置为
/ q: |" T, o0 j& z9 w s2 [% [) \% c
. g: h0 V3 e0 p. \/*' a& D, \% U" c
* ======== Operating System Configuration ========
' N- H' @, J, o$ e5 l */
% B# T. C4 Y- }. ]' y! n6 M
/ I0 J- {; Y: S0 i2 {/* no rts heap */& Y' A( d' V6 \: [
Program.heap = 0;6 q2 V* D4 I1 ~: ]3 G
Program.argSize = 100; /* minimum size *// M9 N5 s8 ?5 g9 N. l; q- O
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大! D) {' a3 x, R) G: o! o
! q- Z$ Y# |) S8 r/* create a default heap */! s# `( y! K+ F8 ^) ?
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');* M5 ~+ J C1 g& z( h
var heapMemParams = new HeapMem.Params();# X, v7 ~# g! |. _& U- O
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
4 S& i4 Q; e2 l/ J9 _+ o' D, X) t
. Q. \1 ^, z+ i" b1 svar Memory = xdc.useModule('xdc.runtime.Memory');
, t6 @% \5 z7 vMemory.defaultHeapInstance = HeapMem.create(heapMemParams);6 @- r9 D% M* F, b
* }: E9 c4 z, S: O& L, a+ j" n/* configure System module */
9 h/ d k6 F G! G, W+ y# B5 M4 [var SysMin = xdc.useModule('xdc.runtime.SysMin');
3 g- Z! m) D( x7 e# VSysMin.bufSize = 0x1000;
* H. F" w* C8 t% H* K dSysMin.flushAtExit = false;8 p. E( H2 N5 e% z, J, J( J/ Q
) |5 {, S! B* Z* g. b
var System = xdc.useModule('xdc.runtime.System'); ?1 `; c* z: w7 G% k
System.SupportProxy = SysMin;
# f, I# D9 z! F7 D# s4 n6 A; Z1 ~# y& m% ?& r. t L
/* configure SysBios to use the lower half of Timer 1 */
! ^: d& q' x$ \: e% R9 L6 F8 ]var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');, O5 q3 K5 ~/ x: \9 U) J
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+ K5 p2 |( j4 r! q+ Z8 @Timer.timerSettings[1].master = true;
# D4 e0 T& Q+ v( z: m; a1 HTimer.defaultHalf = Timer.Half_LOWER;
: q7 Y5 o1 g; y8 {$ C& {* vClock.timerId = 1;. v J1 e h" o: y2 `; C
( b! H" \, ]' j; T/ @
/ G% M7 D+ P; r+ _3 h& Y4 d5 X% n, y/* m/ `! `7 o4 m3 g* _; ]! G$ r4 Z
* ======== Miscellaneous Configuration ========9 L* C0 ^$ i2 D- [7 u
*/$ j0 G/ L! Y. y
+ s7 s2 x) O$ ]% t% l/ q. O
/* set default diags mask */5 V8 |5 b- k! i ~* c2 a! s
var Diags = xdc.useModule('xdc.runtime.Diags');
$ l& n3 C$ t' h$ A1 e% Vvar Defaults = xdc.useModule('xdc.runtime.Defaults');6 [$ u; i1 W- }
1 M( N/ v3 Y' F4 o- u; P: N, q) q' [Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;+ I' m0 j( ~# [% Q0 g
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
; U& i& H* W6 \, kDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
6 D! d& G! B0 I) uDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */1 f+ w# U5 e0 M* r) C- ?& `8 X
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
4 d" x6 ?6 O% d; VDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;4 u }9 S- G! ?+ G$ T2 t' U* T- ^
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
& D( N7 O; D1 d8 S6 V! J- CDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;3 Y1 M2 P, [1 {) g( I- m8 T: C
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
% H7 B7 a k0 V$ R! {5 KDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
M2 n0 B6 Y7 ^1 E: S- TDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
" ]6 Y7 G: T, ~4 y5 }; SDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;' X; q2 L- d% K& ^' b g) K% X
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
) J1 G! I* ]" s7 r4 ]/ VDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;) V8 ]. J- q( k7 u/ x& V
! x% D0 k) b; R7 y
/* override diags mask for selected modules */! Q& `* E0 h1 |; J5 @
xdc.useModule('xdc.runtime.Main');
+ j% T/ U8 L4 e9 W% ]! _0 q4 s2 Z$ tDiags.setMaskMeta(' d( Y1 b) D! ?0 |3 @3 |- K- b
"xdc.runtime.Main",
8 o: q4 a3 b8 J$ b$ A: o: i$ p" P6 K Diags.ENTRY | Diags.EXIT | Diags.INFO,+ Y, K& v7 h' P
Diags.RUNTIME_ON v$ g: x! j' u
);5 V/ D# b2 _, J* d
$ k9 |6 a4 R* g! Ovar Registry = xdc.useModule('xdc.runtime.Registry');
9 m, ^" _* x' Y8 s7 PRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
) X! h( G* z1 W4 J' a1 RRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;* h7 b X! E/ K8 f, E
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
; r0 `% X% y- ~Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;7 J2 Y6 I; I8 n- F
& z( d9 `1 k( E, X2 r) {/* create a logger instance */9 D# r: h1 }/ y
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');" y! N: |$ Y7 Y) u* r
var loggerBufP = new LoggerBuf.Params();
5 }# O3 s+ U- ~( g B* c2 b4 WloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
$ M1 @8 ]& Q F6 b1 H2 ^$ f" A2 F) bloggerBufP.bufType = LoggerBuf.BufType_FIXED;
. @; p2 v; R& Z1 ] e5 |* e/ {, g% l: p- h1 \
var appLogger = LoggerBuf.create(loggerBufP);3 k1 w1 |; \ D, ~- P
appLogger.instance.name = "AppLog_Core1";
# y+ ?/ e3 T4 g: k6 NDefaults.common$.logger = appLogger;: D+ ~0 j9 P+ X
Memory.defaultHeapSize = 0x8192;
; `- @4 x% ?6 a7 Z. M u. K" P" NIdle.idleFxns[0] = "&LEDStatus";
6 D1 y$ m" S# e9 G: S9 q, FCache.initSize.l2Size = Cache.L2Size_32K;' f b/ D) ?) k* S8 I t
' {) `7 D' { l v+ o, M
|
|