|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明0 `7 ?/ S+ g7 Z( L% V
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
- y: ^: v _8 Q; C+ P$ g# {8 ](不过疑惑的是,为何单独DSP仿真就没有问题呢?)) P! @4 U# }$ x/ q% B9 a
6 I* Q( ~6 h$ a4 B4 @7 u$ e是不是需要在DSP.CFG中进行配置
- ?# T1 e! s; C* ~2 A2 u我现在的配置为 ?; `" ?1 C' u5 Q# }* |& p
# g& C+ e. q$ M
/*+ f9 w+ d( v6 _4 W3 G: h9 x
* ======== Operating System Configuration ========5 y: B% P+ {. A
*/
/ ?0 G7 Y, P. I5 w9 f4 K7 w' {7 F3 _3 I' }, _# o4 Z
/* no rts heap */6 F) @ X# k2 }1 ~
Program.heap = 0;" [- v( l/ Q; O: e- j
Program.argSize = 100; /* minimum size */5 M5 v! e" T( E* t
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大
8 X, o, l' \5 N" R, R# U& { L. A6 i# |# X
/* create a default heap */6 j9 p+ b; ^$ ~0 g
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
8 Q- }( t; d: u( I2 cvar heapMemParams = new HeapMem.Params();
! h" F( b$ v+ u* sheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
% x4 \0 G! Y9 d6 M" O, A- `: a: x
( {, B0 i0 b# [! q7 zvar Memory = xdc.useModule('xdc.runtime.Memory');: K/ D7 y6 l$ _+ m2 s
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
5 Z+ Q# z+ P+ f
- d% ]3 m# t8 c* |/* configure System module */4 D2 F' P9 d A! R* [, d8 ~( q# ?
var SysMin = xdc.useModule('xdc.runtime.SysMin');
. b7 w: h! q. w' z- P# S( } w; E: y* ASysMin.bufSize = 0x1000;* N: ^5 E. j- _/ ~
SysMin.flushAtExit = false;$ u7 j2 h& ]) t& H9 e+ z4 d
* a1 G; x1 P$ y5 M; T
var System = xdc.useModule('xdc.runtime.System');! E4 B9 |( p# x. ]: Q
System.SupportProxy = SysMin;
6 n$ i' W5 r" M* O; ~+ b
( s# X# f; P+ r; w2 X* q1 Z# v/* configure SysBios to use the lower half of Timer 1 */
' g5 r* G/ H% N* f0 tvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
9 \" p/ _) ?% i( p; Svar Clock = xdc.useModule('ti.sysbios.knl.Clock');- ]7 v* \) n4 K) o d/ X
Timer.timerSettings[1].master = true;
0 t3 N8 u; Y/ dTimer.defaultHalf = Timer.Half_LOWER;1 i# R# ], A9 z+ r- a
Clock.timerId = 1;
$ P$ W1 k3 V+ t
* `- M5 j1 D/ G0 B% k" G9 m/ r) F8 u8 a% P3 _
/*: d0 j0 C7 r2 z4 [
* ======== Miscellaneous Configuration ========, D" y+ N3 O. l* b& w N) S" g
*/. c3 C8 H$ A. Z0 @! s. m7 ~
; S0 i5 A) l- S1 F5 {2 p' l/* set default diags mask */2 F' U) ? Q8 p. L& _3 V
var Diags = xdc.useModule('xdc.runtime.Diags');
+ U, f: c' G8 f# a/ g% [( ?var Defaults = xdc.useModule('xdc.runtime.Defaults');/ b' A. S2 |; D+ O1 I
1 z9 x) [2 X2 p
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
9 q% T+ ?5 p0 t+ ?Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;* |2 K7 C9 ?7 N( {
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF; q# E" z& o5 [5 l2 u
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
; w9 d, ]4 f2 l* l5 j1 O+ t+ ZDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */' `' K" `+ b& c7 O& }
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
4 I; u$ y: \ mDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;. m4 k+ M3 U6 i/ J$ w; t+ W
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;, K' D3 Q! }- u4 U2 ]9 F
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF; W, u7 g W7 A7 Y# i
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
& N6 E6 d3 C$ ]/ h; WDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
# X7 |5 l, Z. K3 f9 x( P) bDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
. f5 g* y! x0 ?Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
9 T( |7 M0 X( x. g; z2 u! aDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;4 u9 }$ Z# H, m8 J
6 X3 Y0 J) j H6 R9 }0 m
/* override diags mask for selected modules */# Z0 n6 q/ f1 ^; \/ {) w, N
xdc.useModule('xdc.runtime.Main');
5 M0 V$ Y+ l% b9 M4 r; jDiags.setMaskMeta(2 B5 ]5 I0 j6 e, r" x8 d
"xdc.runtime.Main",/ l8 s% I. x U% V
Diags.ENTRY | Diags.EXIT | Diags.INFO,3 |3 i0 ]" }: ^0 C9 h( f
Diags.RUNTIME_ON0 x W2 m7 @, m9 _$ p: z7 ^: j
);
0 B e0 F8 m+ H/ L6 ?0 O/ Q& o
6 `/ X9 Q% `& I* C0 i1 d# gvar Registry = xdc.useModule('xdc.runtime.Registry');
2 q) P; i, g- `- P! ~% fRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
0 P7 L* z7 L" o, _1 P$ RRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
3 P4 i! j1 ]8 u$ J# hRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
; u% P4 Q1 v7 ], f7 A/ _Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;! D1 a. e* t2 H# l3 l
2 c+ u: Y. k/ q- z: \. X
/* create a logger instance */
2 N, q) C" F4 K$ G: Tvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
l8 V/ F" m5 k: _/ ^) x/ S) P2 ]var loggerBufP = new LoggerBuf.Params();
( a( y- p+ n% v1 H$ xloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */9 S8 \3 L$ l2 ~1 P6 `9 m
loggerBufP.bufType = LoggerBuf.BufType_FIXED;+ D; H! g# B( i# ` \* q
9 j" R# ^2 h- B1 z) avar appLogger = LoggerBuf.create(loggerBufP);
* {4 {; f( k+ G \7 UappLogger.instance.name = "AppLog_Core1";% j+ @9 l; z# {3 R3 k8 P
Defaults.common$.logger = appLogger;
; b; B6 ?! s( R/ F5 CMemory.defaultHeapSize = 0x8192;
0 ~( q; T) d* H$ O7 g: K) V+ { CIdle.idleFxns[0] = "&LEDStatus";
5 Y9 g) |, S0 E0 x- h" WCache.initSize.l2Size = Cache.L2Size_32K;0 O6 G( Q$ K% T, q& E/ ~* h( T+ ]
! y1 p( {$ L8 G8 y9 [
|
|