|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明* m. f \( d6 D9 v/ B" e7 t A
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下& x6 V+ ]! E* V, S
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
' i0 N9 Y, P0 Z
0 @' U E- }+ r: M( P& L/ `2 G8 y是不是需要在DSP.CFG中进行配置
; V2 M4 b/ ?( w9 X" z( c. z我现在的配置为) z% I5 n; f- O( m% I
' e& G b. C- \$ ]# B
/*1 R9 X' y3 S0 N7 K6 C5 t
* ======== Operating System Configuration ========
. B# y3 T u, s+ {: A */
+ [' ?, x, m) S. S0 e- h1 t! R# b# n4 X9 I$ g/ W) {
/* no rts heap */9 D' ^8 G# W0 {9 {# [
Program.heap = 0;
3 R. h6 s0 a) s0 _Program.argSize = 100; /* minimum size */
5 h2 [; Z# W8 E" i9 F6 t5 S+ MProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
2 u. O; z( b! H! p3 Y, U& v0 K/ u) a4 }1 j Z
/* create a default heap */& ] u# }4 o* O( m5 p
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
% O- |+ m% i- W9 `# l9 mvar heapMemParams = new HeapMem.Params();
$ Q5 K7 o1 m6 N$ L+ d4 FheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大; A1 w, b% j5 x. O" m
0 F! h1 ^+ h& k1 k- i; v/ lvar Memory = xdc.useModule('xdc.runtime.Memory');
- ^' B F- r' h4 J/ D- Q: dMemory.defaultHeapInstance = HeapMem.create(heapMemParams);( |) |& R! y! R' ?* U$ p
$ W4 r: z8 G. Z/ o/* configure System module */9 i9 i8 D; n3 O3 Z
var SysMin = xdc.useModule('xdc.runtime.SysMin');* Q. _$ u, l$ C! \% }5 Q* z
SysMin.bufSize = 0x1000;
4 w4 v7 l C- {( TSysMin.flushAtExit = false;' o5 l* T- X( \+ ?, l Q
$ b8 S) Z6 A- @4 c: K3 o$ c: q+ evar System = xdc.useModule('xdc.runtime.System');
. Z8 q& N# o, jSystem.SupportProxy = SysMin;
]3 x4 Q# A2 L
. i5 O# b! W+ ?+ C( `) a) X9 R/* configure SysBios to use the lower half of Timer 1 */
5 S4 i# a8 d: nvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
; `: i+ a) S) U8 _, yvar Clock = xdc.useModule('ti.sysbios.knl.Clock');$ F- h0 ~/ o- p' m3 M: I( o
Timer.timerSettings[1].master = true;3 t, s% K: `! H: Y
Timer.defaultHalf = Timer.Half_LOWER;
3 \& F0 a" [3 L }9 X ?Clock.timerId = 1;
P6 f2 P2 {& v. p, h/ P6 k6 P. e3 @$ z7 [" m9 ~* t
& Q2 u& F) @% N7 s k7 l
/*
4 E& I; L, v( g7 E" \, k * ======== Miscellaneous Configuration ========
1 s( [4 v" a# i+ Y */; K/ M. [& d* C' H+ G8 C
( y6 D& g: o2 z5 E$ j. d/* set default diags mask */
2 ^; q" ~6 H% Dvar Diags = xdc.useModule('xdc.runtime.Diags');
; {. h' ~4 u2 x9 G3 F5 a' O6 Svar Defaults = xdc.useModule('xdc.runtime.Defaults');
- [5 D# T" _4 O/ O6 N
' b8 t# E( ~0 A& HDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
7 S8 r: F/ d* t& `Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;3 \+ M$ r3 u( B9 S2 p
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
# O/ n# S# i% T! u/ \# K6 E3 hDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
, K/ @/ _& V# n6 d: u8 q6 ]Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
9 U0 Q1 O8 r( {/ P% q0 tDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
. }. j* I }/ p9 {* UDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
" \ {1 b/ s" l5 gDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
1 M6 \& c+ I& W- v! tDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;+ m* J4 ]2 X$ l9 k# h. V
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
% w1 L7 `- q; z- n7 E% V4 xDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;# Z- ^" d. ^3 m8 w, p# G/ M
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;2 }/ k7 ^( F, w* d0 ]0 t% K ~
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
7 Q& A8 B* X9 S! W3 F$ a, ~( YDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
, \) b* n1 \1 |' ^3 e, s
& }) ], G, B9 @, I2 j( v$ R# y E/* override diags mask for selected modules */
! V; Y! |( d. x2 }) Mxdc.useModule('xdc.runtime.Main');9 k& n. O( Y U. {8 d0 }# E
Diags.setMaskMeta(
H# k& F& z6 E8 {1 c |9 U "xdc.runtime.Main",9 G6 v1 ~" k- a/ o+ {
Diags.ENTRY | Diags.EXIT | Diags.INFO,
( b8 b- y' y" a R' N% c& x: T7 ` Diags.RUNTIME_ON) c: H! o6 I& J9 ?- F4 S
);
" @8 x `: l h, Q f e
2 D7 N c# v7 d- q, a& xvar Registry = xdc.useModule('xdc.runtime.Registry');
# @# D# v$ Z2 X- x' K# q* }Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
; Y( H6 B! j- a9 v4 xRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;9 W) @; ^8 G2 B5 h
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;# O. [ _* ?0 w0 {% A3 t% B. d
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
$ `9 X1 {" v0 L0 C3 c! U8 O0 l9 j8 D6 H. n0 \
/* create a logger instance */9 Y( _& t: Z8 j$ ]
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');3 N$ F$ S( }% S' {
var loggerBufP = new LoggerBuf.Params();
) d4 f$ ~ c- {8 CloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */% ~8 n7 \ F% Q# d- p8 B. k
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
+ W* Q5 @. ~; f% w: Z$ P) y* y
3 [& x8 Q0 Q+ v- ?6 }+ _# Cvar appLogger = LoggerBuf.create(loggerBufP);
/ c% F# h. |% ^8 C4 MappLogger.instance.name = "AppLog_Core1";: V7 a1 U; l6 W& D, ]7 y% H! h
Defaults.common$.logger = appLogger;
1 l9 I. A: E' R# G; F, MMemory.defaultHeapSize = 0x8192;
$ x. `& F: Z \/ c. pIdle.idleFxns[0] = "&LEDStatus";/ Z5 B2 c& C0 y" R. f
Cache.initSize.l2Size = Cache.L2Size_32K;, o$ c; W9 d3 ~, l3 `- ^- y
% k' Z* G& w+ t( I5 v. D9 \' }0 Y |
|