|
沙发
楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明: R. h: E! A5 A# x+ U! a* z9 ^5 k
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
* v5 d! L" u& }0 D( U(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 k/ n9 K2 h* o: y
" Q7 f% o* B- I% D; W
是不是需要在DSP.CFG中进行配置/ W" i, ] v( c3 i/ M
我现在的配置为
5 u- m( ]8 I1 q/ H& c# M7 J
3 g: ^$ X* X" ]% t) [) B& s1 Y* p/*
5 n r0 U: H# K9 B * ======== Operating System Configuration ========
1 `% a& T$ x$ F */" D! {1 Y( l$ s) @7 ^# h* e7 l4 b
* |3 e3 k' X) ~3 s/* no rts heap */$ H9 g$ s+ |# c3 x2 d0 T
Program.heap = 0;% M5 C8 K4 @! n; g
Program.argSize = 100; /* minimum size *// o* T: e& h2 |* H5 u! M ?1 M5 f
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
; a: y v2 }( N2 K0 S% w% k+ X9 _& e
/* create a default heap */8 n4 f Y3 t! ~0 _! ^. u# M. s
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
5 Z/ T" [; a r0 K! V/ Uvar heapMemParams = new HeapMem.Params();# `! U7 J9 n" K y/ t* ?! v
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大7 g1 P( a7 w& D
- e2 d- Z4 M6 {' R1 m) Q
var Memory = xdc.useModule('xdc.runtime.Memory');$ N$ |/ Q! q' T/ ?
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);* j0 Z. f# n: b. r
0 e6 ^# u; _4 F1 a1 }/* configure System module */
6 G7 `$ K' E+ }/ _& s3 e0 uvar SysMin = xdc.useModule('xdc.runtime.SysMin');' {4 l/ I6 V; e. ^' t/ y
SysMin.bufSize = 0x1000;$ y" `# x- U, n# f
SysMin.flushAtExit = false;1 B" v8 ~7 s7 l9 e
$ U$ {) u3 W3 a5 c$ _, C" H4 S
var System = xdc.useModule('xdc.runtime.System');) @1 W+ _% X( X+ M5 G5 d6 V
System.SupportProxy = SysMin;* i1 _: X0 P R* } _7 W
. w. g5 N" G2 I; z$ ?/* configure SysBios to use the lower half of Timer 1 */; j+ ]3 V4 D0 J8 C/ q, I
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');5 `' e. Y1 G' H" Z, s
var Clock = xdc.useModule('ti.sysbios.knl.Clock');( }* C+ f1 o2 P2 k6 D2 ~# I- W) T; F" `
Timer.timerSettings[1].master = true;: h% x0 \- j% p0 V. t' ?4 r
Timer.defaultHalf = Timer.Half_LOWER;
/ _7 q0 l! @& AClock.timerId = 1;% x4 b0 s: w) {4 X2 e6 U
# X1 X6 L& o& T {2 G+ ?. U9 a+ S
6 B, n- M9 H" I6 W+ M/*- A8 b+ @% n0 S9 ]. s
* ======== Miscellaneous Configuration ========' @7 S! J9 x0 V) q9 W W5 ?# f2 E
*/
* m! F8 M$ T f- \& G
4 @1 H; C( \5 G/* set default diags mask */% P7 C& Z2 ?5 ~ v0 r
var Diags = xdc.useModule('xdc.runtime.Diags');
$ k0 @1 g c5 r2 o5 X# ?8 m( g4 ]var Defaults = xdc.useModule('xdc.runtime.Defaults');! K' S0 T G+ Y4 I. y, v9 J
2 ~+ l7 \- ]3 j
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
% o- {: N+ ]$ w6 j: Y9 I' FDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF; w' J0 J6 D% F# Z/ m
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
2 X5 L- l5 \ ~$ ?9 Y6 h/ rDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
1 X. ]+ U) |& h3 @+ L3 cDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
; D4 m+ X' _. v2 DDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;7 A3 v/ h# u" E$ |& N2 E; f
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;/ E* e% K" @! d7 e# H+ Q+ M7 |, [
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;- l, v9 S; E% D/ I7 r
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
# K9 U6 S* D; s) L+ @Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;1 G2 p. J7 T4 ^4 l; t* X# v# E' H
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
! m: v* h- V% H0 m3 m9 LDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 Y7 ]7 k" b. F3 M- G3 f4 ~- hDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;) m7 n8 z$ @% ]; i& X/ X
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;4 X- M1 `9 N1 H6 G& q2 J. d
8 e, y. k' b. ^# S9 G; O- O
/* override diags mask for selected modules */1 w( {0 t' d" z( b+ ^! |
xdc.useModule('xdc.runtime.Main');! J& B# ~5 {3 P( W+ q' F
Diags.setMaskMeta(1 J h& b$ h+ ?9 y& S
"xdc.runtime.Main"," ]6 j3 p# b! t! z6 x, U
Diags.ENTRY | Diags.EXIT | Diags.INFO,
5 i& ?( V2 q6 v. ` Diags.RUNTIME_ON
* e! v2 j7 d* k0 R0 r$ b);& H: |: O, O) c( q
. l! y8 K4 w9 {5 N8 _6 p' t" D1 H6 V/ m. Kvar Registry = xdc.useModule('xdc.runtime.Registry');+ w& f; a/ s p; a
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;- I: {( P. Q* F7 j- k/ A* E
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
9 d# M/ Y) C' a; Z; JRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
q8 I3 ^$ V! R7 J$ b9 _7 DRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
" L$ C2 H- ]( ]/ K. d
m/ r$ C' M" n+ ^/ @/* create a logger instance */* i7 s1 }; ` k4 u# h' D2 l
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
+ H1 M$ ?% ^7 s. C9 {3 V/ Bvar loggerBufP = new LoggerBuf.Params();8 D& R' Z. s' m) ^6 i; x
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */6 j. o8 U) x; L0 o( L* g
loggerBufP.bufType = LoggerBuf.BufType_FIXED;; v' l. `1 `3 y/ w
; d( H X8 N: ~+ vvar appLogger = LoggerBuf.create(loggerBufP);, S/ Q( Q* v& f5 j! Y% F
appLogger.instance.name = "AppLog_Core1";; S H* f+ z/ n6 p3 ?0 O s \; o
Defaults.common$.logger = appLogger;9 b- S% x( Z6 b5 r$ |
Memory.defaultHeapSize = 0x8192;
, ~# M, s# ^% X6 hIdle.idleFxns[0] = "&LEDStatus";8 R& j9 y( U" @; X
Cache.initSize.l2Size = Cache.L2Size_32K;- _$ e" [+ @; |9 K# ^
9 z) ?' E+ ^. R# x. ~ |
|