|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明, I) Z* b4 s& v0 d' z' B! {
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
8 |/ s5 W* q+ h, ]; v(不过疑惑的是,为何单独DSP仿真就没有问题呢?)" a) B% ]7 d; P: v" U1 f9 ]
( p2 m0 y G0 K& ?是不是需要在DSP.CFG中进行配置: y/ A, R6 h0 h& y: y
我现在的配置为* T4 Z) d, n4 a, z" g* R5 \
" d/ n, @: W& W) c/*
' n/ h- q7 m" Y$ N8 G' c; W2 E * ======== Operating System Configuration ========
+ g. ?. d8 H* B3 w) @% l9 a# h4 K */
) l- b3 f: m0 Q( m' D& g
! ~+ r, G+ I0 a! K% n8 s2 P9 c1 N/* no rts heap */
# L5 H8 {: E8 W8 j1 Y9 i6 ?0 i4 RProgram.heap = 0;
2 o+ f( W- T( h1 C: T" `8 |2 C) JProgram.argSize = 100; /* minimum size */& I0 s0 Q) P: e+ f* V8 B
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大4 k5 w" k- I! G( H! ?) I* L" F
' b$ c& T2 S+ v' k8 O
/* create a default heap */
! Y6 \% v8 ~* a. h: B8 Vvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
% \3 M# v6 `' V7 lvar heapMemParams = new HeapMem.Params();
9 N: t7 ^) Z9 l4 c* ?7 c1 G0 [1 VheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大( ?) N; P/ S* E" V' Q( M
8 p a" c: e9 N. [1 q
var Memory = xdc.useModule('xdc.runtime.Memory');
# E2 n$ d/ a* \& \/ i2 wMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
7 v( j+ R' m' J" `: s* z% q; T) R) p$ K% A3 i
/* configure System module */
; n+ [7 Q( u) E2 s& P# Qvar SysMin = xdc.useModule('xdc.runtime.SysMin');# `/ ^& D4 ]6 C) Q4 q- G5 j
SysMin.bufSize = 0x1000;) t" b8 {0 m3 z
SysMin.flushAtExit = false;
6 Z/ k. Q& X9 P, n5 i3 n, ]) _/ B2 V8 ^) [ T8 J
var System = xdc.useModule('xdc.runtime.System');
# F. {1 L6 W7 l* k, A0 tSystem.SupportProxy = SysMin;5 }6 \: X N4 B, d2 l9 S
6 o/ M. U1 {; [! }5 H" L
/* configure SysBios to use the lower half of Timer 1 */' L; y( ~1 y2 O
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');! D8 y, D! O& y6 R9 [& r
var Clock = xdc.useModule('ti.sysbios.knl.Clock');. }; w$ b: H9 V7 w) n# h
Timer.timerSettings[1].master = true;' n4 V2 W, p% K% E' o$ g5 ]; i
Timer.defaultHalf = Timer.Half_LOWER;$ _* I7 M* d1 _. D
Clock.timerId = 1;
. b! s* ^. H3 ]8 r3 X+ w9 _( z7 }+ ^7 |; A& w; Q2 H' R' v" E
. G$ t3 E" ]% }4 D8 P/*
' T& f. l! |( z T, J( u$ } * ======== Miscellaneous Configuration ========( T8 O, j( V. {$ Y2 q
*/. {% p0 \. \2 k: Y
' z0 {" m+ {9 I( M
/* set default diags mask *// C0 U& B9 {; g* W5 i- d
var Diags = xdc.useModule('xdc.runtime.Diags');
5 h* \! N* Q/ o8 |var Defaults = xdc.useModule('xdc.runtime.Defaults');
- k- K6 i: Z5 b2 X" D7 ]& ]& Y5 |& m5 x7 ~$ M
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
8 J2 i- a! `. A; ^( I' X6 `0 oDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;* _0 r8 I( j# y: V, w
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;& N. h# w& H* S- e9 Z" j: d
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */- U' U" i5 p4 b5 R. ]0 _! w& T
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
& v* {) t" q, w% lDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
8 _7 n9 o& u3 q% H8 p! IDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
! E: z6 q/ H; u+ b% vDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;! r# C5 k; T: l
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
4 b/ L6 q S" W) n% gDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;6 }' F+ ~1 g: ~ |5 w8 Y$ |
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
+ U( |6 p1 [1 B. n/ }: ^Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;/ z3 W5 v7 [* S Z. q/ W; {
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
, l* E: ?# B5 Y; F; N! jDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
4 Y" H+ y2 c" T" `) w0 b, ?+ |% T& B/ V+ p3 k# T5 J6 z" q
/* override diags mask for selected modules */* }2 K: _3 L9 d2 v
xdc.useModule('xdc.runtime.Main');+ ] D9 P+ o8 S& {
Diags.setMaskMeta(4 \' M+ k0 b) X; l
"xdc.runtime.Main",
5 Z% e# ]1 i$ {- J( k Diags.ENTRY | Diags.EXIT | Diags.INFO,) K! g. w" s# M* r# ]
Diags.RUNTIME_ON3 v" ~# ?# |1 d. Z! W3 d, {! w
);/ z5 E; T+ t- d3 _+ C
# t/ m! K( ]; K% ovar Registry = xdc.useModule('xdc.runtime.Registry');
: J$ [1 l5 D, E/ GRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
! Z3 A8 a5 ]2 }+ a5 XRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;6 v9 b+ ~0 o9 O% q& m, \
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;' T4 u. K+ l1 k2 L% G6 [
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
3 m* j2 D6 P5 t) o6 m9 `4 [4 l- n5 |0 D8 x
/* create a logger instance */
, w- N3 L W Q' _" f, p1 ?var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');4 N/ J: J0 o+ |. @! J' u) `
var loggerBufP = new LoggerBuf.Params();
+ B8 i5 r/ w8 z$ SloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */4 B0 B& x6 ]/ Q
loggerBufP.bufType = LoggerBuf.BufType_FIXED;( W: x9 O7 P0 |; V
- g2 f m1 r' u) w0 p6 ^, y7 i1 Cvar appLogger = LoggerBuf.create(loggerBufP);9 \' C' H2 D! O5 B% u
appLogger.instance.name = "AppLog_Core1";5 U R( x2 m7 F3 e6 U
Defaults.common$.logger = appLogger;
2 A w* d( S# VMemory.defaultHeapSize = 0x8192; % R. c& i) t! Q& f3 T
Idle.idleFxns[0] = "&LEDStatus";9 L3 B; u; T# O
Cache.initSize.l2Size = Cache.L2Size_32K;, a5 T) X k* ]; e2 J0 ]) ^2 q
! k0 X! y6 V: p3 }
|
|