|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
2 Y/ P# l; z* G0 C* [2 y我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下8 A* M j% ^9 h$ t1 q
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
$ i3 t! }7 P8 @. x
1 ~/ P+ ^! {; M) n! r1 h是不是需要在DSP.CFG中进行配置
8 U) L- ^: e9 J- ^; x0 }4 Q我现在的配置为, {) W% f3 w! G$ t0 z3 M1 i
& w( G: F4 P( k, A
/*' |" M1 e6 ^/ O! G. B
* ======== Operating System Configuration ========2 D9 x( [6 W/ Z8 ]& j9 e$ z
*/1 K+ R m1 o4 i
- E# M+ @/ |8 z8 X$ B9 ^& {8 h7 P' ?/* no rts heap */; Y( [ D* d( a( D6 a3 b
Program.heap = 0;
0 a& G6 y1 E, L' t! v, P: ^1 S# wProgram.argSize = 100; /* minimum size */" r g: S- D* |: X# u$ l2 E
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
3 i4 ?4 v& N' o
1 g- t) c5 }, \4 Q/* create a default heap */
& v, _8 C/ a6 J2 v; lvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');' P$ w% W' T; K
var heapMemParams = new HeapMem.Params();- K% X; J1 H8 u
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
$ l* u/ y5 o7 O5 U3 i* a4 x0 }. z9 q4 `% w7 X4 v+ N" O' G
var Memory = xdc.useModule('xdc.runtime.Memory');
, \/ U7 K. B$ L! s% v1 m+ vMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
5 ?1 A1 b, ^( T
: v8 t0 ~. v* w2 ?/* configure System module */8 V8 G$ c+ U# A
var SysMin = xdc.useModule('xdc.runtime.SysMin');
6 X* g6 X+ d3 V' E% J0 n- Q. VSysMin.bufSize = 0x1000;
* C2 w) ], }" u1 X$ n6 b9 nSysMin.flushAtExit = false;3 ?% x( k4 \3 o
$ u o, m% Z6 G2 @/ V" }0 u- N/ y
var System = xdc.useModule('xdc.runtime.System');, ]2 d6 [. h' x t- r9 R5 E5 M
System.SupportProxy = SysMin;5 L# D o7 D+ d, A; ?
: U1 ]$ u/ [$ T) V6 k. a/* configure SysBios to use the lower half of Timer 1 */7 ?* P4 H- s1 j; F0 H+ K
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');$ y4 J2 [- b4 l& \
var Clock = xdc.useModule('ti.sysbios.knl.Clock');. b5 ?2 e/ b* U& Z7 T% j
Timer.timerSettings[1].master = true;
8 v' v0 t, W+ g! J* HTimer.defaultHalf = Timer.Half_LOWER;
# ?. G4 x4 B! H! U; M0 \0 C! KClock.timerId = 1;
* m; S; r- o7 j! o; I5 N6 }7 q& V D# Y) S1 r* {6 L
- {/ l: m3 D8 O) _9 S" w/ a/ j
/*# g/ c& p: g$ Y$ j* {/ q
* ======== Miscellaneous Configuration ========$ r- t v; V, a5 Q: Y
*/
! U1 Z* {0 d8 I" M6 u
\5 Y% C c6 Q6 {/* set default diags mask */
) ?- l0 T/ D8 W1 w: c+ V, S* rvar Diags = xdc.useModule('xdc.runtime.Diags');
+ e: ?# G+ k) |* ]$ xvar Defaults = xdc.useModule('xdc.runtime.Defaults');5 M, [' D( b% K* F: x1 f
- E1 n# }9 k& u' R
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;( c% s6 r) S1 T- F
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;! K: M* _4 x7 Y j* v |( ^
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
_# H0 E+ k; D) HDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */( Y: b7 u% c( O2 G9 `
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */+ z6 X# k; R5 |% k% o
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;! q* q, z& E2 s3 P, t! ^/ M
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
; A' T4 J6 z' b9 J' NDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
; [- [( [7 H0 d0 RDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;9 b+ m4 E, \1 {& U
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;- W# ^) \: t/ I' o, b9 B) ~/ D
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;' q0 Q9 A) O, z: _1 w
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
) T8 u- Y+ w; x+ h4 P7 ^8 SDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
5 W6 {+ m( e# V% n6 sDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
6 q& G3 O( Q0 T0 h; t& j# M7 {2 g6 ~" r) ]
/* override diags mask for selected modules */
' {+ `, o7 m( f3 V. M' O4 Z- Q& s3 {xdc.useModule('xdc.runtime.Main');
4 o% W" l( X4 j3 V& U6 ^. sDiags.setMaskMeta(# k, U% A% X$ s' o% H
"xdc.runtime.Main",+ V# Q) a8 B2 b: \8 f* b& y
Diags.ENTRY | Diags.EXIT | Diags.INFO,
% @! `0 j0 Q# B Diags.RUNTIME_ON/ w) N$ U3 B4 |, K
);
( v% h3 o h) N; y3 x) r/ ~0 J7 K
+ T& X% Z- b. a! Y# M Wvar Registry = xdc.useModule('xdc.runtime.Registry');
) Z! c- s2 r# O, |) e3 i7 ARegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
- Y6 Q6 D* u) y% Z# E) ?5 R9 tRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
' z( x& t, @# Z# o- A! NRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
& R8 d* v$ b0 y+ T( QRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
. f8 j9 u+ V$ i# d
& i7 x6 \& q5 p/* create a logger instance */
. x3 U( ]. ^5 uvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
: S+ ]$ k y8 V: K) w6 ]var loggerBufP = new LoggerBuf.Params();
7 L' m0 u& v6 O4 M+ N( V# h7 SloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */" O, r( b4 k! d- p" q; j
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
" Q, z3 K( B2 D; u& S5 k# W& i, u* _- e8 W* z/ e. ^* F1 A
var appLogger = LoggerBuf.create(loggerBufP);
" [) C& n2 J g7 vappLogger.instance.name = "AppLog_Core1";$ y( ? V+ V* U9 H0 Q
Defaults.common$.logger = appLogger;/ w- C; p9 c; C" l) V! Z% ?* M
Memory.defaultHeapSize = 0x8192; / v6 P7 F. ?2 X' W0 e* {, t
Idle.idleFxns[0] = "&LEDStatus";
/ X: |4 `! m. d$ uCache.initSize.l2Size = Cache.L2Size_32K;7 P% F8 T2 v, ^( H2 K7 m
7 r" Q" g/ [; B8 V |
|