|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: C9 z9 W$ h0 a* H; ?( h( P' w我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下- G9 m, N0 w" Y; J$ A8 N4 x: [
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
7 B4 p% ^. t; b# x, p3 |; `7 Y# b
7 D% O! o7 l* y/ B5 m是不是需要在DSP.CFG中进行配置
& Y2 V" P9 N/ f! t! q- A我现在的配置为
7 T) E0 B7 |% y* g }. X; Q9 n4 M6 X, D( I$ U
/*" G! |; E+ t* T1 d" k
* ======== Operating System Configuration ========4 l, n: A' i* [5 ]( `5 E
*/
) K: @- W4 [/ D* R5 X. q% s1 m/ t$ _" K3 R
/* no rts heap */
; |/ U3 z) K- u, |/ v$ s" PProgram.heap = 0;; N) r* X; ?, w+ ?
Program.argSize = 100; /* minimum size */
5 H3 g1 J. @* V* ^" c2 [Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
# a! L4 d4 `' S5 o% C: ]7 H& U. L
5 e. r- [# L0 n5 A' B. B9 f/* create a default heap */' a2 e) J# i: l# i
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');2 W: F8 x# k: t2 _1 c ^9 m5 k
var heapMemParams = new HeapMem.Params();! k* I. N$ A1 u; c+ H' Y
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大$ s0 E0 o& w$ K: ^, u/ e# A" q
3 v0 \4 p- \" T! {- P ]- p Vvar Memory = xdc.useModule('xdc.runtime.Memory');
" A$ `3 Y" a; O! h1 oMemory.defaultHeapInstance = HeapMem.create(heapMemParams);3 B8 d# D0 Y5 z* Z
6 t* j! f7 a2 ]4 s7 w/ E
/* configure System module */, z1 [: Y5 o/ w9 A
var SysMin = xdc.useModule('xdc.runtime.SysMin');, I+ u- L f+ `- q0 V+ M. h
SysMin.bufSize = 0x1000;
4 ]% U' k9 q. w+ U, ~: BSysMin.flushAtExit = false;* I4 I% [! R. |; K: J4 E/ v
_* I- @" V$ K3 ?1 ]0 R
var System = xdc.useModule('xdc.runtime.System');
9 }. s4 h# B# T+ LSystem.SupportProxy = SysMin;
4 P- i! T2 x8 Y' X$ [5 R% C V" t( k/ {( z, k" x- l4 y$ T
/* configure SysBios to use the lower half of Timer 1 */
3 [4 N% k. U2 u/ B7 K! b8 Vvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');. C4 |5 x m9 c- n* R& g$ D' [
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 Y; s' ~4 o2 YTimer.timerSettings[1].master = true;
- J- @5 N- m: M* J& B: ITimer.defaultHalf = Timer.Half_LOWER;
" b J' K, s8 O% O! qClock.timerId = 1;
: a- l# \5 D9 e/ x I% ^' M' U1 ]7 e9 H3 c
* v0 n4 G" F0 D/ q4 i' g/*1 Q6 Z ^! O4 X4 ]
* ======== Miscellaneous Configuration ========- r8 s- ?3 r: G6 a/ W
*/
$ ~ e& S1 `% m7 ?& J$ V5 }
% f6 e2 P! c! X- {1 I5 j. J+ n2 u3 d/* set default diags mask */
6 q7 v' S8 Y# I5 \var Diags = xdc.useModule('xdc.runtime.Diags');
* C9 L4 C7 o8 } E0 u* yvar Defaults = xdc.useModule('xdc.runtime.Defaults');; u2 y7 c6 o2 {% y2 q1 ]
% O5 O9 `* F* {; l1 f" D% D/ S
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;" ^5 ?" B* A0 r' x8 D9 }
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
$ m/ K! t# S- L% H" n! r& V7 }Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
: X) k% w9 @: p2 @6 t- l7 n7 SDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */0 a1 P' U8 w3 q9 N. d5 B
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */+ Q8 Q9 m: k4 E k( o- A1 I
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
: [5 }. z0 y6 y1 lDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;. J4 C" S+ o- k% d3 H) s" J1 B
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;( }, a, ?& S9 T- v$ w* p
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;( r6 n2 L) M. u. A/ j5 ?
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
( t% T1 `" B7 Q1 O' GDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;# c+ Q; L s- j- u I+ S
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;0 A6 w2 F* Q' P. ~% S
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
1 r) \& n8 B; Y! A. k0 dDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;0 r& @( ~, C9 g5 }
1 C) J! m1 X6 A7 m/* override diags mask for selected modules */
! m6 L% ~/ A R+ a1 Gxdc.useModule('xdc.runtime.Main');4 Z- B7 C: a4 R& j4 f& [
Diags.setMaskMeta(1 U9 c/ O, n* G$ C- y9 E
"xdc.runtime.Main",
# n7 L+ j( {% m6 O; ~ Diags.ENTRY | Diags.EXIT | Diags.INFO,
! s5 [; }! x: ^! v' e# V Diags.RUNTIME_ON' k6 L5 P9 l6 b% o) W/ u$ [1 n. J
);/ F$ m, d, p8 A- Q; w/ O
" n& |+ d# F6 g D$ Z0 G; C8 p* T& Hvar Registry = xdc.useModule('xdc.runtime.Registry');
- c2 F: M2 i7 j) e5 q6 `( @2 m# WRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
* B$ n0 [: P' }3 ]/ MRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
" b+ V5 F/ `3 X9 U" ~Registry.common$.diags_INFO = Diags.RUNTIME_OFF;3 U/ Q m7 k1 K
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;9 z! q. d# Y- q# a- ?
# I, L0 H2 ~- n6 m- V$ I# p/* create a logger instance */
+ `: R4 `4 ]. [" dvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');. m2 P% a) H( @
var loggerBufP = new LoggerBuf.Params();7 i/ y+ N% F6 P: w$ @1 w
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
* H$ J8 g2 S3 ?4 S" z- U) j: }+ CloggerBufP.bufType = LoggerBuf.BufType_FIXED;* J+ N# x. T! o; g$ o
$ z( E2 E4 A3 v) m: Q5 }var appLogger = LoggerBuf.create(loggerBufP);
7 j. Y- D# ]1 ~- `appLogger.instance.name = "AppLog_Core1";" f! d. p: n9 V
Defaults.common$.logger = appLogger;
, t7 L3 P) Q5 Y* _/ l: |Memory.defaultHeapSize = 0x8192; . {4 f' a$ y* j- k/ [
Idle.idleFxns[0] = "&LEDStatus";
1 H; G! O" _1 O6 UCache.initSize.l2Size = Cache.L2Size_32K;: w( z0 ^) c# `
3 h) C f1 I' k3 d$ h# ~" n/ N% u |
|