|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明# V9 c7 R, s, T: ^
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下, ~, n' m! e% b2 {+ ]4 t% S
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
$ {6 J" C2 v F8 Y& e# Y5 T
3 x1 X3 O# O" G2 ^9 f是不是需要在DSP.CFG中进行配置7 s% A* l2 S8 ]5 ]
我现在的配置为' C6 h; F6 r# r0 N; ]
: L& u, ^7 {" A9 X; W& F/*; o* H6 [# Y8 q
* ======== Operating System Configuration ========
% i- C, h2 s& j */
" g1 h/ B1 `+ j6 k% P6 f* M7 P% V
* O# h6 C1 f$ r; i6 N/* no rts heap */
l5 A3 I% t0 r4 Z8 \1 cProgram.heap = 0;2 ^' D- J; f$ E i! p
Program.argSize = 100; /* minimum size */) v; l& j/ w9 {! N- v4 A S
Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大2 v' b+ L) ?% Q4 B4 K
+ w- i1 U- I7 K! m, i, \2 p
/* create a default heap */
0 Y) X+ c$ I8 b5 s! Lvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
$ b& S5 R" g8 i& X8 v. yvar heapMemParams = new HeapMem.Params();
* u& P+ S3 p7 Y9 R* ~6 MheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
5 W5 k/ j6 F4 Q
|6 l; ~3 S' k. N% m7 t# tvar Memory = xdc.useModule('xdc.runtime.Memory');
: \* U7 d7 k$ e, D4 `2 H5 c& NMemory.defaultHeapInstance = HeapMem.create(heapMemParams);
% |& ^) S/ E) d4 g' l$ P: ?9 T4 i! d5 f: g5 d
/* configure System module */
& L7 A: I& f: A$ Y; q* O0 d0 Hvar SysMin = xdc.useModule('xdc.runtime.SysMin');
' L/ f* z( h* z5 g- |) oSysMin.bufSize = 0x1000;
. b% W& o7 n* V9 H5 e) s: RSysMin.flushAtExit = false;/ T2 }6 I9 z- N" v& S. e9 P# O
; D! u0 t5 V7 k3 g: Gvar System = xdc.useModule('xdc.runtime.System');
8 `6 y* r( K" Z' w* p% y/ G$ H! h2 j [6 cSystem.SupportProxy = SysMin;! I# p9 `8 B% K2 A7 a
1 |! ~$ D2 j/ ~% A' Z: r% @: N# O- C/ C/* configure SysBios to use the lower half of Timer 1 */' l: q( [/ o) ]
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');1 I1 J# Q/ c; i* U% `
var Clock = xdc.useModule('ti.sysbios.knl.Clock');# R" X$ _9 M+ ]; I& ~
Timer.timerSettings[1].master = true;! C4 {# D5 c; A
Timer.defaultHalf = Timer.Half_LOWER;
3 X7 J% Y- M5 ^' F3 _; g% `; l! kClock.timerId = 1;4 f3 a: l2 _" b
' z/ j3 i, l; y+ \
/ T; n" O! ]& y- v! S/*
: G l; l$ s4 I * ======== Miscellaneous Configuration ========
. {: L1 \, i/ B' g" A/ ] */0 [$ j4 ^9 O8 d4 a1 F
) D% G. O, o( h7 t5 h/* set default diags mask */; h- y v9 X0 E2 O3 l( p
var Diags = xdc.useModule('xdc.runtime.Diags');
* a Y! r3 M1 O* ~var Defaults = xdc.useModule('xdc.runtime.Defaults');
: v* \" m8 }, Z$ M4 n# @0 n9 D4 ?8 K8 C- T+ |" ?" h' R0 Y
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
. j t- f& X2 m; K+ }* R8 PDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
7 K, ]3 {8 {. iDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
% b; a3 z9 c0 y5 m3 B1 Y$ IDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */# r E0 e4 G3 f5 l
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */7 g1 y0 V# j( o, J
Defaults.common$.diags_STATUS = Diags.RUNTIME_ON;
* f! O$ a% {4 EDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
# r7 M8 {- ^, Y$ W, e! DDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;$ f# F# I& a6 E% L* H
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;4 v( P/ b6 [$ H
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;8 @" ]+ x' M+ x# m; V; G
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
% V' U( X R* c9 qDefaults.common$.diags_USER6 = Diags.ALWAYS_OFF;0 X9 ^8 V. W# Z8 |
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
7 g4 z5 L# }' [: j2 r! J+ |6 o$ oDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;+ }' [) M9 R) ]. S: A3 S+ v- j
( k3 R3 ?- h) G# R, V/* override diags mask for selected modules */3 _2 D$ L& [* }5 ~6 d9 |- c
xdc.useModule('xdc.runtime.Main');# x6 w$ D) |3 F# l+ H$ Z
Diags.setMaskMeta(
: H; v1 b9 Y9 P ~+ ]3 @- s( o( ] "xdc.runtime.Main",
$ X! b) C8 p2 v! m0 l9 K U* S Diags.ENTRY | Diags.EXIT | Diags.INFO,7 L; R% @* p- w$ Y# R6 _
Diags.RUNTIME_ON" a5 Y- m' ~1 k+ R5 N' \% I) O
);
4 s) v. L6 q% O6 |. f! e9 t7 O6 P- a: T5 w9 A: ~
var Registry = xdc.useModule('xdc.runtime.Registry');' h/ h5 t: s: E
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
# o: T. b7 g9 `" C# l8 x0 Z, xRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
+ H, ^3 g/ q; M( H, zRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;5 k2 h; G5 v1 G. p% R
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;( o# V0 O# n: f2 P' N) S3 p" B
2 r8 ]/ B$ n; n/* create a logger instance */
, d/ a. g8 F6 vvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
2 Z2 u1 {$ x+ Y; W+ F& A- x. nvar loggerBufP = new LoggerBuf.Params();/ `7 {8 b. K1 X/ w4 c" P/ u+ ]' F
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */, ^7 t7 k% j# E: a
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
) X% d8 d0 x! v" U3 M2 b
& W; B1 K7 P" l. q6 k% ~$ `3 a7 q: a4 |var appLogger = LoggerBuf.create(loggerBufP);8 T( p( d# X5 g; o
appLogger.instance.name = "AppLog_Core1";
& Y' H+ p# z' v; @" fDefaults.common$.logger = appLogger;
: U( n6 w& O' K* ?7 P+ y# `Memory.defaultHeapSize = 0x8192; " y$ P; l6 R4 V- a* }* f3 h8 B
Idle.idleFxns[0] = "&LEDStatus";8 l1 w( I$ E! X; \
Cache.initSize.l2Size = Cache.L2Size_32K;
' Y: v2 h+ |- w- J# a* |4 V
$ T7 G5 a7 G. k4 z( K2 k, }6 s |
|