|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明$ L4 @3 e( M1 ^" u7 G& Z
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下" x# k# Y7 ]# T2 @
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
& _4 q* k# a+ e) x. q0 d- C. ^& `( n8 K
是不是需要在DSP.CFG中进行配置9 @* E# X' w' U v* g
我现在的配置为
6 w) a- i9 u B" ]" ?0 x' ~
8 q. i! {+ O5 P, S/*
5 E4 t2 @3 t+ W9 }" g; X1 B * ======== Operating System Configuration ========( p; g. |7 l) T; E4 O+ ^1 n
*/
0 g; G6 k u( E' y) o4 ^. \0 K8 S9 g/ O: f- D- d4 G
/* no rts heap */. K' \9 L+ x' F6 e
Program.heap = 0;
/ q; I) p# y' [4 GProgram.argSize = 100; /* minimum size */
; a3 P4 x/ m9 S, sProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
0 D4 L" T- J$ i/ H" k9 [
8 T4 b. }! Y+ d7 x! o4 ?/* create a default heap */
3 Q0 @& ^ m- @var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
) H6 G' a; q) Rvar heapMemParams = new HeapMem.Params();7 } c- l- H0 a8 E5 q( |
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大* X, Q3 O1 V" O; G
S w, s/ a5 V: U5 b0 V4 p/ m
var Memory = xdc.useModule('xdc.runtime.Memory');
: S5 I, M; h/ U' WMemory.defaultHeapInstance = HeapMem.create(heapMemParams);6 G) h2 ^% }' w: G$ H
# K' a) Z: V; P/* configure System module */
9 X% O# j6 H; D3 t" s% Avar SysMin = xdc.useModule('xdc.runtime.SysMin');
) L' B# O# W' p5 Z" y+ }. fSysMin.bufSize = 0x1000;
( y* j! }. u& O! J" gSysMin.flushAtExit = false;
7 X+ o1 x4 c6 `4 D. Z3 B
% |& T x0 M3 \# kvar System = xdc.useModule('xdc.runtime.System');1 w, N: R+ f$ \3 |6 A7 k1 r/ l6 v
System.SupportProxy = SysMin;
0 ^) d$ g7 O E' P9 k8 {# j, j) f9 w8 X6 @# i" E9 N7 u1 n+ Z& _
/* configure SysBios to use the lower half of Timer 1 */
! b- ]5 G1 Q/ N5 [0 M2 qvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
1 q- _+ |2 c% v9 P9 g8 xvar Clock = xdc.useModule('ti.sysbios.knl.Clock');
; [8 X0 v; o( z9 U7 \) ~Timer.timerSettings[1].master = true;
# N2 h7 M* m1 e4 NTimer.defaultHalf = Timer.Half_LOWER;6 ^: |4 x& V2 [7 H/ t
Clock.timerId = 1;
, X7 h: D9 O9 a+ v! O
" w8 u% u4 z, _# D
( V& c. K+ Z% ^2 n8 [/*
" b; G* K" W/ ~5 N8 ~2 F9 Q3 i * ======== Miscellaneous Configuration ========
( i2 Z5 i4 L- c */: D. T/ X7 ]8 ^' K4 A
0 y. Q- D4 s; o1 B, }
/* set default diags mask */4 x/ N1 _* c4 v2 Z0 Q% G Z% v) ^; Z
var Diags = xdc.useModule('xdc.runtime.Diags');
6 D+ j: \# `4 p; Q/ Wvar Defaults = xdc.useModule('xdc.runtime.Defaults');
% Z) g1 y0 \. {* m1 w7 i. L' G/ q6 G& T6 @" @2 |! S" W; C$ x) B) O) h
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
% c# N; B- O5 }$ l) S, NDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
- z6 P2 Y4 A3 ?6 K9 T3 fDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;* e- T; e8 ]: r; X7 t; }8 m
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
# a) O6 I6 B( k0 gDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */- }3 f. S7 j2 d1 H
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;% `7 m1 _# d# p4 T0 W
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;8 F* _) a( v5 e, U! u' q
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
( j6 ^* M. T0 l% D8 G6 FDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;9 K/ A8 @- Y3 k: \7 b; B4 X3 ]
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;3 A% Q* f- ~, a7 U5 E( T# e1 O' i
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
3 f U! T1 W% ADefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
1 h- W0 d: S% Z( K9 B/ v$ H9 q: SDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
9 b% W: {# A v# ^9 l- d; Y8 ^Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;3 A3 b6 W0 \# G! m% q; {7 g
# w8 f0 {8 o6 K: f( T/* override diags mask for selected modules */( }: S/ E+ c+ ^ c0 \+ g! G; a( G
xdc.useModule('xdc.runtime.Main');# O0 _* u9 k1 M1 o f4 n
Diags.setMaskMeta(
+ ]4 a8 ]/ d" @& f "xdc.runtime.Main",' c2 \8 Q; s* b" a' J
Diags.ENTRY | Diags.EXIT | Diags.INFO,7 {2 G5 W, s- G2 i; x# r( \
Diags.RUNTIME_ON
/ |" J* B9 y" P( p* n; L);
6 t0 K2 v/ D% T. B1 B4 \" }9 B+ k" }) Q5 t- b: b( |4 L3 p
var Registry = xdc.useModule('xdc.runtime.Registry');+ F I( l$ R6 ^
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;) A) G% ]2 }, F5 E* X
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
& J5 O4 r6 R0 j. ~3 [1 S- E" qRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;8 h( G. c8 g1 V& J8 {, I3 H
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
( g. I, k6 n/ {! n
5 f0 C+ e8 \' M' x/* create a logger instance */; M, w! R" _! c m+ {: q( ?
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');, H3 u& z% s! b9 ^- t3 l
var loggerBufP = new LoggerBuf.Params(); ?7 [& X) _% g! }! `
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
9 m" }0 e4 G% i7 c* |* wloggerBufP.bufType = LoggerBuf.BufType_FIXED;
! [1 D% R8 a# {
+ j- `1 D$ A* B# A1 t- g" vvar appLogger = LoggerBuf.create(loggerBufP);
3 W8 i N' g, ~& }4 [& mappLogger.instance.name = "AppLog_Core1";
3 R9 p1 M. k2 _+ \) \5 eDefaults.common$.logger = appLogger;
6 M* c, A Y0 H# C+ \1 mMemory.defaultHeapSize = 0x8192;
6 X+ ], z7 ]' {& h, k1 r2 e7 gIdle.idleFxns[0] = "&LEDStatus";
4 U4 O- i# F$ R+ d6 ^0 M: kCache.initSize.l2Size = Cache.L2Size_32K;
2 z+ R: r) \ ?% i. F: h
6 T( L% y: y$ H! p% j4 F |
|