|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明2 w& M! W. p5 Z' o' f ?9 N
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
% ^9 `* p4 X+ f$ j6 c(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
# G8 V5 ?+ b+ {, Q7 J" E/ V6 a
是不是需要在DSP.CFG中进行配置
+ u% `9 p+ \0 Y7 W" R我现在的配置为
( [5 q4 z) y7 C6 V$ a! V7 W4 L0 G( `% S7 u9 R" {% p3 i3 v# z
/* r6 Y# z1 C0 Q- J5 k$ r$ |
* ======== Operating System Configuration ========
7 Y3 E5 s, I$ H1 }. t+ o, Y */9 q6 u8 d0 m0 f4 ]; t% t! X8 \; O
4 V9 |1 N: F" O) ]8 y5 m8 o/* no rts heap */
; X. F8 o! l6 R ]2 }3 l9 l9 `Program.heap = 0;
/ {9 @* E4 T0 r4 E9 B3 q5 @3 S, iProgram.argSize = 100; /* minimum size */, v7 F# o* l x3 b, Z7 ]3 w- t
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大3 u% G4 Y; Y6 ^
5 ~. [0 }2 H9 V% W; ~! @" K; a/ V/* create a default heap */: f& {: b* H9 X+ @; Q7 |
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+ t+ e) `4 `0 z2 Z! ivar heapMemParams = new HeapMem.Params();
$ @" d! B& @7 H4 g2 W: NheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
/ _ X. J1 d' }7 ~- O, L
# S: {* b( d8 @! ]# j5 S2 \2 `var Memory = xdc.useModule('xdc.runtime.Memory');9 h/ ]1 @ W8 ?. `5 _1 V
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);- A$ [) ]2 L( {0 u" A" M
* y8 x" m- n$ y1 Y: q- z3 v% A& k
/* configure System module */1 q2 a% f- ~5 y( J, A: W. j
var SysMin = xdc.useModule('xdc.runtime.SysMin');$ u( G1 W" z+ J, a
SysMin.bufSize = 0x1000;- |9 U3 j9 l8 e8 V1 t
SysMin.flushAtExit = false;
6 J+ w, i5 T& j: b' Y, u! R: o/ z0 z! \' F/ B d, ~
var System = xdc.useModule('xdc.runtime.System');: k; Z4 b- T8 x
System.SupportProxy = SysMin;9 Q6 o3 q. t% a) b8 Z7 Z7 ?! E
/ m, C& l- [7 Q( }( R/ w/* configure SysBios to use the lower half of Timer 1 */
: k3 D+ q4 A: }# wvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
6 \* ~2 S- b5 z) y7 |+ H0 ?var Clock = xdc.useModule('ti.sysbios.knl.Clock');
" U& v8 J% C9 t1 f; |+ w7 \Timer.timerSettings[1].master = true;
. [( E" V- p) d' N1 c n* HTimer.defaultHalf = Timer.Half_LOWER;
4 w. K' t* U1 K7 nClock.timerId = 1;4 X7 g* Y9 |. T5 [0 U
$ i8 `) X) k* G- x
) s }% Y8 c' j+ P1 _: F/*6 c: p1 t& G) l) o) I; J
* ======== Miscellaneous Configuration ========6 }9 U: m/ q3 t
*/
3 Z! S5 @5 B8 w& j, c' f6 {9 F# m6 c4 {: f, Q+ m) Q% k
/* set default diags mask */
9 P$ }4 v7 ^) J2 fvar Diags = xdc.useModule('xdc.runtime.Diags'); K, H: |& b! J7 p% v% e+ W9 R' r
var Defaults = xdc.useModule('xdc.runtime.Defaults');! F9 Z& ]5 }+ m% {& k9 n
; T5 T6 Y3 X5 M+ V! `Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
) h: g. o# V% |5 [Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;. d$ c5 ^5 |, d3 d7 r2 }% J
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
! K( b; F( v! vDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */" e. J* p0 {- ~" C0 a
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */- v: {1 b7 v" ^+ m
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
7 y/ p$ g4 r# o+ L1 F$ z9 S2 kDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
9 K7 i: X# S8 _( h; G4 pDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;! [$ R5 k/ r5 F
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;( F6 ^5 h; G% C1 d: Z
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;& ^5 x+ ^# {* q; V' J& [' N
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
& D" A, \+ W% T' W3 a" h( VDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
! Z/ I* q6 H7 F! v" Z' A! S: A, qDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;7 d& U E4 s' S' u
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;6 I$ Z- \ j# C. F8 d% m
% b- u4 g6 O5 r6 e5 o7 ^) U
/* override diags mask for selected modules */, M1 R' \, e% Z4 Y: _5 M; }
xdc.useModule('xdc.runtime.Main');
o; X4 E" K" V" M q) |Diags.setMaskMeta(! j. q4 b. _$ B6 W
"xdc.runtime.Main",! E. X% I7 ]6 J# @9 x) K/ [
Diags.ENTRY | Diags.EXIT | Diags.INFO,
( z/ n) B4 O9 [8 H Diags.RUNTIME_ON
6 Y h$ q; J0 h. s2 F3 t2 E);6 ]1 F0 ]! r7 R+ c$ o7 [4 D
5 R0 i! G6 S1 t1 ~. S# `) lvar Registry = xdc.useModule('xdc.runtime.Registry');
8 A5 @' U1 @4 vRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;, S ^, {5 @% z3 t: S
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;: o/ \( }2 _" \
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
8 `# O3 X4 c. ^# Q8 {& HRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;' h: a) u8 k" S, c# H
/ {8 A! e3 a$ L3 T c$ X
/* create a logger instance */, r" Q! ?' u J7 x
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');' I+ I% H! @ w* G
var loggerBufP = new LoggerBuf.Params();' ^1 A: N7 f, z. g; {9 v0 g
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */6 m+ P f9 m3 H8 C
loggerBufP.bufType = LoggerBuf.BufType_FIXED;5 ?3 c3 ?0 O( j
4 q( Q6 c \5 T% ^. _+ E ?
var appLogger = LoggerBuf.create(loggerBufP);
* M! a4 E# { w1 cappLogger.instance.name = "AppLog_Core1";7 W4 y& K$ Q2 J: Y5 v% W- H( p
Defaults.common$.logger = appLogger;
* G( @+ Y8 \: OMemory.defaultHeapSize = 0x8192;
$ X+ s2 C. B* T, h: Y, p5 eIdle.idleFxns[0] = "&LEDStatus";
+ d5 ]& o" L- y D3 KCache.initSize.l2Size = Cache.L2Size_32K;
5 c B' E6 ~ J' J% X8 L+ \
- Z) h' v8 p- G |
|