|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
1 R) m4 [* z! ?* T# ?; C% \' f我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
9 }" |4 b* |4 G) s(不过疑惑的是,为何单独DSP仿真就没有问题呢?)/ r T b8 h a' H9 Y
# n7 r% R& p# L6 n& D1 f; j) ^是不是需要在DSP.CFG中进行配置
) v+ R8 ^3 W7 M" ?我现在的配置为# W, l2 F) E" r2 _8 U; A3 C: S
2 C; X+ d% F5 T9 ?1 B/*
; p5 O" g/ L* h7 ` * ======== Operating System Configuration ========
. J7 d# b& [9 `4 K! h5 u, }$ ` */; y7 ]; } |' Y; y
: ` i5 i" @7 ^3 ^# ]- N0 J( Q4 b1 n
/* no rts heap */" O; @7 B, W8 O4 F2 G. u! P% ?
Program.heap = 0;
% y K+ U# R; TProgram.argSize = 100; /* minimum size */) y* Y6 U+ O/ @
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大+ }1 X! v& R7 J7 }7 R0 ?
5 ~7 \/ b Z5 ]+ r6 s9 Y/* create a default heap */
- H, R3 F2 A0 Q" J0 kvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');% l, F5 B+ g6 E; u+ G+ ?6 T7 q/ m
var heapMemParams = new HeapMem.Params();4 \! |1 P: p$ k# E% T4 r
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大) M j# y. o# v& |- U+ {
+ p! I2 }# H5 Y. ]- b, svar Memory = xdc.useModule('xdc.runtime.Memory');; b0 z. ?0 V5 I5 t( s
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);& K( @( z; S( t3 W
) {* c+ _' |3 q/* configure System module */
( N! w) g5 @! V* G' Lvar SysMin = xdc.useModule('xdc.runtime.SysMin');
3 S C& J3 g3 j0 s J. ?3 cSysMin.bufSize = 0x1000;
( w' {3 ]3 j" U4 n6 CSysMin.flushAtExit = false;
. }* W4 |# x# @% |1 Y9 x6 s3 M$ Z& [0 C( x5 C; P
var System = xdc.useModule('xdc.runtime.System');
1 ~3 J% F M I( u JSystem.SupportProxy = SysMin;
' w M8 N5 d+ H& X$ j& C" S l( c) n. N
/* configure SysBios to use the lower half of Timer 1 */
: D. k3 d6 V5 cvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');. @$ O- D8 x/ [/ F( E6 P
var Clock = xdc.useModule('ti.sysbios.knl.Clock'); ?1 y& t) N6 T
Timer.timerSettings[1].master = true;1 c1 [% S! `; u5 f2 v+ j9 @# n+ i
Timer.defaultHalf = Timer.Half_LOWER;$ e5 o8 `9 G$ M5 ?# C2 I3 ~' X
Clock.timerId = 1;
& E2 i3 I6 j3 S& W4 U3 Z% o4 D( H' G q$ D+ q
, J& U( w* o* v2 Z4 \' }/*
8 Y4 ~# b- t0 B1 `8 H * ======== Miscellaneous Configuration ========
! T4 V" Y' i' H' G+ q) A */) L# C+ h# R ]8 s
3 W. e% {7 R+ B) z( U8 \6 A) p0 R/* set default diags mask */6 }" E8 I0 v$ N: [# M$ {3 }* Q
var Diags = xdc.useModule('xdc.runtime.Diags');+ {# @ |; x1 \. P P& z/ J3 J
var Defaults = xdc.useModule('xdc.runtime.Defaults'); w. q) I5 Q$ G; e" |0 d& Q% N
% g% S4 U) l, f! E2 L9 I8 E* U
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
' P6 b# n9 T& }& aDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;9 Q W) h; [; O6 {' k- i8 p
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
" h2 a. L z! b( S( X7 ]+ qDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */6 |% g9 q0 t8 m
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */' k" T, u A7 t; I
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;; }8 O1 y( k! l& Q. M+ r
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
" W `& f4 x/ TDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;3 c- Q: w' k6 _' x$ s* f. W% T
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
' \9 v8 @% L! xDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;* }# Z( X" t# Z% T& {
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;/ j0 T1 J& [' ~( h" h ?: U
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;/ M" r: u3 j( o, U. }; v
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;# ~+ Z! N4 d/ w+ w8 J
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
5 c1 Q; c2 Q; d0 L4 |
4 L4 f8 t( m9 G0 P; o! @# u& _/ |/* override diags mask for selected modules */% L$ {) c$ d7 F! s6 r- }( O3 x
xdc.useModule('xdc.runtime.Main');5 [' ]2 |. P( S9 L [0 t8 {
Diags.setMaskMeta(0 H4 |9 _. E* O
"xdc.runtime.Main",. v2 I$ y+ ?: l. b1 d& G/ a$ p3 s* r
Diags.ENTRY | Diags.EXIT | Diags.INFO,
- ~! V! n/ e: n8 E- n Diags.RUNTIME_ON, P' d6 K P0 I: X3 R. p2 R/ ?
);- H5 }# D+ o; ]( }4 e' k! P/ ~+ |
- ]/ x; F2 k, r% V
var Registry = xdc.useModule('xdc.runtime.Registry');
+ f! z! W1 Y* a, g: f/ o, t0 MRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
1 C2 u/ J9 F+ e) U/ HRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
- p& C. s, C7 L" i( W$ E& GRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;: A7 F; H2 \: v+ N1 t
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
* N! z' A6 P9 T+ ~0 a$ r) a" Q7 W0 w _; L2 U
/* create a logger instance */6 `0 C; V6 f; q9 ], W
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');9 a& I. }8 i: k' S
var loggerBufP = new LoggerBuf.Params();; y5 F/ Y! e& `8 g0 e7 `4 w/ n; `
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
$ ] Z, [7 L- P$ ploggerBufP.bufType = LoggerBuf.BufType_FIXED;
; j$ r/ g. F s$ B7 o& X* Z
: U' A; h4 s( [3 C4 M$ |1 D( Mvar appLogger = LoggerBuf.create(loggerBufP);
# B" F* U6 |; m% tappLogger.instance.name = "AppLog_Core1";
1 U5 i/ w' b/ yDefaults.common$.logger = appLogger;) \( X z' c6 _
Memory.defaultHeapSize = 0x8192;
7 ^6 v# g( T, R5 C( aIdle.idleFxns[0] = "&LEDStatus";: I. I# k, d( ?7 G5 g4 @+ @
Cache.initSize.l2Size = Cache.L2Size_32K;1 z& q% ~ f$ R- B: f5 Y! X
: Q1 [, R+ k; x& t6 c% h/ {; L |
|