|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明" n. h1 O6 W ~# ~+ j$ P7 m5 k- g8 G
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下# k/ L8 d9 k/ i+ X' a, t
(不过疑惑的是,为何单独DSP仿真就没有问题呢?). a+ J) o; v2 Z0 r$ c+ w
) J/ O9 \8 f) Y# B) d, Q: w) i( I1 S, b5 z
是不是需要在DSP.CFG中进行配置
, Q( N! h9 X- r3 i5 ?4 }: `3 m: g我现在的配置为
( S0 F; }1 H0 M& ]* d& ?4 \4 w' }5 h9 M/ X- `( S
/*$ Z( c$ s9 {$ f
* ======== Operating System Configuration ========2 y+ \5 q7 E0 o6 ~5 f O! m
*/
5 s. q* N8 t6 ]% X' c; W0 T$ R5 ~( {, O% b
/* no rts heap */
4 C& W7 H# X% IProgram.heap = 0;
! T% j$ k( K# `+ e1 ?0 ~2 w. { w$ jProgram.argSize = 100; /* minimum size */ |3 J# o- y8 R" L# e+ n/ p, s
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大1 _4 Y3 t; T- B, T
, k) g! W! h: [; f' c
/* create a default heap */
2 Z' E* E: R3 r$ k) Fvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
/ a2 k( P# c" N+ |/ o$ o" V! mvar heapMemParams = new HeapMem.Params();
- a% L9 L' `3 O3 D% wheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; t$ v4 C0 [- b' L9 q. L; F
8 z' o* D q- q1 r# N
var Memory = xdc.useModule('xdc.runtime.Memory');* h% R6 U' |! k
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);. n- k6 [% V% M K: J3 q# n) {
+ z7 K* Y& ]7 L" K @$ V( _& C/* configure System module */& ~2 w/ ?7 e6 C" ~# c
var SysMin = xdc.useModule('xdc.runtime.SysMin');
# N: E2 v5 i4 N1 ySysMin.bufSize = 0x1000;$ X+ {$ W9 L/ k3 d2 F& U3 i4 c
SysMin.flushAtExit = false;
( s8 C& ]+ r8 [3 u; Z# [: ], {
var System = xdc.useModule('xdc.runtime.System');3 l4 _3 Y. \- l" K
System.SupportProxy = SysMin;
) K# t4 _3 `! K. |4 i& ?4 U* T( f$ u \' }" H5 V: z. D
/* configure SysBios to use the lower half of Timer 1 */2 |8 `3 L3 t+ l5 x! X
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
7 s* l$ \( ^9 O+ O0 ~var Clock = xdc.useModule('ti.sysbios.knl.Clock');
3 A+ u1 s3 l& |0 w$ Q. G6 V# sTimer.timerSettings[1].master = true;
$ x' R6 s) w3 {Timer.defaultHalf = Timer.Half_LOWER;
" R: P" v8 s7 j2 p/ oClock.timerId = 1;9 f. C4 q, Y8 b1 P
' \" @6 f6 Q9 W M# _8 \& S& \
, I! v# G8 n8 d3 P5 ] i/*
( Q$ t* J! S) |. d# v7 u0 z * ======== Miscellaneous Configuration ========
2 Z- }+ X0 t8 m0 [ */
+ \4 y3 w6 ~( e @4 p
: U* M5 N, A( b1 B/* set default diags mask */$ C* T7 D3 \5 T! ]
var Diags = xdc.useModule('xdc.runtime.Diags');
7 b1 w% j% g1 X V! g3 D# M0 dvar Defaults = xdc.useModule('xdc.runtime.Defaults');
) L/ Y% I: Y- R3 u9 a9 t7 B# w) N8 J8 ^' c
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;* r: l8 e- ]/ c. z$ U6 w( o
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
4 {3 e+ g/ T0 y5 eDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
$ q% Q: j4 `* c$ W( ?2 H. e' t% Y2 B" fDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */5 `" j" b9 }( @5 g
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
$ t' J8 y) E; }* JDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
" w* o4 E7 T5 ZDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
|1 x$ i1 p( ` dDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
m; b; P/ a6 B A* R) yDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
+ D6 b/ s0 C+ X; s; `3 \0 nDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;# q. O) y7 c' h7 v/ E) r
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;6 s3 H2 f7 @, v4 J; ^0 v- r
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;- R& J" N& @1 K5 e' l8 N
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
, V* T- q) X1 [; a) |Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;' l/ J+ n6 d% m
S u& A% k" R( q& N$ N" I
/* override diags mask for selected modules */% c! t( G; \$ t) s
xdc.useModule('xdc.runtime.Main');
" N6 `' z, E! q0 PDiags.setMaskMeta(8 d- \' J, b. I+ c
"xdc.runtime.Main",: t: N% A" L0 A6 t. _6 B5 F! ?3 C6 t
Diags.ENTRY | Diags.EXIT | Diags.INFO,
( W' `6 v r5 k" Y1 T% g Diags.RUNTIME_ON
) I5 ]7 I2 W. l! n2 z& {: _( J);
( B* p- d" f' {' D8 |
/ n. t4 r8 w& o% ~" \/ Vvar Registry = xdc.useModule('xdc.runtime.Registry');: u, h. M7 H, {: D) G' S
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;( z$ n! o- W M2 ~+ |4 N
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
9 {9 J, n$ n, t/ c- d' {Registry.common$.diags_INFO = Diags.RUNTIME_OFF;" K; m, n4 p3 J- P$ J ]+ L1 J& e
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;' Y! R- b* `0 u+ c
# m- I3 A8 o! W9 d6 r/* create a logger instance */
% t. R% G# B9 X5 ^1 Wvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
2 Z( e: ~0 S7 zvar loggerBufP = new LoggerBuf.Params();6 {- G4 b: v m* f, \
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
* P4 \8 X% j8 @% C1 k- |loggerBufP.bufType = LoggerBuf.BufType_FIXED;' V/ a# z6 K) l
# w' T. u' S. Kvar appLogger = LoggerBuf.create(loggerBufP);4 W0 j6 ~% [9 x
appLogger.instance.name = "AppLog_Core1";* l" `) V3 f0 I2 o
Defaults.common$.logger = appLogger;
, a4 C$ e' ^3 v$ K9 f& k* qMemory.defaultHeapSize = 0x8192; ; u! K" E5 b! r- V! F( L' y V$ f
Idle.idleFxns[0] = "&LEDStatus"; O, Q: x8 T) o/ c) P% F
Cache.initSize.l2Size = Cache.L2Size_32K;: `: s- e$ C" P$ y: j
7 q3 i, M7 @/ x& p2 M! n
|
|