|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
$ V; ?# k' ^$ \3 b. s8 p4 Q( U我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下: h/ P4 Z$ Q$ s
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)# _* G0 t: n! {$ x: F* K
& h" `3 e- w3 |' r& M" G4 t6 p' A
是不是需要在DSP.CFG中进行配置
, C2 N& K+ J, }/ t3 O我现在的配置为
+ b: B* y7 c9 o3 T R8 W" N% I- P; [: _1 j3 ?6 F7 _! B* C; |
/*
. Y; N- c& A, o' d. R3 U * ======== Operating System Configuration ========( x4 h' q9 s# D1 K
*/4 q! P+ w+ J1 Y
$ H' E" @1 z9 y" j6 v: P& t. p9 V/* no rts heap */) m& T3 a p8 e L3 k# ~1 {, B( l
Program.heap = 0;
4 R' d& q! t k- W! mProgram.argSize = 100; /* minimum size */
- M) {# N9 g3 {! x7 M1 i! R* }( k5 @9 sProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
5 T$ ~$ w; ?/ R& g4 Z% x+ k8 S$ i' H. _/ q I8 c
/* create a default heap */
2 g' X2 V, t vvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');* G4 g f5 ^$ ~. X
var heapMemParams = new HeapMem.Params();
8 f1 ?" K) Y4 X U1 w4 v* HheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
" g# Q$ |+ g s: @1 ?2 a, `- ~% H/ {( W7 ?6 E1 v
var Memory = xdc.useModule('xdc.runtime.Memory');
1 f0 ^! D( a4 r# |1 NMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
$ T7 z8 d) {1 g. X8 z
8 C' `! u# G# g7 y l" p$ U/* configure System module */" e' R/ \0 w4 |( l, T4 ?5 s" f
var SysMin = xdc.useModule('xdc.runtime.SysMin');. e' a3 r# x( k2 a' e' J: m
SysMin.bufSize = 0x1000;( {! I1 @8 P) {4 @" g, Y2 O
SysMin.flushAtExit = false;, f9 ], L5 A0 X
7 |0 Y( t6 H( h+ E/ [$ r& d2 nvar System = xdc.useModule('xdc.runtime.System');
; u' `; F5 p3 @9 r4 D& X! F% I" @System.SupportProxy = SysMin;6 P I+ n7 _1 i. U# ~1 X( L
1 S1 c! q2 g4 n, p G; w
/* configure SysBios to use the lower half of Timer 1 */
3 Y/ N: S- I* M7 J% |var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
; ]% t' H# |/ lvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
7 q! ]9 d/ X4 E0 R% [9 B: gTimer.timerSettings[1].master = true;
7 z) {$ f( l3 a5 W0 oTimer.defaultHalf = Timer.Half_LOWER;
- \7 w8 X D$ u6 O* X. [ s$ iClock.timerId = 1;/ ~! g' B* y. ]9 s7 P* I4 s
6 {( e3 D3 X: e, @
" u+ i) ~3 S; B# G2 W; \/*3 ?) P% r0 ]( n: v' i+ G
* ======== Miscellaneous Configuration ========4 f, l; _! |4 N- h, ^
*/; j e; j/ d1 b% \# u `( b" Y8 I
, \* L C, O$ z7 |8 ^7 _
/* set default diags mask */
: [1 ^' ~( g! ovar Diags = xdc.useModule('xdc.runtime.Diags');- _4 ?& x+ q1 R2 u0 b
var Defaults = xdc.useModule('xdc.runtime.Defaults');
1 _ B6 x6 B; P1 ~- Q; D u
* f6 { U Q5 r! Z- `) VDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;9 G5 s+ z' F7 h" e n: D
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;! L0 r) {9 T! s
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
' c9 {/ \# ]; o) ^. sDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */) I7 j, `( y2 J) q% g) o6 V
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */3 N4 A; n( a6 G- d6 T L- b
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
c1 Z; W( `* Z) v1 wDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
5 p# o; n, l& R- v" b aDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
8 {$ d+ O+ U9 L( ~7 XDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;* Z9 H2 u) n: A' L" F. q F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
) l% W# F, n% ?7 k8 x2 j% A/ {Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;+ F0 K. K( m8 D. @1 K
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
' T/ i% O0 t. \$ TDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
V5 d- Y& P' w) e* o) g! B4 QDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;/ V: {; F" h4 E" _% L
5 t7 A% M8 x$ T _
/* override diags mask for selected modules */# ]" ]3 s, m& ]$ }! ], O
xdc.useModule('xdc.runtime.Main');
- K9 X5 j% I/ a# ]' B# n; MDiags.setMaskMeta(0 v9 s# G3 E6 O5 U' w9 m$ q7 p; S
"xdc.runtime.Main",
0 a a6 K" F$ r/ t Diags.ENTRY | Diags.EXIT | Diags.INFO,1 |: u1 a5 U; M8 y
Diags.RUNTIME_ON8 a" m& T" G6 ~. i7 z7 O$ R
);
. g7 y9 q$ O* v" @
% m+ R6 ~7 T. J. a$ o# Cvar Registry = xdc.useModule('xdc.runtime.Registry');
a5 A. T) h2 A) B& y4 \0 B5 _1 F$ KRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;" w; S+ r$ r( q2 ]; ^& _% u. e
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
# c: c- Z/ b' i" @$ U# ERegistry.common$.diags_INFO = Diags.RUNTIME_OFF;. t7 \9 h+ V! B" C& }- W
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
: P* K/ |# r9 }9 a& \% L* _% n1 J% V4 M# H( `& s6 O
/* create a logger instance */
6 N# e. D- P; F; f8 G2 D/ q, w& }$ ^var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
$ z: d1 M r j( uvar loggerBufP = new LoggerBuf.Params();; x" L" u9 E/ l! g' s
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
1 c$ }% R1 S2 c* h5 m; MloggerBufP.bufType = LoggerBuf.BufType_FIXED;
% k2 Q) n) n) V
* o1 C1 _& F8 b# ~/ t" bvar appLogger = LoggerBuf.create(loggerBufP);2 V) C7 w& F- M j7 g$ F
appLogger.instance.name = "AppLog_Core1";8 {! c! J$ E/ }" z
Defaults.common$.logger = appLogger;% O; k6 C6 W+ L w
Memory.defaultHeapSize = 0x8192;
* Z {2 i' c3 p/ ]$ w% @- @Idle.idleFxns[0] = "&LEDStatus";
- v4 \* t! A& u: N! \" z- U: MCache.initSize.l2Size = Cache.L2Size_32K;
& j& L0 W; U2 p, W" y' h) x
& v% @, t1 [! o; Q3 J% e/ d |
|