|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明, ^2 x# r$ e- o Q* a! p
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下7 y) @) o/ m1 }- ^0 Z) I: N6 o
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)! x0 v5 ^8 T! r! h
V7 N3 @7 j9 F& k8 v; r
是不是需要在DSP.CFG中进行配置) W" ~7 R) g. M( H; G6 x- g" z+ x; S
我现在的配置为
3 q) @7 I4 r" @8 f5 [! Z, D2 I# K O& d8 i5 [8 u$ |* j. i* m3 u
/*
8 R. u6 F; b2 c7 r$ F% { * ======== Operating System Configuration ========- {# \5 o, g& y4 C6 m- \+ z
*/( h/ q$ S R; B" x6 q8 {4 a
, g7 Z' g$ ]4 h% _% v" z
/* no rts heap */
4 R% }( _& {" XProgram.heap = 0;7 @- U# D5 H$ j) [
Program.argSize = 100; /* minimum size */
$ y/ {8 V$ ~' s8 C$ p1 qProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大" M$ I* q! a: B' `
8 n& }2 i2 C8 g/ |: Y
/* create a default heap */( w1 K. ]2 Y6 C1 k3 n5 k" ~: U
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');$ n0 _+ e0 M2 H @
var heapMemParams = new HeapMem.Params();
3 S/ u5 X" D& |, e+ wheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
# M4 ~ I8 R2 ]0 H& n& R, _' g0 k/ x. V/ W. A" d
var Memory = xdc.useModule('xdc.runtime.Memory');, e6 d) e& ^" f; R: h
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
; l( q2 D; w8 b0 [" ~/ v' A- c9 ?' J n' G$ n
/* configure System module */9 w2 V8 |9 s/ g
var SysMin = xdc.useModule('xdc.runtime.SysMin');
. w% T4 R0 s" t- x+ `' T+ YSysMin.bufSize = 0x1000;8 P0 y% V7 e2 [
SysMin.flushAtExit = false;
* V, v# P. I- @& a' `. G
" y) H$ P1 w* ]) x- ]. P' l& Yvar System = xdc.useModule('xdc.runtime.System');5 G& z6 o2 T! @, ^
System.SupportProxy = SysMin;" e; s; Q+ s+ C+ m5 D) Z' C' y
7 q/ O1 ?0 L' R! A/ z) q
/* configure SysBios to use the lower half of Timer 1 */
' P4 J8 x( b) m9 M& O' I) S$ gvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
+ ?7 H$ o% y5 F5 Z. ~; @var Clock = xdc.useModule('ti.sysbios.knl.Clock');
f/ `) W$ h/ ~2 a* a; M+ ZTimer.timerSettings[1].master = true;
5 A* ]& N% t Y$ j* G& Y- bTimer.defaultHalf = Timer.Half_LOWER;7 S, ?1 ^! f2 J
Clock.timerId = 1;
" T7 L" T* t, W' N# [) i' t
4 S7 Q& s7 {7 h8 b, J/ l0 W' h# ?! Y/ G- R0 M8 @! l$ ]
/*$ }8 t+ ]9 b7 K' E @$ ]
* ======== Miscellaneous Configuration ========! N0 h; N; A) B" n- P, L
*/7 t/ t9 \$ f/ `% t0 v
/ ], }" W! Y. n2 X6 Y4 R/* set default diags mask */6 n% ^8 q- X& A; B/ {- j) V7 J1 c( ^
var Diags = xdc.useModule('xdc.runtime.Diags');
0 V* B1 y2 N) v4 Z7 w% jvar Defaults = xdc.useModule('xdc.runtime.Defaults');( t+ s. t% h) v3 i5 O1 N2 |! u
/ ~. D, M5 H2 W( T, ZDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;# |7 B% j/ u o! ?& d4 K
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
8 g& r( g+ b8 h* M- ODefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;! ^( P! k& c! \, ?: N8 a# N
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */' A l- i; { I" y
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
, r- v5 j8 i3 {4 BDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;, _7 K) V: b6 F% U0 Y+ p
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;+ O/ m2 \, t5 I% K. l, H# b2 f
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
6 ~4 o8 q/ q* `: ZDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;; t" T( Z: ?7 Z1 ^0 o
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
5 d' r' g2 ~# V2 y$ c) g' tDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;. {& ^( M8 B/ l9 ~ h
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;8 a7 I; l% d& p3 m) }
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;2 ^5 r0 f0 C/ Z+ b+ W( U
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;8 s B( |2 ^" V+ H* }
$ r1 |2 z& {' p4 k/* override diags mask for selected modules */
. J6 g- H& s- oxdc.useModule('xdc.runtime.Main');
u8 e! S/ J9 RDiags.setMaskMeta(
6 L& p8 H L8 H4 {( Y) ? "xdc.runtime.Main",
$ u* E" o j, N* O. A$ U Diags.ENTRY | Diags.EXIT | Diags.INFO,' L8 E) \" t$ Y8 m# @
Diags.RUNTIME_ON5 e, a3 Y' ]9 E+ g% _# R4 ^
);
^3 a; Z5 M9 `+ p8 ^3 N% p/ H% ?- W; O- p5 M- E, C# E0 |+ `
var Registry = xdc.useModule('xdc.runtime.Registry');
9 n9 t* Z' m) |) Y( MRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;6 u' s. Z. h# C; l
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;; m! s, [ y2 i5 r( k: _
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
" ^9 ]! \' S4 Z. L H. x% ?/ XRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
% m0 B7 P6 ^# {$ X9 N! X3 g" M4 { G0 I* s" \/ S
/* create a logger instance */; v4 r; K0 _8 @3 [# M" W+ F
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');& j( ^6 q( O$ b% o% Y2 R$ _1 c
var loggerBufP = new LoggerBuf.Params();
" X- _; j. T2 L8 X& ~% u* L. zloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
6 n) N, p& B9 F; Y% V+ W4 SloggerBufP.bufType = LoggerBuf.BufType_FIXED;
, {$ O; f% S$ U' v6 ^: p2 i( T& S" B& P) ^" h, f( l3 o! z, H" h# p, G
var appLogger = LoggerBuf.create(loggerBufP);
; _2 f4 z% L3 @ u" AappLogger.instance.name = "AppLog_Core1";6 D/ q' ~# ]$ R6 |5 i
Defaults.common$.logger = appLogger;
# v; K) X, C* k3 N1 O7 KMemory.defaultHeapSize = 0x8192; 4 e0 [5 R" Z4 o# Z* L
Idle.idleFxns[0] = "&LEDStatus";+ {* y( b2 u: v' z- O# ^' F/ l
Cache.initSize.l2Size = Cache.L2Size_32K;
5 F# k$ y* @8 c3 h7 F# O S; H% S# z# t8 o, M* G0 R
|
|