|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
3 e1 T2 F: d. ]& k我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
: a& |! @* W1 W5 \(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
2 B' E3 ^ X, J4 p8 `7 e, V6 z3 A, B+ O& _2 |' O/ U
是不是需要在DSP.CFG中进行配置
+ O( J, S0 L1 L- b* Y" A# V我现在的配置为* c3 D# U1 u3 m9 a
7 W) }' \( |/ {/*
/ i& b+ _, w3 c" h u0 b1 S * ======== Operating System Configuration ========' e' b8 K) T* P" [2 L
*/
+ v: w$ b# E$ }
7 `1 O% `# v3 o8 M3 b, @" ~$ _8 Q/* no rts heap */
- C( U& J0 K9 `1 ?6 D7 z9 |: VProgram.heap = 0;
2 Q0 c: v* q' h7 m3 Y7 cProgram.argSize = 100; /* minimum size */
$ H5 |: ?- f$ f% o8 `Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大7 Z1 g" Q- O5 J$ W0 R; u5 Y
! {$ h, ]9 h- U' n* [' K6 p2 d/* create a default heap */
% b# H4 ^7 a+ u8 P& dvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');# q0 R- n2 \( @" |) i
var heapMemParams = new HeapMem.Params();, u2 T# A$ f# s: o( B2 E2 i) f$ H4 G4 k
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大4 r* r: r7 i$ x
; x- Y+ y% O) U$ Z+ ?$ d) y! Mvar Memory = xdc.useModule('xdc.runtime.Memory');* \5 i. V) E4 K1 e! l0 t
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
: Z8 T2 }: k0 T; m1 E; a, h$ Z. u) H+ z1 F2 ^
/* configure System module */
: a. r3 N0 n- j' U& e' v6 c2 F# vvar SysMin = xdc.useModule('xdc.runtime.SysMin');; k6 ~: @! r; o+ n' m
SysMin.bufSize = 0x1000;$ p) e5 X$ l' ^" k& @( k0 E9 R2 w) f
SysMin.flushAtExit = false;* G, g1 U o6 K0 U+ A# U6 C
0 T$ f ^5 n" y% {" ~ N5 Jvar System = xdc.useModule('xdc.runtime.System');( w$ i7 R! J- t2 T* v( W2 O9 x
System.SupportProxy = SysMin;$ _1 o+ z7 }4 E& `% g7 i- |
6 h5 g8 s, E$ ~1 x
/* configure SysBios to use the lower half of Timer 1 */
, \0 g9 r- v: i. svar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
& j3 t+ U: `5 n# bvar Clock = xdc.useModule('ti.sysbios.knl.Clock');% a- s, W! A- B6 K. g: b: z
Timer.timerSettings[1].master = true; M, {4 f# x: V1 q3 o w
Timer.defaultHalf = Timer.Half_LOWER;
3 `4 a/ g* F$ }# S3 q' IClock.timerId = 1;
: k$ C2 ~2 A! T0 y0 u* d5 K2 W& B* \# z% B3 _! M8 x# b& w+ N
# b+ \& T ] V% J
/*
* ]: v5 J: o2 S' g0 a/ z# D5 u6 Q& W * ======== Miscellaneous Configuration ========9 Y4 T6 |3 _# \. ?2 E
*/
. f6 f4 z' N7 ^6 _. m' \! O4 P
/* set default diags mask */
1 a: p, G6 }, yvar Diags = xdc.useModule('xdc.runtime.Diags');" L2 p% M. f1 [+ H5 l J
var Defaults = xdc.useModule('xdc.runtime.Defaults');8 Q/ l- x" V6 c& z! m5 t8 J2 S
9 X. a9 @5 W+ K( U0 v4 ?1 x% KDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;/ w( A$ e% b9 x* S- f: C8 z% x
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
) I# E- R( _5 O; N; u" q7 XDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
* e1 P3 l2 }& ^. sDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
! `) O r! u' [6 oDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */% A2 p4 N: v7 y6 N
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
; x/ x- ]% H- D/ c. ^ ZDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
0 |. D+ C8 K' I1 _) @Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;7 N6 @. @5 R0 Q. [
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;0 r, t% M+ K. B# l+ o
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;# n6 I# f- U! u( {% V1 Z
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;8 C# H, w9 p# @7 J* A5 }3 ~- q
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 A- N, a3 g1 B$ e- [& u& _# u$ fDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;: o+ L. T# }$ l& M. g
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
' O# f! m- }6 b% m8 `
, q% w7 V: `; {1 w/ K/* override diags mask for selected modules */
{0 ]! |+ d' R, B6 yxdc.useModule('xdc.runtime.Main');
1 K$ z+ e1 |" `1 @6 rDiags.setMaskMeta(
4 l# r; ~% b1 ^) t "xdc.runtime.Main",
+ E9 I3 h' _' V( c Diags.ENTRY | Diags.EXIT | Diags.INFO,3 U/ x1 ^' _( H
Diags.RUNTIME_ON M# Z% P: s1 Q e( u
);3 Y$ `) j. c1 k
5 F1 U1 h6 M: Rvar Registry = xdc.useModule('xdc.runtime.Registry');
: [3 q- H5 Q7 w/ b2 h0 g) qRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
) g, v% S! n7 q/ bRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;, E% m3 J1 T" L" [, M! {7 d* Y1 i
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;/ [1 v7 U9 M; \* s# k: S
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
! S; J+ m/ y: v# y1 m5 R2 M! f. A# E i) E! O, @. ~) W. f+ K+ C& r7 f
/* create a logger instance */
; i$ c% }- U' m1 I/ S) ?+ A# [& ^var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');1 A9 W, I. M! W \! o' T
var loggerBufP = new LoggerBuf.Params();. Z7 k( Z4 q! \+ w: [, k
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */7 g5 X' j* L. k, y
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
3 S9 H9 H4 u: ]* p% O2 l) \" u- T4 s+ }1 w% `4 F, d
var appLogger = LoggerBuf.create(loggerBufP);
* x3 i4 M* _3 P( {. n/ ?appLogger.instance.name = "AppLog_Core1";
" _* W6 y5 d9 L+ w8 @Defaults.common$.logger = appLogger;6 j3 }( A. Y4 j. a/ r
Memory.defaultHeapSize = 0x8192;
" }$ c# g+ v. T2 K) rIdle.idleFxns[0] = "&LEDStatus";
P, t5 I, |& s4 f8 b$ @ J" ACache.initSize.l2Size = Cache.L2Size_32K;+ n4 ?/ N& J# F2 n( `# p
7 U/ [) X% O: l/ N1 ] |
|