|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
: k, u( I8 B. L, k/ V+ V我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下4 n, w a: b8 Q/ F" {+ t
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)" v, l% r- l7 S0 ^! H
# W7 e# L% W0 G6 _9 _2 ] W
是不是需要在DSP.CFG中进行配置
2 J( z0 U) p) I7 T" O5 C9 b. l A我现在的配置为
7 S1 H% y, \/ ~7 h' K! Q& t7 g n8 d! ? C$ F
/** _4 m9 m0 G3 O0 i: B
* ======== Operating System Configuration ========
, r. a/ _! F9 D. v- u) B9 V8 u( i, C */! G8 i, W8 c- X! l& ?1 A5 n V
. l$ _2 |3 [6 i) |0 l5 i, A6 ^0 {
/* no rts heap */4 C" I0 r$ |: H; {+ Y
Program.heap = 0;
6 L* h/ w: e& m/ bProgram.argSize = 100; /* minimum size *// C, h2 P" u; e9 E0 B% @6 B/ A
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大5 A7 e9 [% @ _& O
% `" S; S7 [' m+ x! v G; b; l5 ~
/* create a default heap */
, x% y8 K' h& Y; k) qvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
! Z5 p6 B' Q8 @+ t" m$ f! o; Ovar heapMemParams = new HeapMem.Params();) x$ ~* C$ D4 G' G! I( G
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大. ?7 ~& a& f c7 g
/ G5 }: o# b+ |* J
var Memory = xdc.useModule('xdc.runtime.Memory');5 I/ ? l9 w% x
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
$ j7 D6 |; P E$ F9 @
& N4 s8 F% \( x$ _/* configure System module */
2 _. F) I6 S @var SysMin = xdc.useModule('xdc.runtime.SysMin');
9 W4 \2 \( q/ Z% b, x5 b& FSysMin.bufSize = 0x1000;
; J% W2 w3 n- W- j1 QSysMin.flushAtExit = false;, A9 [% @# }" T
2 g' C7 L& m$ j9 Gvar System = xdc.useModule('xdc.runtime.System');3 u) Q! q. `0 }3 u/ |
System.SupportProxy = SysMin;) V5 c7 R% {. B8 V4 b
- l" {" E% |& s7 K
/* configure SysBios to use the lower half of Timer 1 */. J( Z' S* h, x# e! Q. t' ~" {8 B
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
# M2 M6 i6 ]/ {! z- G' O6 A9 c2 o6 mvar Clock = xdc.useModule('ti.sysbios.knl.Clock');2 ~! ^8 z/ }+ l$ T- U3 \$ K
Timer.timerSettings[1].master = true;
) N' H/ n3 `0 |! F0 t1 tTimer.defaultHalf = Timer.Half_LOWER;. F e9 f- Z1 h9 D
Clock.timerId = 1;
$ \7 F3 k4 r: O& h
/ x6 d( t8 }( U$ L Q! x; ?3 ~6 d% B
/*& ^! C3 ^$ P A
* ======== Miscellaneous Configuration ========
# ^2 L- T, F6 }0 m/ y7 Z */
6 B) X+ e1 V. k* K8 n
$ ~/ @8 Z+ h2 E/* set default diags mask */; N/ L$ x; [+ B: D# Z3 B
var Diags = xdc.useModule('xdc.runtime.Diags');' B6 M$ b7 @; ^
var Defaults = xdc.useModule('xdc.runtime.Defaults');
$ e( ?6 F8 V' `4 ?) O# C8 s* g! y+ A2 H
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;5 c0 L& P3 [& ~9 y
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
. Z) \# F7 _! x1 HDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;4 @2 l- V0 v* W5 l% k
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */8 |* O1 U7 Q# a2 d
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
6 D! [0 W' M- t9 I/ g gDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
/ F3 |& Q# ]1 dDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;. F2 m1 h' t6 Q. @& h, [4 u
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
) M; x8 v K4 P7 l, N& X# Q- N& r; N( qDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;& I; d& L+ q2 s0 {) E& [
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;9 p3 W1 G$ j. |! a$ {# s
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
/ V2 _4 w) g1 [# T2 y7 N, [Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
* q' [: D1 \8 ^/ ~Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;/ d+ X( X1 O" C
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
$ |! A) j/ x9 C0 L+ X3 ]: y: D4 Q
/* override diags mask for selected modules */
+ r# }2 M. g+ w4 p1 P( ~1 s/ |xdc.useModule('xdc.runtime.Main');8 S! ?( t: F% N, ~4 v
Diags.setMaskMeta(% s* w( ?6 K# Y! q6 e
"xdc.runtime.Main",
$ n% @ q+ T8 q0 P$ P+ s Diags.ENTRY | Diags.EXIT | Diags.INFO,
$ n0 M5 ]; [6 ]- X5 w Diags.RUNTIME_ON4 g0 F/ O% o% t$ G3 k
);
( E5 G% l8 x% t6 {0 Q* ], k$ Y
4 U+ J3 N' Y! ~var Registry = xdc.useModule('xdc.runtime.Registry');% x8 [6 ?" @* u8 f; W4 ~
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF; \" p `* n5 j3 m# [' D
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
5 `. `/ s) ^( W# c' S7 dRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
4 K( S2 ~8 E P+ f0 lRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;' m1 {2 \7 X+ L7 ^1 Q
) t9 U( ?- B8 _$ U$ m9 i! B' y/* create a logger instance */
. U, C& B) O. ]+ a* y/ c, \! z. Uvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
& I' z4 ^7 ?/ @; I3 d/ D& wvar loggerBufP = new LoggerBuf.Params(); y8 X1 ?! }0 ?8 g2 u
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */4 p8 Y1 C% q$ e+ ?
loggerBufP.bufType = LoggerBuf.BufType_FIXED;) A- v$ m( p/ Q( h
# \+ R6 r* Q8 X) k m! J0 F y+ |' kvar appLogger = LoggerBuf.create(loggerBufP);
2 ]2 g3 Q& v: V, QappLogger.instance.name = "AppLog_Core1";% z, t6 B% j1 E/ t& x
Defaults.common$.logger = appLogger;
( i1 L! k; Y5 E# d. H) P: x. uMemory.defaultHeapSize = 0x8192; + W) B( M% v) G
Idle.idleFxns[0] = "&LEDStatus";
# w0 l: Y) c: L: qCache.initSize.l2Size = Cache.L2Size_32K;
9 g' v/ d1 z/ v' u& |. H$ @
6 B, w% R! S$ w9 ^* {; H" v# | |
|