|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
0 J, W6 [6 w( ]我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下' m4 ]1 V. O% Z/ [% F
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)0 C7 J+ u, r q- z
; ~; Z* _5 M* S
是不是需要在DSP.CFG中进行配置- n' ~4 X8 N' B/ c9 g2 o4 R, L/ [
我现在的配置为, B p7 K+ u8 X( X n( @ m
" |& R1 K0 V1 E7 L' S/ p; J- C
/*3 D. F# j# H/ L9 C$ S& v) y4 V
* ======== Operating System Configuration ========$ N. U& i( }5 b" G+ a- k" l$ Y
*/) f2 u5 w2 Y$ C0 `1 x* w$ V" v
+ ]7 {5 v: Q' ^. V, }/* no rts heap */
1 r F# T+ {3 g( SProgram.heap = 0;
0 c/ N, T: U4 b# F# ]& RProgram.argSize = 100; /* minimum size */
/ b, Q: J+ ~$ PProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大4 L; |; B& e' v6 L- K' n) n
2 X6 V6 T' V* z, V7 d% B6 j
/* create a default heap */5 L4 w: C9 _9 [! ?8 A7 h. Q' i: \. X
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');, K. [$ r% Q/ v
var heapMemParams = new HeapMem.Params();
, u8 \8 A2 n* {" m" g( DheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大# w+ u& @% @ K/ U$ E0 Z
7 b. h7 ^3 I) C; @- K
var Memory = xdc.useModule('xdc.runtime.Memory');
9 v: A; t9 Y2 W' r8 k% h9 IMemory.defaultHeapInstance = HeapMem.create(heapMemParams);0 h; k; b [$ K2 _% t2 Y H
. ^3 d$ O8 `: D- n4 d1 }
/* configure System module */
% P# B: |3 V1 L. S! S- N/ jvar SysMin = xdc.useModule('xdc.runtime.SysMin');1 z! v5 Q6 F! Z" N, z! ~2 [; r
SysMin.bufSize = 0x1000;
1 U" h) X- L9 X6 D1 GSysMin.flushAtExit = false;7 O1 B( O) P5 b7 A& I# K9 U5 n, B
( B3 b! @8 l6 V5 A0 dvar System = xdc.useModule('xdc.runtime.System');
7 R* ^4 x; Y0 Y0 GSystem.SupportProxy = SysMin;
* M8 B8 ~& @+ c% r* ], i# J
" P1 M0 l' T, f5 s# v/* configure SysBios to use the lower half of Timer 1 */9 ]4 Y0 W: ]0 P1 B" i. t& J
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
9 }: R) c+ @" w ?- A! Zvar Clock = xdc.useModule('ti.sysbios.knl.Clock');0 ?2 F! @& _' B5 m h' Z4 o
Timer.timerSettings[1].master = true;6 H: @7 u5 t4 ?
Timer.defaultHalf = Timer.Half_LOWER;
8 _6 N" C/ G. v" |Clock.timerId = 1;
0 s, P# d* A" n$ c; I$ P) {
( U9 C& q9 X% V& K) N
6 [) i# ^& D( g! K$ D/** z& |3 o$ l$ a+ {+ M/ ^$ F
* ======== Miscellaneous Configuration ========6 G8 S- c3 C' Y+ U y
*/
& S7 }, W1 h5 ?. U5 Y1 H4 j1 F0 I8 {
/* set default diags mask */# P, l# c5 ?1 b# q t
var Diags = xdc.useModule('xdc.runtime.Diags');$ N5 O. [, Y- W; B: i
var Defaults = xdc.useModule('xdc.runtime.Defaults');
4 V6 S9 c$ w6 K: D P; s; _, s
4 Q7 Z' i6 d) ADefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;; A3 L" |' U6 W& Q, g- P% `8 m/ C. t ?
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
9 O' N9 P$ L, e* d9 M$ C- f( H# JDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;1 F- X& e1 b1 @- `: {. J
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */: {$ ]$ ?( N/ `: [: F% v2 W# L- `
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
3 g- s3 e2 M' C3 _& d& TDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;% ~7 ^( ?$ |1 n( _. [& {* C: E) k2 ^, N
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;4 u# x2 l9 s5 Z/ v5 a# o- C) I
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
1 u( s& I- d5 F# J! A0 |2 r6 bDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
4 q$ A3 f: y v, c" N& Z+ B0 E6 MDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;6 q6 ^( ^2 G1 C+ U1 x$ G; Q% q
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
. Q0 ]; \7 Z8 B* QDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
5 T5 _$ H2 d3 ~0 W1 z7 d$ s" y% HDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;
% D" L' r6 H- P& _& L9 pDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;6 A* l' s) F" m2 z! ]. {
( F; X F8 ?1 s
/* override diags mask for selected modules */: S( X2 \, b" ~# j6 ^' w
xdc.useModule('xdc.runtime.Main');
5 g) d9 b; [' e* KDiags.setMaskMeta(
( w. u8 B9 l2 f0 L# x, w& Z4 C! v" l- \ "xdc.runtime.Main",
- r5 f( J* d; Q; t4 J4 E Diags.ENTRY | Diags.EXIT | Diags.INFO,
8 }0 T# Y; K+ [2 p" @ Diags.RUNTIME_ON
% K {& ]4 r$ K ] `- ]4 ?);
, k& y' L$ Y1 C0 @$ K7 Z% q
- E* }# f/ C$ k8 t: ?var Registry = xdc.useModule('xdc.runtime.Registry');
1 e! ^# t1 x- I) ^% m4 wRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
3 f8 ^2 c4 W5 K1 o8 l2 U* h6 WRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;( j% r$ p- @7 C# C
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;2 h5 [' _! h4 t- X: W+ F# P
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
- `, t0 V, o! `0 Q
9 J, B7 e' \, D- H/* create a logger instance *// _0 y$ c {; c: v T4 \. l
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');0 ~! T9 ? H+ n
var loggerBufP = new LoggerBuf.Params();
( v% C8 ?! [1 D# FloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
( V3 i( D7 I$ {2 v# L8 NloggerBufP.bufType = LoggerBuf.BufType_FIXED;
. y3 _+ u$ ?$ x; l2 J% }4 h7 V/ A z* w3 _
var appLogger = LoggerBuf.create(loggerBufP);
$ k$ b# _ `' g2 `7 x* v4 DappLogger.instance.name = "AppLog_Core1";0 j7 I# e$ i$ d! E3 g+ c
Defaults.common$.logger = appLogger;
9 }5 Z' M" a' ?: [0 IMemory.defaultHeapSize = 0x8192;
5 u- ^$ U+ l4 [8 A& x' j8 w9 m6 ~Idle.idleFxns[0] = "&LEDStatus";
. Z6 c# X0 _, t# O# ~3 i. d7 gCache.initSize.l2Size = Cache.L2Size_32K;+ k7 E/ w. U: w; \
9 x8 O6 ?6 d' P: X% A* g |
|