|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明3 _3 G- F# {6 J- `6 X& R
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下# U8 x. c7 V. v
(不过疑惑的是,为何单独DSP仿真就没有问题呢?): W' M5 Z3 x$ z# X* Q' o& h
3 q) y# S5 a! ]% x% e/ O
是不是需要在DSP.CFG中进行配置+ t6 j% [: `. j$ R, m
我现在的配置为2 X2 ?5 ?7 j6 S- M4 t
" {0 c! k( W2 k" Z/ \; G
/*
; y4 r$ g( F$ P c$ ^ Q * ======== Operating System Configuration ========
3 p; g- z9 n# N' E */9 e" U/ [2 _' M! m* p {9 @* P0 g" |
A, b! B) @2 Q5 x8 y6 K/* no rts heap */! U! F5 _! `9 ]9 [# o) y0 [
Program.heap = 0;( H- }! Z! I" q6 |7 V( h
Program.argSize = 100; /* minimum size */
: R, o w+ J- a+ }0 _- F) ^ }5 {Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大; c$ l+ @* d1 H9 L# | D
* s- y/ }& U4 G& c {' m
/* create a default heap */: v8 N$ P) M5 i1 v& _8 E0 v
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
* L p$ G9 E0 a6 ]! R/ f! wvar heapMemParams = new HeapMem.Params();5 w( r' X$ L& s
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
$ p# l- Z+ I& T0 W Q, ^. Q5 a8 p b3 A2 U2 [$ u
var Memory = xdc.useModule('xdc.runtime.Memory');
3 D8 K1 k# W0 Y% M' b& C- _Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
1 e2 `, \4 K' k7 y; j5 r0 q
( o9 T$ x9 H$ u/ U/* configure System module */& A! h3 F: @0 j: z5 q
var SysMin = xdc.useModule('xdc.runtime.SysMin');
* O3 l2 |$ Z# x2 J- Y$ j0 qSysMin.bufSize = 0x1000;5 C8 M) D0 J' n$ B: \+ ?3 y$ L
SysMin.flushAtExit = false;
4 v# t3 D* i. q* u2 Q9 g
" n, x# T: t1 R1 J3 j$ O1 Rvar System = xdc.useModule('xdc.runtime.System');
+ A4 {( M6 I0 W* S) t9 t. ?System.SupportProxy = SysMin;
$ k9 i5 F- l# Y! Y6 I; s
9 y4 R6 x; X9 |* B% a/* configure SysBios to use the lower half of Timer 1 */% L3 L6 f% n4 }; ?' F4 X
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
/ e+ `$ T+ T% A. k* F) R2 Evar Clock = xdc.useModule('ti.sysbios.knl.Clock');
5 U* P" E+ R9 J& Q9 o# w! f4 ~Timer.timerSettings[1].master = true;
4 o# `8 a! i W* {8 ~$ n/ ^Timer.defaultHalf = Timer.Half_LOWER;
W9 {" M9 C. X9 S" ~% \( JClock.timerId = 1;
& m, n% S) q4 U3 [/ e8 ]. F# C1 x& i8 Z H' U
. |3 a0 Y" k) l1 b+ \
/*
" @' Q U3 @" e/ b4 b1 J * ======== Miscellaneous Configuration ========
# f' ?9 \/ S* V */, v0 F! g8 A$ s$ e- p& |
7 y. H$ B N4 i' z/* set default diags mask */' C% p x9 |' m" F
var Diags = xdc.useModule('xdc.runtime.Diags');- `, p B* i, N b, r y' a d
var Defaults = xdc.useModule('xdc.runtime.Defaults');: B3 y9 k. Q: l! m F5 V
- ^4 _; _) U& T1 ~ s2 kDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
3 O1 t7 b1 k" [: r- S1 v9 jDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
( W& Z; Y4 B7 c+ QDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
$ @# h7 f& D! C) N* _+ b. ?Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
* F+ Y2 p$ j' d) J3 KDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
2 s4 L$ s I8 q- E- e4 ]; f6 p6 sDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
7 e& |3 Z6 S& r, @& v3 wDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
6 ~, ]: K: a4 I& A2 r' WDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;9 U/ P/ V3 z+ } z; b x
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
7 Z( s; d' W8 M1 e. ZDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
$ X4 m- A1 B' [. t9 dDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;- v) F9 X1 {* c8 A; z) r8 O1 H" H8 f
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;# e! o, g) g1 W3 h, b: y) y3 ]
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
. t- N: q8 }5 L9 ~5 |/ L. ^# [Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;% X6 P( s6 q" H' b( f
% \4 Z" n0 ], b) }/* override diags mask for selected modules */
( N- l+ _; {- \! Q0 {1 r* W0 Mxdc.useModule('xdc.runtime.Main');8 N# @4 C' D7 U& W2 w M: {
Diags.setMaskMeta(7 V4 ]( k* b* e* }
"xdc.runtime.Main",
1 o' [' B& T6 `3 u Diags.ENTRY | Diags.EXIT | Diags.INFO,2 W6 [7 ^6 p* O5 g, r
Diags.RUNTIME_ON2 \; b. @ R7 e7 L
);
- g0 I. \0 R- C' x' H
% x4 ]' ~$ B7 E7 ^* x$ m1 s* ]/ Zvar Registry = xdc.useModule('xdc.runtime.Registry');, R: H! b5 u3 F8 x4 {6 y
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
9 |) L4 j% r( o9 fRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;( z5 i; X: D- v% F" G
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
+ v* d5 E) e, F1 O+ n4 lRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;( N0 K& e( o: L1 J3 P* Z: h( }' b
* G( z3 i4 ?- C o6 p# S- O4 {/* create a logger instance */
, o5 M* o6 H3 J. w& kvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');& I+ a. d; T4 q/ z
var loggerBufP = new LoggerBuf.Params();* W/ w$ d% f& K3 j" S$ P+ X+ z7 H
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */' \* }2 Z$ `9 W( j$ O
loggerBufP.bufType = LoggerBuf.BufType_FIXED;% _( h# U/ N4 C: p( A4 z
, P( E& r- h6 Uvar appLogger = LoggerBuf.create(loggerBufP);
4 J% P$ Q3 A1 m) P* O+ happLogger.instance.name = "AppLog_Core1";
, g+ l1 `8 H5 S! a/ s( Y" g( vDefaults.common$.logger = appLogger;; q. {0 L0 ^) i: ^2 F
Memory.defaultHeapSize = 0x8192; ) P* I& Z" E+ [7 J, Q/ T; z% s
Idle.idleFxns[0] = "&LEDStatus";
/ k/ X8 J+ V' {Cache.initSize.l2Size = Cache.L2Size_32K;
3 G9 c9 @5 x5 j/ z& P% B8 `% O
. Y! m' r! w6 g( M% V2 d |
|