|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明6 d- m! @' S: E, l$ T( F5 Z, h% X9 D
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下' B { X) a3 W& K \" @& E% R
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
0 u: Q( q% e3 ~, s6 G, D% \, }8 H; u0 s W/ m
是不是需要在DSP.CFG中进行配置; H1 I1 Q% k k+ y
我现在的配置为
% s8 ~, O0 C3 C' S4 H. t' |1 \/ m, ]) ]2 P
/*7 ^) w& d8 V2 t7 Y) U
* ======== Operating System Configuration ========
0 ^% n: p, q6 \, H */" [1 O, z& d! S$ [2 b7 Q6 z
0 G& P7 d" Z3 e) m% U# r5 d0 i5 w* K. Z( t
/* no rts heap */
3 e {. B" j- D+ a1 d2 z6 e+ S- Z, `Program.heap = 0;
: n3 k) A- O( LProgram.argSize = 100; /* minimum size */" q! Q- k W* W
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大0 T! t+ o) l0 g& n* p6 z; Z
1 ^" s! f2 Q. p# V$ }& J% p/* create a default heap *// N0 L/ h+ N2 v7 m% B
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');' \/ I2 ?! S$ L4 D) W4 T
var heapMemParams = new HeapMem.Params();
0 t( M' Z' C! |$ x/ k6 theapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
% ?/ y; g t2 ^3 M. D& A9 G' K# s B) ]
var Memory = xdc.useModule('xdc.runtime.Memory');. v4 D+ L. h. u+ k4 S* B, W
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
( [# s" T1 x# p6 k+ X' G: a5 z- h7 Q2 k# c3 K2 }: M
/* configure System module */
5 N- U0 r ^0 O9 F. s1 v; hvar SysMin = xdc.useModule('xdc.runtime.SysMin');2 P5 y: ?. w( R5 L+ K" T
SysMin.bufSize = 0x1000;
, C/ r/ [$ W, gSysMin.flushAtExit = false;* c! F4 H. P o
6 s9 F2 ^' t T
var System = xdc.useModule('xdc.runtime.System');
* R. _7 m( u& B9 b- n7 l: bSystem.SupportProxy = SysMin;' g6 [% o) C" F- l* \) D* W# E
/ c- D7 i- Z$ y6 Z- o9 E/ a- D% g1 y
/* configure SysBios to use the lower half of Timer 1 */: X3 E$ \& n) S/ R2 O, P# n
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');3 ?: Q% H" b$ P, f
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
) s2 L/ F. `3 v# c. pTimer.timerSettings[1].master = true;
4 ]+ t8 V, _7 s; F- c4 T8 QTimer.defaultHalf = Timer.Half_LOWER;
9 J' z: U( ^! a# s3 S- X" _0 K- bClock.timerId = 1;
' M% \* Q/ o8 R" U f* f6 F5 N% T4 I0 |
" f$ O( t& ?( @. Z: z/*
1 i& b, W4 G, f9 K" q! e# ^ * ======== Miscellaneous Configuration ========) F% f8 \2 K0 T
*/+ t$ Y0 p& c" d( s
, [+ p7 p4 t4 l6 l3 g0 T
/* set default diags mask */
( I8 m, m1 f2 I4 T+ U* {5 lvar Diags = xdc.useModule('xdc.runtime.Diags');9 V8 ] x: f3 M- k# K
var Defaults = xdc.useModule('xdc.runtime.Defaults');2 v9 U1 Y* {. U/ w9 \& h
e, Y7 I' P$ a% dDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;( z; z6 J* {! ~+ Y' |; m4 Q5 o
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
; W9 {$ `0 i0 G" J# k$ WDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;: A* |0 V5 H3 x
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
# _# _$ }4 u/ X) IDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */3 B+ N3 p( O0 F6 Z
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;/ u) H2 m2 T4 t$ D( o: m
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;; g c Q0 f* S4 E
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;2 [4 s- u7 L& c) V
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;% b6 \5 A v) ]' W2 X/ G1 P
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;7 P$ r. {$ \, d! ~' w6 m; i
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
1 J/ W- \; x; Z" Z& s8 u: KDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
2 ?8 d" _# y" g' o! f5 p' V+ iDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
, v2 `( V6 M" n/ pDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;! G; E% K9 e6 A4 N
& P. T0 X, }8 z1 C1 ~: Y4 l
/* override diags mask for selected modules */5 Q5 Y/ w- w; ]" y, z
xdc.useModule('xdc.runtime.Main');- P" v2 V) {! a" V
Diags.setMaskMeta(
; u1 i) M: }$ a4 e; ?% b "xdc.runtime.Main",5 p7 {+ C* }0 p
Diags.ENTRY | Diags.EXIT | Diags.INFO, [& { U* E* ^& O Q ?- h
Diags.RUNTIME_ON
+ m/ k. ^3 O6 q( ]);0 `5 ^6 ]: }/ V
" ?# t+ H$ ]. U( _- D, n. g vvar Registry = xdc.useModule('xdc.runtime.Registry');
, X$ ~; y; @/ I, t. o; w$ lRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
( X" V& {) o0 L! PRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
% s5 g# G& C# r- b( b' i2 TRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;. g. O6 N+ }! u: @+ O8 c& v) P' `
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;- f4 ]: q. |: f; s2 E' Y
: I5 ~4 V: ?$ a
/* create a logger instance */
8 l' k0 z8 z- E0 G* jvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');. j9 X' J$ @: M2 i4 \, e% N8 s, H; C
var loggerBufP = new LoggerBuf.Params();/ W2 i- Q( |" O
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */& v" ]3 ^- i9 c! i$ @" Y' Z
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
0 [. V6 o2 l P; K
0 [, ~2 D8 X) }var appLogger = LoggerBuf.create(loggerBufP);
) f9 t5 D; `6 ^3 o+ h6 NappLogger.instance.name = "AppLog_Core1";" P8 a2 |% j: t; U# J
Defaults.common$.logger = appLogger;
6 q8 B$ I$ ?: J0 l' J9 q+ XMemory.defaultHeapSize = 0x8192; 2 }5 ^& B9 J- n$ b
Idle.idleFxns[0] = "&LEDStatus";
" `9 J8 T' c: B; WCache.initSize.l2Size = Cache.L2Size_32K;
9 k* J |9 Z( \. C4 u/ O
% A# ~: r( Y# O |
|