|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明( Z, m6 q$ N- y2 v6 K
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下3 V6 B9 M7 D2 f
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)8 z3 ^3 N; w1 q: N h0 I+ ^/ f
# f" M/ }5 V4 }" b G k% h/ Q
是不是需要在DSP.CFG中进行配置+ {4 t" a0 U [ R% y1 @
我现在的配置为
' \+ {/ `5 i$ t8 o
3 F t9 w3 H+ ^# R- S" A/*
4 i) I- b6 H4 p! F- Z3 R) b3 V! N' o * ======== Operating System Configuration ========
+ y) Z% Q5 c4 G, u% A/ b" {$ B) W */) f; W4 N* \7 q; b% E8 ?
7 V; Z: C' p1 `9 M; O1 d" u, k- ~/* no rts heap */
7 u4 M) }8 j" a5 x* MProgram.heap = 0;; S6 _# x( U( |3 R
Program.argSize = 100; /* minimum size */. ~. I* C& s) Q
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
! K8 s: L5 ?& d p2 r% X8 C9 N
, b5 I+ o" F2 }% @! `$ C1 p/* create a default heap */& d% }/ F8 k, ?
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
5 ]- Y- X% V$ S- Q& e( g5 Zvar heapMemParams = new HeapMem.Params(); j8 T7 ^0 g% T$ I" S) l
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
G0 k2 R! r. m) \( n/ D" C/ W( z- R- ~, E
var Memory = xdc.useModule('xdc.runtime.Memory');" Z! o( A3 ?$ q0 N# h
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
4 g* ?1 Y5 P$ _2 {# e: p5 {
. L- N+ h5 B# O8 o3 z5 Q8 n/* configure System module */
( Q. x0 h! u7 T! Ivar SysMin = xdc.useModule('xdc.runtime.SysMin');# K( q: p' j) i3 j5 q) m
SysMin.bufSize = 0x1000;- X8 i, M- j0 K! p
SysMin.flushAtExit = false;3 @7 M/ r( A* R J" e
! z7 z @% ~+ \2 V- d, O. v+ u5 Ovar System = xdc.useModule('xdc.runtime.System');/ j" P/ J5 z' w5 X. d* l
System.SupportProxy = SysMin;
9 X6 o, c/ H! h1 z8 X! H* O$ ?" k/ I4 u+ s. s4 P z0 P0 U
/* configure SysBios to use the lower half of Timer 1 */" n( _3 F1 P, W1 a1 |8 n ~
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
8 y0 Z+ z8 J. K! Vvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
6 `/ O+ y: B0 N h' KTimer.timerSettings[1].master = true;
* B+ y' X9 f0 GTimer.defaultHalf = Timer.Half_LOWER;$ s6 n @% S* A& k( B( ?
Clock.timerId = 1;+ H! F8 k9 y+ [3 @4 t9 |
* r0 V7 s' E6 ~' @8 M; ]* F
2 N' c) m# b/ T+ b/*$ d# ^4 {2 g2 r
* ======== Miscellaneous Configuration ========
* U) _( @* a1 E4 D# X */
& Y j& q! D( {% K
4 c) P3 r* R' S3 ^$ x$ k/* set default diags mask */: y4 z4 x- e* Z' o0 _
var Diags = xdc.useModule('xdc.runtime.Diags');
7 c( j/ R! k& @& Uvar Defaults = xdc.useModule('xdc.runtime.Defaults');; h8 Y0 m( z1 s" C; n
- c- l6 v$ G$ m3 vDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
, N2 j# L8 A" N. e& p- |Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
$ I6 h) r& ]! F G' \0 rDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
0 {; t4 A \% F* @% S+ ~4 E5 b8 s! x9 XDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */4 W# P; k8 O8 G4 A, o* E" y1 N
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
/ L2 }6 ]9 v4 x' _; j: jDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;* r6 W. J6 w- }5 c
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
7 X; `# Y$ t; [% N: ZDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;* l; p3 C# I$ m9 h! @. t
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
. @. n( Z* w9 L5 U8 `# N; F! PDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
2 f. B( s# D- u2 MDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
. X7 H! o3 {* W; o2 T5 O$ O$ |Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF; D- x5 \ m! w2 O3 ^, y
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;4 C* y0 N0 D( m$ H% ]3 c
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
8 o5 A. ~2 g( j; t: ~6 n" T' {/ T3 O
/* override diags mask for selected modules */
7 Z1 p# q9 F# Q# dxdc.useModule('xdc.runtime.Main');
/ Y5 {, L' I+ U0 gDiags.setMaskMeta(* F* @9 h, a8 @" E
"xdc.runtime.Main",
2 Q j/ i) B! O8 K+ h4 Q6 |. s Diags.ENTRY | Diags.EXIT | Diags.INFO,; G" V( j+ W! n. |' _$ w6 ~# f
Diags.RUNTIME_ON. D4 I5 j: @7 i( [) N4 q4 G
);8 Q1 ?( E9 y2 u2 _* X9 P) d
5 W" M" M) L3 H U- T% U# d
var Registry = xdc.useModule('xdc.runtime.Registry');6 n# u. h# h( H, ~0 n% b1 M
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
% D) U: [! x5 O( |Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;) D# b: H7 Q. s; p5 L9 q
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;8 N- A# e# K& K' |. A
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;, |0 b2 _: s0 H3 x
/ X: a) A( l9 W$ ]; c
/* create a logger instance */
* J4 _+ `. j0 p0 H: J/ a, H2 _var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
1 e: w; F3 s3 X( L$ Mvar loggerBufP = new LoggerBuf.Params();8 W7 @5 Q2 X5 m2 ~6 q
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */, [6 Q! x s4 W5 v
loggerBufP.bufType = LoggerBuf.BufType_FIXED;% u- b! O3 ]9 i9 g2 y% ^: N
, l- X( X1 e, y8 wvar appLogger = LoggerBuf.create(loggerBufP);
3 n% ^- X6 J5 b" v, YappLogger.instance.name = "AppLog_Core1";1 {- p: J+ k' r; f
Defaults.common$.logger = appLogger;
& {# ]* Y/ }' E" ^: t( DMemory.defaultHeapSize = 0x8192; 3 U. h l0 l/ D- ^
Idle.idleFxns[0] = "&LEDStatus";- T$ _( F6 N! N% B: K
Cache.initSize.l2Size = Cache.L2Size_32K;
5 V/ @' q, j+ n# Q. {, V9 p/ l. }8 O7 p4 Q) \* P* b
|
|