|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
" q* R+ x& k/ x我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下- p+ X3 E; @; Q2 }. ^- r
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)% h" T7 K: B# i2 m( t1 ^# s( f6 s
) D! O1 ~% K# `% Y$ O是不是需要在DSP.CFG中进行配置. e! s, \. m+ N2 z! j( D
我现在的配置为
7 @! z' X/ ~8 {6 R9 P$ j9 M, u6 ~# @" Z4 [4 W
/*
( I+ B0 a8 o) _) v0 t * ======== Operating System Configuration ========& g! k: P! X% x; @4 l/ n
*/
3 _8 W- {) x) v- z, B. }, f% g; k: \5 E3 V8 t
/* no rts heap */
2 C0 { `/ z: w; Q! T- l0 z9 qProgram.heap = 0;
+ a$ f7 j; {1 oProgram.argSize = 100; /* minimum size */# X9 z# S7 n& p' z! }) P) P6 _/ w
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
~! V/ g1 I" W8 ]
, [" x- J& W7 z0 P3 J8 D: E+ |9 c* b/* create a default heap */
, X$ I1 L; V; e# m' B# ivar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
( _# ?: @1 z; f8 Kvar heapMemParams = new HeapMem.Params();
7 v% M! Z: \) J4 D. _) S5 c0 \heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
2 |9 y5 A7 L& Q# W2 e1 U+ d3 H3 a$ @, @: M8 a
var Memory = xdc.useModule('xdc.runtime.Memory');
; ^. u* Y: V. d& ^- [5 g$ PMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
, [, U& X% q! [9 c8 m, M" \' \2 J" |" m
/* configure System module */
0 z7 M% L6 m3 ?6 g$ F. o; svar SysMin = xdc.useModule('xdc.runtime.SysMin');5 }7 X' A* V9 {& D9 x* b+ Y, N
SysMin.bufSize = 0x1000;: G6 R2 o6 _% r) x8 W
SysMin.flushAtExit = false;4 v( v# i7 D2 K! X7 J- a7 j
% Y# m, w- k2 W/ X
var System = xdc.useModule('xdc.runtime.System');
$ e M8 O, m c4 K8 y% KSystem.SupportProxy = SysMin;. S0 M8 `: V9 p
' @. L* Z" K+ u0 S. E' O
/* configure SysBios to use the lower half of Timer 1 */# Z+ u' X) G+ E7 i! [3 A: x
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');( o' M& U4 T; y4 I- v
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
2 k: h' J( ~1 ?/ UTimer.timerSettings[1].master = true;
$ j+ z$ R' R% h( \+ VTimer.defaultHalf = Timer.Half_LOWER;" T: |/ x4 z3 a! M A$ Q. S
Clock.timerId = 1;3 x) G! d, A0 I% o3 f; P1 u
; t9 q- @% e5 m
- _2 K) K7 |! s; ?/*
0 G9 ]$ b. Z/ F5 }1 ^7 B * ======== Miscellaneous Configuration ========
6 E3 b: p" V5 w3 { */
$ Q8 v: }2 A2 u* x; b
7 {# v- U/ V$ ~/* set default diags mask */- _( s& c. C- m' a' P0 R7 d
var Diags = xdc.useModule('xdc.runtime.Diags');
; \- Z( `6 f4 j; A3 Jvar Defaults = xdc.useModule('xdc.runtime.Defaults');
' j8 s8 N2 X5 K5 M2 k
# _. t) r$ s, i9 g- y8 aDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
3 P4 o8 T2 x) p& ?! f4 D/ bDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
) @! U3 _# Z$ q+ F+ ^Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;3 { M# ]0 g- g3 j% o
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */- r3 i& [) ^ y3 Q$ _3 o3 ^# E6 B
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */. ?5 }3 s9 N# r! D
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
% D; M D) V7 A4 e# x4 j. g& ^Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
8 K0 U$ ?' l, u$ a& K6 D4 A9 ~) ZDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;' S! v* K! c9 _/ T8 {5 R. Q9 |
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
" W& D& t. c u1 SDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;5 W; m8 q3 X1 Q- D- k- E) f! O
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
, a' K1 t: E# ADefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
. Z4 S+ U; s/ pDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;2 ~! [- l+ K# |' F6 Y; @5 @
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;9 u$ F1 q( F( {: V* h8 e
& c. x/ v" [3 n( j6 a
/* override diags mask for selected modules */) ~7 \9 _% S2 T+ H D- m. l
xdc.useModule('xdc.runtime.Main');
5 S) q; A# [. P+ o) K# PDiags.setMaskMeta($ h: I6 O. J5 h8 l5 }7 U
"xdc.runtime.Main",
4 ]- U! M4 G" j Diags.ENTRY | Diags.EXIT | Diags.INFO,+ }) t- [; ~3 p- S/ b. ?5 _
Diags.RUNTIME_ON
6 B0 I$ u: m+ ~% \- @);
1 v0 X! B2 M5 d, u
: K0 q, e9 p' v$ G$ h6 pvar Registry = xdc.useModule('xdc.runtime.Registry');
' e. J5 b4 h% _: ^' [Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
9 [5 R h# b0 sRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;4 V/ o& ]% ]" i! {
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
* @$ ~# K" H8 e ~0 r3 URegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;& c) W% a H9 `' p! W& X
/ A! E* F; ^6 k$ A+ B
/* create a logger instance */
8 ?2 X. l" @0 ]) j( avar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');3 h) |7 }, v0 s2 T3 w
var loggerBufP = new LoggerBuf.Params();
* n! Y( x7 h- @% T' BloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */$ [; B/ @, D7 B
loggerBufP.bufType = LoggerBuf.BufType_FIXED;$ s7 Q, u9 Q2 g1 D2 o
" ]8 @ y9 t2 H* K6 J
var appLogger = LoggerBuf.create(loggerBufP);
. d( [: S; L0 z- gappLogger.instance.name = "AppLog_Core1";* K/ R0 b* N3 ] P5 i
Defaults.common$.logger = appLogger;
. p* p" k$ T+ K2 ZMemory.defaultHeapSize = 0x8192;
% r6 d5 m/ k9 h1 AIdle.idleFxns[0] = "&LEDStatus";
2 b+ C: z. ]4 RCache.initSize.l2Size = Cache.L2Size_32K;( s; _/ z$ b/ s0 @- U/ r
% v/ c0 Y" V0 U' i* a( T* { |
|