|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
1 ?0 C6 N+ ?) n. C! e4 N" A, ] j我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
( _: ?. X2 R& b E1 H(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
5 F) I$ W" t& t8 D R' A, e2 q
5 N( y' w& o h, X* r0 p是不是需要在DSP.CFG中进行配置" `& h! a7 R7 [( E$ o7 z$ V
我现在的配置为" Y( S# m* Y/ l
! M& G% t; z8 O/ ^- {# E- F
/*
2 \! u- F0 L& ?7 G; {$ I4 l * ======== Operating System Configuration ========
- V; k2 j* i- ^- a" Y( _ */3 f0 C2 o6 @& M% E
6 H! G3 F! ~/ g5 n7 c* m
/* no rts heap */
0 \; M9 c3 x. G! `8 L' j" jProgram.heap = 0;, ?. j4 h- E1 ~$ y1 m9 b
Program.argSize = 100; /* minimum size */
8 I4 p, s# C W! I' dProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大2 H7 X. a7 B9 V4 \, X( ~
5 Y# F% ^) U' Z3 A1 l/* create a default heap */
* q4 v" r5 ~2 C/ }; ^9 Pvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');9 V& g( {( Q# M( V
var heapMemParams = new HeapMem.Params();' z B/ x$ l2 g; X2 v3 q
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大5 r6 x6 v& r1 J7 l. ^* i
/ M/ d& |. N8 ]2 C8 ]
var Memory = xdc.useModule('xdc.runtime.Memory');- {- S6 [- g- Y- V/ H0 E0 F
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);* B) a. M7 S) g0 d6 r7 Z7 a
3 ^! G5 v& C$ I; H, L5 W' r% y
/* configure System module */$ s5 e" i. U8 `
var SysMin = xdc.useModule('xdc.runtime.SysMin');
7 R/ x6 N$ a! K0 B# o# `& eSysMin.bufSize = 0x1000;2 J2 L+ h, E! s! N
SysMin.flushAtExit = false;
# ^: P0 A* B6 g& k# R @9 G( n+ `! P5 U" Q* W$ E
var System = xdc.useModule('xdc.runtime.System');
( w. H8 w7 b! i% g4 O/ l aSystem.SupportProxy = SysMin;7 n" Z7 V# g7 i% F
8 Y' z4 U+ | r s( F# O" K/* configure SysBios to use the lower half of Timer 1 */
! j2 f1 B# G1 h5 c Qvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');5 `5 f! A) v, x8 J# G3 }- P
var Clock = xdc.useModule('ti.sysbios.knl.Clock');9 o5 O0 c& n, X9 ?# z9 V
Timer.timerSettings[1].master = true;
, r7 l; U/ {% |0 x' {' o4 V" F: N& LTimer.defaultHalf = Timer.Half_LOWER;
, H9 H# H/ m' |Clock.timerId = 1;" k" ]$ x: M8 y& ?3 @" O' }
& f8 {" B! d7 Y2 y( C
% ? F2 a- H* l# \
/*
_2 u/ X/ {# v * ======== Miscellaneous Configuration ========
, m: _9 c! W' @ */
# z- D# i# z8 z8 j- i! N8 F9 R4 t+ a+ w7 T
/* set default diags mask */
8 [# Y' i/ U& N6 T/ ivar Diags = xdc.useModule('xdc.runtime.Diags');5 M8 T- H1 t, G- Y/ [
var Defaults = xdc.useModule('xdc.runtime.Defaults');
4 {$ P0 L4 b/ x) F+ m( p! [' N3 R2 I& N0 Q4 [8 l" \/ S
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
# \. z2 e& w% v% [0 EDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
v1 \1 h9 @; r3 c3 G+ K4 _Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;0 V: p" p0 l. N G
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
& E% I3 C5 K1 r) U$ w+ R# W% A7 ]Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
# d/ ?0 H8 J( p. r3 v" WDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
[! Q4 T0 s: `- N& @! F9 m$ ~Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;+ @9 [. A0 _5 N* w% M& V
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
: }" n+ ]+ L& N) W' I" r4 a* T0 BDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;! v/ e0 X! m6 M
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;) b& @4 c+ {0 x& k5 ]
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
; [0 C/ q$ Y0 w2 Q; \* m) SDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;- V1 [2 i* o; U; c) i6 L+ E+ S. l
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
7 F% Y$ W" N3 Y7 p6 V& XDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;. z$ T$ R9 f$ E( ]+ p+ d5 u
6 S2 a0 R4 ^, a4 `! v' r9 D3 u& \7 g
/* override diags mask for selected modules */ G+ P2 C0 e4 M7 d& N
xdc.useModule('xdc.runtime.Main');0 P& S" i/ B6 Z& H
Diags.setMaskMeta(
9 g) G9 r* S/ j. v6 s "xdc.runtime.Main",: Y' e- `9 @. ~& }4 n3 Y$ ~5 w; [6 X6 ^
Diags.ENTRY | Diags.EXIT | Diags.INFO,; A' c1 K: q5 o. d- h/ v' e% u
Diags.RUNTIME_ON
5 v/ P3 R' Z/ b& i$ [);
; s8 e5 @( v& G4 e" K! t' O: y, {' M, Q& x
var Registry = xdc.useModule('xdc.runtime.Registry');
) @) |2 h5 O, r1 _- j% VRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;$ |1 R2 j2 ]$ ^5 p: R& f1 J
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;9 _# i1 O$ w. F
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
% n8 Z ?+ r, _& S, `; KRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;: p/ X* [) ^6 W
4 h) ^ s& j" D5 M( B
/* create a logger instance */
0 m7 W4 k, H. G2 F2 Cvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
2 g3 E! X: v! avar loggerBufP = new LoggerBuf.Params();
+ K9 u7 O5 Y5 i; qloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */" \1 z4 C$ h, K, N7 h
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
5 _- F9 I, E0 G" k! A1 T2 M
" f$ U% |9 T/ L# rvar appLogger = LoggerBuf.create(loggerBufP);
$ @5 |; f, O1 ^appLogger.instance.name = "AppLog_Core1";$ }; C% X; i% Q5 h. c
Defaults.common$.logger = appLogger;/ W' e7 |: b6 h9 [5 H8 b y
Memory.defaultHeapSize = 0x8192;
H9 n' h$ A- ~ h# \1 h% s, [Idle.idleFxns[0] = "&LEDStatus";
7 f& _ u; a: H3 m& ^# w7 DCache.initSize.l2Size = Cache.L2Size_32K;
* J/ Q8 v3 @9 l X6 b
/ s% S. w, t$ _7 O8 `) T5 g |
|