|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明, k% v" @4 I5 x: P* Q& A
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
4 p) E3 G! }* J5 k(不过疑惑的是,为何单独DSP仿真就没有问题呢?)9 O) I; S" H; N) n N+ S
8 M! u: v' d/ O: z) Q9 i7 C! M
是不是需要在DSP.CFG中进行配置% M. V. n$ P2 v: P3 z4 X! C
我现在的配置为: N1 t/ H+ m8 Z/ B
* j/ F* X4 L" m; R# y' d. ^, `8 A
/*
8 p4 w: Z% P7 Y" {0 B! O * ======== Operating System Configuration ========
3 Y* j& s8 }! ^( c8 w */
9 ^0 E/ n7 Y8 t5 s0 c% @: Q b/ Q9 p6 d7 n1 J/ f
/* no rts heap */& F- }: ?; X( v6 Z! S/ T
Program.heap = 0;9 w+ E9 b" }/ a" n m
Program.argSize = 100; /* minimum size */
& v, k' {% H7 JProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大( O7 }: ^3 J6 ~/ _7 z
/ \# x, _1 ~( n5 N; @
/* create a default heap */# n! \& V6 B7 V) ~
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');' D8 p* ^; F% a
var heapMemParams = new HeapMem.Params();
6 F# o5 R5 X. ?/ U1 N6 ~9 O& qheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大( l/ m" ~* d3 a! O/ V
3 X* m9 g( V- Q6 Cvar Memory = xdc.useModule('xdc.runtime.Memory');
6 `7 ^! F! s7 E4 E/ SMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
6 s+ s& K1 s2 K! f ], a% g
& X. F/ ]! S6 `- Y/* configure System module */
- p4 s3 C5 E1 _7 i6 |( J4 Hvar SysMin = xdc.useModule('xdc.runtime.SysMin');
7 Z6 i! f% e7 w) W6 W9 N3 z2 cSysMin.bufSize = 0x1000;
( f; [( n. h9 T# S7 |/ OSysMin.flushAtExit = false;7 i) `( q, i% j7 o1 f; U& E; @
% o- x% w2 O% c& U( ?2 T* Z* B
var System = xdc.useModule('xdc.runtime.System');! v8 U. M$ J/ Z2 j) f6 @- {
System.SupportProxy = SysMin;
7 s" ~2 w$ F. u) f! A
. k1 _3 o" W7 o. c: t2 l/* configure SysBios to use the lower half of Timer 1 */3 q" q) H- C: z1 { v; b) c
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
5 F8 o1 L1 b& kvar Clock = xdc.useModule('ti.sysbios.knl.Clock');5 O" q6 K* R% G2 q5 p# i8 r3 K. l
Timer.timerSettings[1].master = true;" W' X3 z4 F+ a/ |" t$ S
Timer.defaultHalf = Timer.Half_LOWER;
$ w2 N' W. G2 m- @. J1 c7 m% v7 bClock.timerId = 1;
; z6 c4 W% H( z7 ]! W3 |, y& G
2 u. T$ ^6 p, ] W2 t0 U Q# x6 d' X7 L) q* {
/*
% t7 a1 k. m$ O5 x$ P* V0 w * ======== Miscellaneous Configuration ========4 H1 J+ p0 E; X
*/
( {4 l2 K. ]+ }, C7 `8 ~+ {* V# l, ~' m% c
/* set default diags mask */
! |0 w$ V# W6 v4 M$ C# w _( c8 Evar Diags = xdc.useModule('xdc.runtime.Diags');
4 ^9 |' e7 M( \; \# x+ ? F" [7 ivar Defaults = xdc.useModule('xdc.runtime.Defaults');
: L. O& d8 Q0 r N
. d/ W# T' F+ n; B2 ~& TDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
! L8 I# K) ^' z% A8 YDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; V0 @3 |7 m5 h- \' L
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;! n3 f& t i( O: N
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */8 P: |5 K6 J# `. `- V
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */% X6 c! I# i C4 }: w5 p& A
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;1 V' l+ j) A- L. S9 W/ c1 B! S0 O
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
0 u# {- {% C9 \, U0 @. D' U4 VDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;8 @2 C- D3 m& k9 i5 X# p
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
1 {& r% R7 B) Z, D7 s9 v/ i0 dDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;9 C$ x6 H9 g/ [1 J& r* ^9 b/ k( a {, O
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
6 x! w! ]5 P4 ~8 BDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;, ^3 ^6 R% r% [0 r2 K
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;! B5 b# t, f8 b0 H1 M1 }* e
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
0 B' O o, Y/ U, c. h* r# k/ |- d! T; p
/* override diags mask for selected modules */: s1 ^% h+ V, v1 P- P6 u1 }
xdc.useModule('xdc.runtime.Main');
4 r7 f+ s! u7 y) d- R+ n, h% FDiags.setMaskMeta(+ \2 z; U4 { O. Y+ [1 q
"xdc.runtime.Main",5 N5 T& a- d1 O: C0 I
Diags.ENTRY | Diags.EXIT | Diags.INFO,, x( ~; L: U: D; p4 c8 s( y
Diags.RUNTIME_ON# d, t& f- A, O# f
);; f! F; I& t3 j$ l) z; Q
" w( r1 `# [3 r4 l. s: k. Z7 a% zvar Registry = xdc.useModule('xdc.runtime.Registry');7 S# E8 l8 _9 X6 H( g3 T2 J. ^( V r
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;0 T7 _ |$ t) D6 W& v
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
9 f5 o; z* O2 }8 G( t- z" U( C8 bRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
2 k: J; Z+ t4 N* A8 q$ y, ZRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;
" _6 t: Q4 a1 d5 j- c) I2 F
# \3 S' z# [2 |; z- t7 ]/* create a logger instance */
; ]0 V2 Z7 Y/ V1 Q+ Hvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
: \; r* Q) N/ M: C3 K2 ]var loggerBufP = new LoggerBuf.Params();; ^# W7 y$ E1 q* T6 n' x. ^! t8 h2 s
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
" V2 }- {- y ]loggerBufP.bufType = LoggerBuf.BufType_FIXED;2 j& q ~+ U: S+ t1 O, d
- a, b' |1 B1 \9 l
var appLogger = LoggerBuf.create(loggerBufP);
, e" m. l* K4 t! A- ]* A, i9 f4 y4 EappLogger.instance.name = "AppLog_Core1";0 b/ S* w* ?: }! d& T ^5 E! j
Defaults.common$.logger = appLogger;
9 V# @1 j0 t9 h! \Memory.defaultHeapSize = 0x8192; # b1 a3 E1 W4 v
Idle.idleFxns[0] = "&LEDStatus";: A' e b) B8 h: ?$ d$ V6 e
Cache.initSize.l2Size = Cache.L2Size_32K;" O' r& p8 ^* W& v( D! o7 _8 D
/ |/ r# M9 e& ?2 d$ n, r: ^
|
|