|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
4 y' W* z' M" c- W1 K5 |" ^我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下0 u4 B& b0 M& m1 \, A3 I) R
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)) \/ \! C+ P( U5 K# G5 j
2 `7 _5 o! Q. n; X& H, X7 r1 N
是不是需要在DSP.CFG中进行配置
. P! X1 |2 O8 |) |- ?我现在的配置为
/ V" V1 n* g# h$ y% s7 ?; _1 N
- ]9 k0 h) j1 h% D+ I& E! w+ o/*
$ U' [4 |6 q: u6 }/ y * ======== Operating System Configuration ========
* ?% e/ w6 Q/ n" v */' V7 Y: _4 T! K4 E ~" n3 X
+ \8 H( N+ ?5 h, n6 S1 E
/* no rts heap */. N. N3 s) D: D' I
Program.heap = 0;
4 s- J8 l3 K+ X' SProgram.argSize = 100; /* minimum size */
* z# k" q% z2 K; @; P4 y, a) EProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大7 B3 G7 _3 e3 A7 y, g
* I9 Z1 Q2 t7 O/ L* y: g* m% d5 C& ?/* create a default heap */
/ G* o5 R% O( D ?5 M; E) ]var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');, w7 c$ T4 G0 @5 s$ [
var heapMemParams = new HeapMem.Params();) W7 c) ^; D) @7 y9 _# M
heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
& z. K0 K- d0 \3 I0 e$ h
+ e9 d( ~6 y: K' f2 a d. N: i/ R' m( {var Memory = xdc.useModule('xdc.runtime.Memory');
- e+ E( y# D" n& hMemory.defaultHeapInstance = HeapMem.create(heapMemParams); t2 L6 c5 U- }% J1 K5 n
( K: d' N/ z; ]6 I7 ~* K
/* configure System module */
( v K$ e2 z: V9 w/ Vvar SysMin = xdc.useModule('xdc.runtime.SysMin');6 [ P/ i- A, ?9 N/ m7 l0 ^
SysMin.bufSize = 0x1000;
9 h7 ]8 m7 F! }* Y4 lSysMin.flushAtExit = false;
6 `1 c- s/ a1 G
# m9 @5 I5 p4 J' w1 L$ H6 w8 {var System = xdc.useModule('xdc.runtime.System');
6 q. U I$ @/ v+ zSystem.SupportProxy = SysMin;5 `& M. B- `* p9 @% m
. ^2 [$ k/ p5 |. R+ V& l/* configure SysBios to use the lower half of Timer 1 */
# z: P1 r+ K4 V" n: W- svar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
& S% p+ g' m( D$ h- c1 f$ j: T# @var Clock = xdc.useModule('ti.sysbios.knl.Clock');
$ |) q _ v6 N- u' \" G* {Timer.timerSettings[1].master = true;
, _" o- C# G# iTimer.defaultHalf = Timer.Half_LOWER;
2 K4 F3 N, i0 a( R! VClock.timerId = 1;+ L7 r6 f$ g/ g( _
$ ?! v# q4 k3 I D" X G% i$ ^
* w4 ]' E3 k& w/*: D5 `# h8 ~# ~5 h- x9 r
* ======== Miscellaneous Configuration ========
# H" `- F8 f$ L. ~$ }1 h */$ O5 J' q0 ?, s2 O3 `
3 n) P& ?1 u- R9 P8 R/ }& V/* set default diags mask */1 B2 _7 k& O# S9 z2 M) M
var Diags = xdc.useModule('xdc.runtime.Diags');- ?, ^; ~7 _. b( N; a W k
var Defaults = xdc.useModule('xdc.runtime.Defaults');
; B, h$ _2 i7 C8 m
+ |0 n2 \0 H0 W6 ^, Y, @/ }Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;7 u4 P1 q6 e) c* E
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; B+ A; `1 x8 j
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
# k6 n. m3 r; @& y& ZDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
9 q0 u) ~: r1 J iDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
2 w* o: @% L& T- L6 [Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;0 Q: h( J7 p4 u# h7 f
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
, e4 p# s4 I0 _) y- ]Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
5 Z% L" ]( {% n7 sDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;; i; K u- r! k Y" m' F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
* ]- I3 ~9 v0 pDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
' w% S) E3 C9 p2 M: q, [& x4 ` sDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 k8 c! ]( v5 YDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 l% ^$ ~" U- w' ~& sDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
, l4 ~* F1 }% t8 m3 c% n& b! S
* e& x- U% F; v/ X% B3 K/* override diags mask for selected modules */0 k {# L# R3 H
xdc.useModule('xdc.runtime.Main');0 j" ^& H |, b6 P4 g4 K; e' h
Diags.setMaskMeta(
# p4 Q4 ^$ O& U2 [3 j( }0 h% ?# W2 q8 r "xdc.runtime.Main"," Z! ]( j# B; O5 W& ?9 _
Diags.ENTRY | Diags.EXIT | Diags.INFO,- {' B2 {" ]# P* l( A1 q
Diags.RUNTIME_ON' j; B% S2 p8 e* s- x( s; y
);! @, ?" n& _; I" L% X
! a" r; D' G4 T9 m- i# D9 Evar Registry = xdc.useModule('xdc.runtime.Registry');1 Y4 D5 p/ a, K+ i0 }/ \; T
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;9 Z9 U2 W+ z; K# c
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
! P* @% m. x% K- |" {3 aRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
3 t. X' q) ? {+ N7 WRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;$ O) n P# u) n# E' \2 g1 J& w
! d f9 x# v+ P& d+ l8 P+ ^/* create a logger instance */4 W; e+ e2 I8 C5 q6 G; J2 ]3 l
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');3 o! P: M% E; n. \& Z
var loggerBufP = new LoggerBuf.Params();
1 t) z1 J4 S5 dloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
) u4 N& ~1 s6 HloggerBufP.bufType = LoggerBuf.BufType_FIXED;
" [) Q8 J+ @4 C8 A: ?5 p! [6 r
0 b& T. h; Y) t. J' ovar appLogger = LoggerBuf.create(loggerBufP);( y0 e- _4 Y9 n# L7 C
appLogger.instance.name = "AppLog_Core1";- O: ^4 F; K o( h u! ?
Defaults.common$.logger = appLogger;
) b j. t2 f0 {1 KMemory.defaultHeapSize = 0x8192;
7 p+ M* d# z/ d1 k" BIdle.idleFxns[0] = "&LEDStatus";
: ?4 [& L, i3 t" }7 v+ S1 q q0 pCache.initSize.l2Size = Cache.L2Size_32K;
3 p2 }) L) A R8 w
2 f2 M1 p' P' k: _; v7 A( J! p |
|