|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
* L# N# p7 \; ]& Z我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
3 z3 R* ?7 Y# q# W! E6 }6 _. T1 G(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
6 U% b, X( l$ i; ?1 t/ u
$ b# F8 a- t4 X- j6 `- H是不是需要在DSP.CFG中进行配置
) C6 e0 g4 |! d8 @% ]9 ^# Y+ U我现在的配置为. ?' s" I7 k9 }4 D2 S
1 m7 I; _- M/ S3 i
/*
/ d: s% ]6 t! Y2 H( } ^ * ======== Operating System Configuration ========% @; _' c! E) v& i* {! i- N
*/: m2 n4 {. o5 j" L$ X1 l
# R' |: H) o* W2 C& Q9 i1 n( g9 q. B/* no rts heap */
3 e/ J4 f1 s+ a& M5 q2 p( H: s$ a; M; cProgram.heap = 0;
j# r1 w7 q5 T9 Z& O3 K' ^9 \Program.argSize = 100; /* minimum size */
6 N) l* S5 g% l( D0 BProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
7 o7 f; E- E& R* ]
0 q4 s) @3 S a- A* q# g# [" K/* create a default heap */
6 q" p- O4 x& f5 [ T! Pvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');* }4 `2 ~3 {! e8 F
var heapMemParams = new HeapMem.Params();, i, e& ?( k9 r$ p4 J; s3 B: O& h% K
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大& A( C8 l4 r9 L8 R
- D! G) l# a; ]$ s) P1 d! _- _
var Memory = xdc.useModule('xdc.runtime.Memory');0 |6 v6 v: T3 C# k3 z: o
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);: F$ t: g3 M# [' M8 m
, \. `: L6 {; c' |) R/* configure System module */
( ^$ ^& A6 D+ hvar SysMin = xdc.useModule('xdc.runtime.SysMin');
9 }# g8 K4 l1 J/ `/ D3 k9 s7 t/ bSysMin.bufSize = 0x1000;
+ R0 \ H$ d: Q# R, }8 |3 V5 Q* uSysMin.flushAtExit = false;
2 z' W$ j7 C! A$ d E! c- E* p) q. M
var System = xdc.useModule('xdc.runtime.System');
" {, L) J ^$ R$ ]: Z1 SSystem.SupportProxy = SysMin;6 v$ F+ C0 p; r
1 B ]0 C9 \+ w: n3 |* {+ q
/* configure SysBios to use the lower half of Timer 1 */) T/ @! k1 ^2 y
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
7 u7 y, G! N4 W4 P/ A yvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
7 ~: U% g6 N$ O; o" A1 r0 ~, LTimer.timerSettings[1].master = true;. Y4 B* u+ _/ j8 k
Timer.defaultHalf = Timer.Half_LOWER;
" C% U4 H; u/ ^ lClock.timerId = 1;1 u* H% s2 {; }9 h' f
( W! f- ~9 H4 b' i
' @) @: T! q! y( w/*1 i$ Z; ~ q! j" p/ }: n: ^+ u
* ======== Miscellaneous Configuration ========# H0 l0 Z' S# [) W
*/
4 D6 y! p* ?2 X \2 K* H+ v$ z( d5 l
* p" ^7 m: a' q/* set default diags mask */
$ E9 E- }( j' h) }0 Bvar Diags = xdc.useModule('xdc.runtime.Diags');
2 C9 l6 M' Q Y+ Zvar Defaults = xdc.useModule('xdc.runtime.Defaults');
; \; Z5 p7 H* a3 H% K! W6 `! u& I9 x9 C
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
. Q- O Y' a2 w# j1 e+ vDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
4 u# {! a L/ W" }, E5 HDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;4 j4 ^4 b! B; s( S* C
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
1 \3 u* B- G1 T$ P0 TDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */! g& l& s# _6 V9 A/ M
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
% I$ \. ]& e) t; Y* G% wDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
) l! G' X) l y% I" vDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
; m% \5 B9 ^. D5 jDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;5 a/ P& ~* G4 p0 `( b/ F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;- `& Y, s, w) W U" Q/ L$ g
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
5 ]9 y/ @+ S, ?: e3 x& ADefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;( G7 q: O, Y- v" I+ C4 K1 [& q1 k
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;6 T) ~% U% I+ J4 G6 p% G
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
Q; G3 d$ i5 V" E, B5 V/ r. [3 W) Q; W
/* override diags mask for selected modules */5 E* t$ z& P4 \6 h/ F' W
xdc.useModule('xdc.runtime.Main');) b: a$ b) L3 u1 s: v! \
Diags.setMaskMeta(
6 D. D0 D% e8 o+ e2 W "xdc.runtime.Main",
( ~+ j) s5 {$ U6 h. I Diags.ENTRY | Diags.EXIT | Diags.INFO,
$ L/ d* b+ Q+ K' G$ D Diags.RUNTIME_ON
1 }, r4 c$ |8 }+ C3 b @); f8 u: S6 ? g J; B
& h; i3 z% z4 {% Y* u fvar Registry = xdc.useModule('xdc.runtime.Registry');
) q+ N: d3 w! t' o6 L' C; B- d% eRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
% m* ]) _+ ]/ a! q% d! a4 GRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;1 e. U. y, c' E( `& J. l7 E- V
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
2 G1 @' A0 N: z$ |: MRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;: ?# l: p; Y$ w2 V! H0 W/ h
! `8 r' N* p1 z" m/* create a logger instance */
% D: e4 y7 @: D2 Ivar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');: @0 ]5 t/ }; q) H q
var loggerBufP = new LoggerBuf.Params();9 ?" [: E* m& h6 i& G% N: y
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
3 S. N! q) i# \, t7 f# AloggerBufP.bufType = LoggerBuf.BufType_FIXED;) a0 c- ^2 T$ P
+ d* Y0 |1 D5 ~* |3 x" y! Nvar appLogger = LoggerBuf.create(loggerBufP);
: U) v3 s# x6 aappLogger.instance.name = "AppLog_Core1";
/ E Q# Z3 p4 X! a( P; t) gDefaults.common$.logger = appLogger;6 m. _+ p+ Q8 u7 M& z' }# J
Memory.defaultHeapSize = 0x8192;
' Z" b1 I# p9 P9 KIdle.idleFxns[0] = "&LEDStatus";( K3 m' U1 A; a! l U
Cache.initSize.l2Size = Cache.L2Size_32K;4 R: D8 y1 R9 W8 A
0 [3 {6 A& ~ h1 i& J
|
|