|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
! ~: [# Z2 o# o. w7 l3 g我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
, _) u5 p- N8 F, ?( l; S(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
' |, }) }* i) r! q! E+ Q7 n' X+ R. ~% S$ A8 V# i3 X+ V. H5 n
是不是需要在DSP.CFG中进行配置
! h' ]9 u$ d$ n9 E% l9 H3 v9 W我现在的配置为
& G" \3 {. z0 q% x5 i4 S6 J+ G/ V( ]7 X, u" t' `
/*0 |; G5 i3 r* Y) `+ _
* ======== Operating System Configuration ========
1 G% h' M3 a3 x- @' h) | */
3 I3 x+ C. {9 v% R1 _* H6 n* J8 r8 s* ~! d4 m f) b! ~
/* no rts heap */
* }! N9 w8 O" T3 R" PProgram.heap = 0;
3 ? r. |# q4 mProgram.argSize = 100; /* minimum size */2 g9 G7 [2 t; m* I
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
! Y2 o4 M7 X/ A# m# z" |6 @' O
$ L) W/ }1 r5 `/* create a default heap */
3 v6 }" d/ e7 G* I1 O* S9 cvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem'); `+ O7 i1 k- \! c, Y3 h+ A
var heapMemParams = new HeapMem.Params();
7 x, o# j, J( sheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大3 P3 z, D' l2 b3 t- n# y6 T
$ K7 G5 q/ }1 g4 s) s+ I& Y( V6 [7 Evar Memory = xdc.useModule('xdc.runtime.Memory');) p: N# ^7 v7 z6 [; |4 E7 @
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
7 [! p L8 {( {
! Z; A7 k( e9 H6 C9 h4 e$ a' y/* configure System module */, B+ [* C* S* q
var SysMin = xdc.useModule('xdc.runtime.SysMin');
3 p9 v/ x7 G j1 w, gSysMin.bufSize = 0x1000;
) m( K+ D6 F3 ?5 Y! \ {6 Z: pSysMin.flushAtExit = false;0 I! A& E: V/ W7 k6 m- ]0 w4 Y3 S8 v
+ I5 e. q: Y# s# E# R K* W7 rvar System = xdc.useModule('xdc.runtime.System');
% L1 r/ V7 g, L3 M' zSystem.SupportProxy = SysMin;
* r B- u, |: A k6 h4 D. }
4 f. a7 g r. ^/* configure SysBios to use the lower half of Timer 1 */4 T1 t& b8 u2 Y5 L6 |
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
* O4 ^# n5 g a9 g& ]var Clock = xdc.useModule('ti.sysbios.knl.Clock');3 k* v& X5 t" t+ e! c
Timer.timerSettings[1].master = true;- M* t, c2 {8 v1 ]. ~+ @
Timer.defaultHalf = Timer.Half_LOWER;
( ]" r# w3 a T) R/ VClock.timerId = 1;
2 u' n, ]/ j' _! b+ O) q8 I' H( \/ A# f( k4 D8 c
( ?/ J, N8 m3 f) L2 k! s/ U/*. @/ c$ V4 ]! H: K: Q n
* ======== Miscellaneous Configuration ========4 f6 F& S. u1 z/ u7 N$ w
*/" E1 v T# m: U; W$ d5 z6 ^$ D2 c& V w
1 k* W9 P" V, L3 R3 |/* set default diags mask */
% F* L6 Z1 `% C4 ?% ]1 z1 zvar Diags = xdc.useModule('xdc.runtime.Diags');" K: n$ K% _: Q
var Defaults = xdc.useModule('xdc.runtime.Defaults');
% D. C5 c& v7 B9 z. N' g
V# i" q3 ?( o% o9 L: z6 ?Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
$ D( n! r' z& [2 J$ c1 n/ I) CDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;/ Z |% ]* ^2 P4 s; H. Z
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
1 R9 U# P' Q u7 L m5 {- ^Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */# Q3 n$ q3 @; ~( B* j
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */$ h& z0 y! ?5 ^
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;( y. p; Q- K6 A u% X; ^& \* O
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
6 A! C! \9 [. n/ U; C/ p: B! rDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;) M( ]+ l; l3 } A) {# g Z% \5 X3 a
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;2 T" U4 z/ z% o9 J& ]3 d2 p+ U: M
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;9 x7 M! k9 l7 m. i
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; c6 `8 h8 T6 o- _; \" [0 U0 B& F9 cDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
. y" [& @7 z# X2 ~1 W! D7 rDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
6 {, J l+ o+ T( b3 x3 z9 FDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
" Z# J# M+ {, f2 Z& p9 o
( G% \; L+ ]) l8 y" o% d7 J( I9 s/* override diags mask for selected modules */. C5 o9 o! p, g+ E- l3 K) B' X9 I; q) l
xdc.useModule('xdc.runtime.Main');
" u9 E d7 |5 e( S4 b5 w$ o" UDiags.setMaskMeta(' \& R* t+ e8 `/ z+ F* n' h5 V
"xdc.runtime.Main",
$ j7 h. ^) h" C0 N. t l Diags.ENTRY | Diags.EXIT | Diags.INFO,
5 H6 U) _1 @* j" O' J* E! c. J7 w+ n Diags.RUNTIME_ON
1 q/ R! k2 Y8 k7 v);
( Q; i K' \' c/ g$ ^
+ H7 H5 r' u) r8 |9 lvar Registry = xdc.useModule('xdc.runtime.Registry');5 x& U r* h( c8 i" [/ \
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;/ Q# V- ^: o' p* L
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;) [/ ?6 i9 T, x2 x6 E8 o( y
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;6 z: Y% ?- Z1 c
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
* c8 E5 X: ^" c9 T3 y, V N' m9 D# Y. T' w* v2 t5 Y8 g& w, o+ n% R
/* create a logger instance */
, d' {( _ j9 X1 V; Mvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
1 [( S1 d8 M: u0 E/ Jvar loggerBufP = new LoggerBuf.Params();
: p% D3 `1 x4 x% u$ [. t' S) ~loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
- e h9 y( ~+ L: _5 floggerBufP.bufType = LoggerBuf.BufType_FIXED;1 P* O8 j/ m9 ]" R* f; w
' q+ C" M9 W e5 {8 {% @var appLogger = LoggerBuf.create(loggerBufP);
0 |( {* b/ `/ d& KappLogger.instance.name = "AppLog_Core1";
5 B' f9 p+ e) I5 u( \Defaults.common$.logger = appLogger;5 ^" z- {+ a' V* g% Y# O5 U. `" e& @
Memory.defaultHeapSize = 0x8192; , v- @* Y) {+ F% M$ C! n
Idle.idleFxns[0] = "&LEDStatus";
; Z: C5 P; \) D* V, j9 o3 v( t9 qCache.initSize.l2Size = Cache.L2Size_32K;8 s/ ~: t7 d/ g2 L R
* K- j/ o0 j, Z" c
|
|