|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明2 ?2 C& n, M' f# o- E. O* \, G
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下- W8 |$ ^+ ?' @' u& j0 A
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
( l5 j/ `2 B5 t3 @3 ^ W
; f( g( T. H* u) Z! P! Y) C* R, @0 S是不是需要在DSP.CFG中进行配置, ^: Q" J) K: ^; {# T3 i
我现在的配置为
( Z) x, M0 v1 W- _, D% y3 S' [" ^
/*7 x2 T& \9 }" w p0 X
* ======== Operating System Configuration ========2 ]3 g5 Z [; K ^
*/
# K4 s5 r5 o, Q4 A7 ~! D
5 R H$ R. [2 W/* no rts heap */
& ?4 E" Y K! g. W. k) Y: ZProgram.heap = 0;7 L+ [& N+ {, e$ p
Program.argSize = 100; /* minimum size */: `! s5 N8 \) f; |
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
# _2 ~, `8 ^" ^3 @- D
+ h5 @1 g- d$ [ x/* create a default heap */
& L; T) Y' ?- G( t2 ?var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');/ o5 Y! j4 n& T% g$ y" v* N
var heapMemParams = new HeapMem.Params();
3 ~5 V7 W, t) E" ZheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大5 c" f Z. j" h+ O: U6 A' x
2 {% j1 y/ G7 q5 \var Memory = xdc.useModule('xdc.runtime.Memory');
2 E! \# \6 O' |+ xMemory.defaultHeapInstance = HeapMem.create(heapMemParams);% s- S6 t9 _" E9 c- b
& @% ~+ Z( `. j7 B/* configure System module */6 O- c& G7 \" P3 \. n. k
var SysMin = xdc.useModule('xdc.runtime.SysMin');
2 L4 E5 O' N* _2 ~8 PSysMin.bufSize = 0x1000;4 Q" f9 }7 s3 B
SysMin.flushAtExit = false;
2 Y( J9 ` N* F: q2 u9 g) }( |% F
var System = xdc.useModule('xdc.runtime.System');) [* d) p) H! q2 L. a8 B
System.SupportProxy = SysMin;/ B% o; x. G5 E: j- T) B+ Y# h" D
3 H4 [0 I% w6 e V: s/* configure SysBios to use the lower half of Timer 1 */1 I, Y$ a. |, [) a2 V
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');. A9 L7 s; e9 i( c1 h! W) f+ Y: ]
var Clock = xdc.useModule('ti.sysbios.knl.Clock');" d8 b3 Q' Y* P* n- E3 f$ \
Timer.timerSettings[1].master = true;1 e! |! h) Q; v5 p& y
Timer.defaultHalf = Timer.Half_LOWER;# _+ p$ h2 Y* _, ~
Clock.timerId = 1;$ P) |2 }( S3 |; S1 j$ M2 d, {
! c* n# k! b. }% r
& D6 N! V; p, B8 _+ E* \/*
8 ?- m9 h5 T& d {% ?$ m! z * ======== Miscellaneous Configuration ========* u" \8 ~: O9 ]" E
*/
# E( X L6 M$ M+ M: v
$ {( `( a' h. K4 {7 S7 T/* set default diags mask */
5 j5 _1 e- u6 L0 [/ `0 Lvar Diags = xdc.useModule('xdc.runtime.Diags');; v( _* [5 J! t2 r H1 z
var Defaults = xdc.useModule('xdc.runtime.Defaults');- c5 c7 ]2 O' Z' n: G, S! i, D9 H9 r
. ?* k3 G% U; u+ I
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
3 }6 S9 q1 S$ W3 _/ |. PDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;: G2 e4 O2 ^0 `1 ^: o: a8 D+ c
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
& w. D3 r& z' u$ ~Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */' f3 M! J& ^7 C1 m4 n$ D
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
6 b% }! q1 m) nDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
' x! z g0 [7 z y$ ~0 M1 r# R( yDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;9 A/ {' W/ _* ?5 y* L0 j% p* Y
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
3 q( T! B" v3 W7 m* B& h7 IDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
, N% X' L/ `5 v/ YDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
! a9 r% x8 o! K+ V% XDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
7 [" m, t1 g) U' u# s# ?: x- _: CDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
T2 b. W4 e" {" ]: {- A% MDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
( G6 ^. e, }! K/ g4 p( bDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;4 Q9 Q, i- O4 {8 R% r- D
! q* ^' r+ \. j+ S! L0 j0 K- M
/* override diags mask for selected modules */3 H2 w' B2 E. j% e7 N+ x! ?
xdc.useModule('xdc.runtime.Main');4 u( l7 T* c0 K: A% j; |
Diags.setMaskMeta(
3 x5 O1 ]3 W; H" q "xdc.runtime.Main",
Q# ^0 V/ h3 P$ S' {* ~ Diags.ENTRY | Diags.EXIT | Diags.INFO,. z! ]. E. b) Q, Q* y$ P1 N: J. O6 d
Diags.RUNTIME_ON" n6 [+ ? O/ P2 ~ A$ @
);
8 y8 g6 B( A" h
+ H4 b$ e. U: X1 fvar Registry = xdc.useModule('xdc.runtime.Registry');# s. G" r+ A- K( d4 J, E) W. Z6 Z. |# ~
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;8 O( \: j, y* k% B1 v2 `
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;" F6 ~5 K6 ^4 j7 I5 B" }, g5 V% t' ?
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
: u5 C! a2 _7 i% @1 GRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
# B. J6 M% p u4 q. m' _! D
- D/ ?3 b z5 t, i/* create a logger instance */
6 x; B, n% S: A, G/ d7 G( ^var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
7 |5 V: }$ C. F. V4 l3 mvar loggerBufP = new LoggerBuf.Params();
, N8 `- V) L; ]9 vloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
7 C$ v# K5 A( I, PloggerBufP.bufType = LoggerBuf.BufType_FIXED;
) }+ c9 Q6 f% e7 M. O+ \' r+ t8 C h# z: @- |2 p
var appLogger = LoggerBuf.create(loggerBufP);
5 y+ v" G) S5 ~3 fappLogger.instance.name = "AppLog_Core1";3 J( {+ W* Y Q# ^$ q6 m' B' S
Defaults.common$.logger = appLogger;' F, n) w. ^6 e+ _/ ^. y& z" s
Memory.defaultHeapSize = 0x8192;
5 r/ b. T! e" bIdle.idleFxns[0] = "&LEDStatus";; ^; p" a! o" u) s
Cache.initSize.l2Size = Cache.L2Size_32K;5 l% O$ Y6 t, ]" K( N$ J7 R* C
3 c3 L; N( h. F- }1 C- ]6 Y |
|