|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明, @! g+ ] C7 B5 l: y: ?: N5 C
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
* r$ p" T3 |' ?(不过疑惑的是,为何单独DSP仿真就没有问题呢?)5 e- q; k& y- a! R8 M) h% m$ q; E
! U3 w4 l7 r& }5 E4 [3 o: K
是不是需要在DSP.CFG中进行配置: k7 k% A) S4 ?/ F% ?8 [
我现在的配置为
4 l; j3 q4 b+ m' M9 f
( W, I6 p4 q3 r9 |0 n4 D& r- [* \% w/*! J8 d/ x3 ?1 i1 H2 P. f( w& R
* ======== Operating System Configuration ========
; P5 ]+ y* S& Y& F */
/ o6 y9 C1 n& X0 ?
) h' s! S# M2 m& u0 f/* no rts heap */
$ \ C1 @0 r5 C+ F7 O2 Z; `1 DProgram.heap = 0;& [* ]1 Y B" l& }
Program.argSize = 100; /* minimum size */3 _7 @7 e, B$ n: L; W
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大' ~' [8 B! o; k% q
3 k# n; k1 O. {
/* create a default heap */
5 |. y I5 {& F3 Q# W' ^( `! pvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');% M) @7 @# ?% ?# A* c
var heapMemParams = new HeapMem.Params();
- `+ ]7 U9 Y( J j: w7 jheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
' ]$ F" ]* u, u! |* k5 J2 C7 M# w+ b/ U! ~! E( O; ]
var Memory = xdc.useModule('xdc.runtime.Memory');9 I2 I9 ^4 X" _
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);5 k! n6 }3 o7 {, |5 _5 M
( M. o3 u$ E/ [( a
/* configure System module */7 h& ^% e9 X( U7 n: g' |7 H7 T
var SysMin = xdc.useModule('xdc.runtime.SysMin');
1 Y" j# f9 R5 T8 q$ pSysMin.bufSize = 0x1000;, C" y9 a' x, B7 f
SysMin.flushAtExit = false;
# ?2 ?* O8 n# x! M
5 G$ v i4 |( G, o# fvar System = xdc.useModule('xdc.runtime.System');* [1 z( d" m2 V
System.SupportProxy = SysMin;
8 x9 Q; N" ]* F; D
7 }! }2 c" d) E* ^8 L1 ^. X/* configure SysBios to use the lower half of Timer 1 */
6 S( U; f" H/ g: Cvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
4 S/ b9 ~# Y% `# `/ M; v0 J$ U% pvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
`' E6 M/ @2 r, L$ p4 Y8 A, STimer.timerSettings[1].master = true;
" r- z/ Z$ j5 u0 F5 o& YTimer.defaultHalf = Timer.Half_LOWER;
$ D6 U) N! t& S' i% @# O2 v/ y& AClock.timerId = 1;
7 g, Y! n+ v6 l, t# F
+ o, U' |+ S( L" u+ v) P2 s, }- `8 g% B, `8 ^1 s
/*5 Y% E5 P3 R2 K1 S" |2 E+ w
* ======== Miscellaneous Configuration ========+ y5 y) {) s. |2 H
*/. f& p$ t7 h2 l8 R+ j4 K6 _$ X
' F% t! C" N0 i% c6 j/* set default diags mask */
& _. I/ d1 `7 ?3 ]: w5 Yvar Diags = xdc.useModule('xdc.runtime.Diags'); g4 ~' q% Y% J% r x
var Defaults = xdc.useModule('xdc.runtime.Defaults');
# k" j8 R* J& k, F% c
) n( k3 F3 V9 Z8 b% ^1 i# SDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
; |3 w' n* J- w( k# r* _Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
+ p1 {8 X( k. j) w, t' B! JDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;; N5 J Q8 W# T
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
! n w* M9 d: x# a8 CDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
z5 U2 {" Z( E, v# ]Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;6 ?3 P7 _9 X$ W% S' |! x& h+ C
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;$ P8 ^ O3 O; c b* t: {$ T
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;- D6 z" N7 u" r6 h3 b" j$ x8 {
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
& n* ^% k, B5 O2 j8 GDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
. B- K, U$ S# nDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
9 h: C! ^9 B1 w) t9 G+ `5 S: l5 KDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
: Y) s+ t2 m4 {8 HDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;; q7 n8 u+ X8 T8 c; E5 k0 H; Q1 ~
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
7 z! F5 o4 s4 ?6 {5 _0 h% S6 b* {' W, z, o% G# ~( f; D
/* override diags mask for selected modules */
% r* O+ B3 {, \+ Nxdc.useModule('xdc.runtime.Main');
% p6 C5 \8 G. \3 s3 y) z2 W) a- e3 _Diags.setMaskMeta(
0 T% O# v( c) j- h( e! h' q "xdc.runtime.Main",
# E/ h" \5 F; o& t Diags.ENTRY | Diags.EXIT | Diags.INFO,. E2 V* Y$ \( S, V3 a
Diags.RUNTIME_ON
; G0 e& |4 X" e);
6 H# ?- Y, O( U2 \% b3 a' L5 ~5 [* S( @& p3 A
var Registry = xdc.useModule('xdc.runtime.Registry');$ ?( t' n3 B0 G) ~: p( v( W+ O
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
$ g u# ^0 `+ X( C! P5 d3 URegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;* k! c! c% ?6 S2 R; a7 b5 z; g! ~
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
& H# C/ E5 h, _8 {. tRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;! X/ H' y" Z/ V; D1 |
# c# |4 E3 i' g
/* create a logger instance */
. a0 P8 @% }! f- P4 z5 J8 Tvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
) U4 |5 M0 }) E* [- q: C3 h2 mvar loggerBufP = new LoggerBuf.Params();
6 v% A6 j- t5 BloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */+ H3 H5 Z& H* X* W+ ~! U
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
* H" }# A! X! ~3 ?* T
: ]5 X2 H5 ]6 [4 Y& ~1 K0 m' lvar appLogger = LoggerBuf.create(loggerBufP);
3 K8 r2 ~7 P% Z% a& \9 rappLogger.instance.name = "AppLog_Core1";# S- \6 C" s6 N
Defaults.common$.logger = appLogger;1 K' P/ X& |5 k' e% s
Memory.defaultHeapSize = 0x8192;
* [3 [9 l% q( s3 p. L8 H+ i4 XIdle.idleFxns[0] = "&LEDStatus";5 U) A2 p( M% K8 ] V8 Z9 e$ \
Cache.initSize.l2Size = Cache.L2Size_32K;! c4 J% S6 a- |+ O! \. g" w
) t- Q. C" E8 O h9 v7 F) [* k
|
|