|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
F" K; m- N1 B/ _3 t我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
, G- }/ b7 o! A2 F(不过疑惑的是,为何单独DSP仿真就没有问题呢?)7 r* t% U8 y8 a5 U6 A# n3 r2 }& F
. d @; r1 F, K1 N是不是需要在DSP.CFG中进行配置$ D/ z# b/ I$ j) [
我现在的配置为0 h: u: _' C5 }) B9 P1 S5 G
, e) L3 ~' w- i3 f/*
' o- P v" X8 B" l6 F * ======== Operating System Configuration ========1 A8 V4 Y- P% @! e, N1 @1 z* x6 T) i
*/2 s) r/ V% j; \9 C+ u9 X: j! T" F* J
+ m3 W0 }# P# h$ {$ o, i/* no rts heap */8 H+ E4 s+ i8 Y6 f
Program.heap = 0;
9 m0 K7 q" ^4 j! B9 o5 O6 Q7 \Program.argSize = 100; /* minimum size */) ?8 c) ?1 G/ A; R/ y0 L
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大+ C/ ]$ _; @' P0 J1 i
6 V, y$ R. S5 B5 c( S+ R
/* create a default heap */" @6 ?, u% u! Q5 ^" g7 \3 X! t
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
6 e( z# \+ d- j% B+ _( B0 ~( Qvar heapMemParams = new HeapMem.Params();
* }$ n) L' S( R2 h# s& X1 qheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
[( i: Y9 v( j8 \
/ E9 Q/ p. K" A" {6 Ovar Memory = xdc.useModule('xdc.runtime.Memory');. y) |1 E% i; p, M
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
& z: Y1 z" p9 e' N$ z0 N/ h
6 m1 k+ `9 S$ k" W/ g6 J8 C1 E/ W5 N/* configure System module */
/ O) c4 E3 `0 c: c+ Wvar SysMin = xdc.useModule('xdc.runtime.SysMin');
; W5 r v/ w4 O% u% P% m dSysMin.bufSize = 0x1000;& B3 l% N4 }2 y: E& S& {. E4 k
SysMin.flushAtExit = false;7 @5 h) ^# h0 w: n+ K
" J$ Z1 }; v; I: |$ K0 c* ^var System = xdc.useModule('xdc.runtime.System');
& f& p7 U' q+ K. B7 t& `- X; ?4 Y4 pSystem.SupportProxy = SysMin;
( o" w4 `; z4 c1 S/ H" T6 f9 w( e* ? a+ m
/* configure SysBios to use the lower half of Timer 1 */0 ~- `9 l. z0 T( j% @+ D
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');& {4 A+ p) Y- G1 p& Q% E1 P
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
0 |' Z2 e0 W jTimer.timerSettings[1].master = true;1 p7 O. A {8 w3 |& \- S
Timer.defaultHalf = Timer.Half_LOWER;
6 o3 O" ~4 Q) {3 [( C3 [Clock.timerId = 1;
5 X+ b; P5 q+ a N# I# _; y/ x# m5 v- T& `/ Y, m+ Y
! X! }% p7 M# K3 g
/*
/ D( y* V0 G% K7 I, j7 x * ======== Miscellaneous Configuration ========
1 b& e! _2 J/ o5 o% }' t* e* G */
$ A. Y1 N$ G4 W) @' i7 p( z7 w) D: _, s2 v
/* set default diags mask */8 ^/ B" x, u+ A9 f2 ~
var Diags = xdc.useModule('xdc.runtime.Diags');4 w; e7 R" i. p8 G- e$ {. m( ~
var Defaults = xdc.useModule('xdc.runtime.Defaults');* }0 M; g/ \& J, u
9 {5 @# N/ A! {Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;1 Q5 I& g" ~* e9 x/ n: Y- d
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;& ?& z& m- a" @1 z
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
7 Q9 h) a0 H6 Q9 M% M$ S9 C; PDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */7 H% A6 Q0 }. e6 i4 j1 {
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
8 s3 |0 f1 n% Z6 ~" XDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
e, r' e& v) C+ e+ uDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
9 U4 ?3 t/ Q: x4 N pDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
9 j" g( z0 w1 F% O) @5 e7 t6 ?* bDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
( P% V* h! D x/ d7 G% {( D/ TDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
9 t! \" u- f' u) h* MDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
$ c; I! X' g! i. j! \Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
0 v- S% v! G0 F: DDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
0 i: V6 z, l ?) P) V& LDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
, T6 N' R+ X+ ^ j+ s$ @9 J6 w
" i2 G U+ x; l; k/* override diags mask for selected modules */! H: ^; r; E# u4 v7 x" k" O
xdc.useModule('xdc.runtime.Main');
7 m/ [# }. P3 C, L c$ g% XDiags.setMaskMeta(
9 t5 N1 j, ]3 |7 Q "xdc.runtime.Main"," R; M7 W& F' E. T" `+ ]
Diags.ENTRY | Diags.EXIT | Diags.INFO,/ F- g0 t: w$ b! v: Y n6 `
Diags.RUNTIME_ON
1 }' w* }5 }% \% d3 D9 l! X% @/ Q);% r4 D- E4 Y, \) X
% v. J6 g6 c7 Q
var Registry = xdc.useModule('xdc.runtime.Registry');0 p. {$ _- E0 }
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;5 d- F) a- P( n- p9 v; q
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF; |4 |% R$ H, u# h( F; C
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
( r6 t1 d! z$ }3 o. @( ]0 \% ]Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
$ d+ O9 _7 F1 Z! [) {9 S |- [' Q& t1 ]( s- w
/* create a logger instance */, H* l2 Y$ n7 T( {
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
0 f5 \' R9 C" j. Q5 evar loggerBufP = new LoggerBuf.Params();
$ b* c2 k1 x0 w9 d; u' S, U. YloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */4 w( H& h9 T+ w6 g/ I" H8 q5 @ a9 m
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
5 f8 d6 y+ D. B0 O) ~! D$ \6 s9 N3 H3 h3 X7 c/ c: a. `
var appLogger = LoggerBuf.create(loggerBufP);
* d' s, `8 Q2 @* KappLogger.instance.name = "AppLog_Core1";1 t0 G# ~! l8 O9 H# v, N ^7 ~
Defaults.common$.logger = appLogger;
" d, @0 Y% F3 R9 y7 Z4 M* |5 ]Memory.defaultHeapSize = 0x8192; 1 e& s! q2 o; V, W& Y' t" t6 l; b. }
Idle.idleFxns[0] = "&LEDStatus";
7 G7 s( ]$ Q. o, t( z7 _& bCache.initSize.l2Size = Cache.L2Size_32K;4 m# d" @( G' C" l8 |4 C# f, L. q
. I& A/ y% e5 Q1 e' z6 d' X3 d) u4 K
|
|