|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
" E- z# u% n0 {我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下4 f* h, T* i+ r
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)" u+ a( Q, D9 X5 \* ^8 z5 [5 d
9 i3 T1 f/ |2 Q是不是需要在DSP.CFG中进行配置
9 ^3 r- ~3 h- W' t l我现在的配置为* n# p- ^1 y. D! H! s
6 m2 |; p8 _+ Z3 r( E$ ^" E% M6 G b/*0 L) m6 B- b6 d$ ~# a
* ======== Operating System Configuration ========
( B/ @( r2 f# @. \" T' \5 m */! F; F ~* v% I& t3 |; I! j# z
/ s0 @" x/ n6 {) ?/* no rts heap */
% a* B9 p+ x' e8 X: KProgram.heap = 0;
+ D9 t, i0 p6 R8 {: j; ]+ dProgram.argSize = 100; /* minimum size */
9 _! c( e; N& N" ?. j O ^Program.stack = 0xF000; //此处修改后的值。不太懂,所以改大5 d, s G- y: j; z5 S
m' K4 z7 F; G! z- T. e
/* create a default heap */
B" K! D! Z7 o2 k4 ~# ?8 nvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');1 _) R! g _; x: T7 [+ l( @- G
var heapMemParams = new HeapMem.Params();
* c/ ?9 l. h3 S, `6 f+ c5 U0 U J' AheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
( @7 o- W* }3 T$ P; u. s! ~' Q# w) H2 J: F6 m' g, ^- m, V/ G0 v
var Memory = xdc.useModule('xdc.runtime.Memory');
, Y! M( D8 W8 }Memory.defaultHeapInstance = HeapMem.create(heapMemParams);, d& P3 l% T/ w ^) J9 y2 t& o
& {# e! O7 X( Q$ k$ {
/* configure System module */
9 f' k, [. Y, k- D# v3 k) dvar SysMin = xdc.useModule('xdc.runtime.SysMin');0 t5 H7 K! `) N
SysMin.bufSize = 0x1000;
( T d$ U: h9 Z. K/ g6 N) E$ eSysMin.flushAtExit = false;
/ [% Z9 i$ S' K$ B, b" r! H: j% a, n4 {8 r8 v7 V0 `" |) n
var System = xdc.useModule('xdc.runtime.System'); d) ^. K' L2 r& K, ^
System.SupportProxy = SysMin;; J. c% t7 O- N
) `! N5 H4 Y" X# c# b/* configure SysBios to use the lower half of Timer 1 */! P+ l2 C9 W( \+ M5 @( Q. N9 `
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
`- j) A9 u8 ]# y" C2 I) [var Clock = xdc.useModule('ti.sysbios.knl.Clock');
: J; {2 P7 z9 o) J' y/ A: BTimer.timerSettings[1].master = true;
# |0 V4 h# g/ J) g0 l% sTimer.defaultHalf = Timer.Half_LOWER;3 w/ h m$ k2 b% t, j0 Y
Clock.timerId = 1;
0 u6 w* Z' q# b4 j* J9 c# y0 _; R1 @* t
" {0 |% h' O, p& c6 H+ H
/*
+ m, m- O- n0 y * ======== Miscellaneous Configuration ========
- D) \ r1 k. V# V) e */
4 w; q+ B1 P+ X; t
1 `6 t; I0 ]; ?7 m/* set default diags mask */
" |5 ]" {0 q c- Evar Diags = xdc.useModule('xdc.runtime.Diags');! w, X* d8 H% h. y* z; o7 J
var Defaults = xdc.useModule('xdc.runtime.Defaults');8 R ^! \" b o x
' R [3 r* @( e+ y; e
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;/ b! T0 y" T g- o( m/ Q
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;
& ]- D: n, H y; Y8 v" xDefaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
x& \. b( W/ c, MDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */1 R! X" A* e/ ~) S7 g; \# h
Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
^5 c- ^. K' `7 qDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
% s- O$ @5 \+ P! |+ cDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
: d! x! @4 \ i. mDefaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
) ^. N4 o) ~0 L& o9 eDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
V9 Q$ A8 d. GDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;; Q% {8 A/ {' |, d* {
Defaults.common$.diags_USER5 = Diags.ALWAYS_OFF;3 R, s+ i* k2 D6 N/ q' H4 F
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;$ w* V: W$ t, o' q% P
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;4 l. k% D& a1 e& L9 b- h* z: s
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
% Q! n: n: H8 N ~4 m! A2 Z
. ~& V+ u1 T1 S& H/ [/* override diags mask for selected modules */
* ]) {" M; V& I s8 X9 l% bxdc.useModule('xdc.runtime.Main');
; R* l' A2 `% W, d% KDiags.setMaskMeta(
& C6 J% Z7 p7 \ k "xdc.runtime.Main",
8 Y! P0 E# i A Diags.ENTRY | Diags.EXIT | Diags.INFO,' z# S x2 h. d3 s/ j; |3 e2 m
Diags.RUNTIME_ON! h2 @- r4 m6 F% u/ ~0 k
);" N( a% C) l- V) F2 r; D* t
& s3 Q5 j7 Z( C) P5 |1 u
var Registry = xdc.useModule('xdc.runtime.Registry');
% U2 f6 j, I4 eRegistry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
2 k- X( N' O; a. T9 Z% i0 bRegistry.common$.diags_EXIT = Diags.RUNTIME_OFF;
, J9 E) B1 \) L, L1 V: DRegistry.common$.diags_INFO = Diags.RUNTIME_OFF;0 S7 T8 t8 [2 x% t
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
/ B- E4 L& @+ w3 C3 E2 i9 L
6 N) g( h+ J; I# e/ m2 T* `/* create a logger instance */
9 o3 c/ p: |( n0 Y" n( nvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');1 {9 i- c( g) b; w' m2 p
var loggerBufP = new LoggerBuf.Params();6 `5 r4 h6 Z' B& N5 @% a
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
! i" L+ }3 f8 r! M/ I7 \# ^. S& mloggerBufP.bufType = LoggerBuf.BufType_FIXED;
8 i4 U1 F9 P% a6 P" a! U
; {4 \$ r2 ~) w2 zvar appLogger = LoggerBuf.create(loggerBufP);; e1 c. Q; x. W" A
appLogger.instance.name = "AppLog_Core1";1 r c. \. F. J/ M; U- u
Defaults.common$.logger = appLogger;
+ N9 `- ?. d5 d9 [3 [3 g; ]Memory.defaultHeapSize = 0x8192; * _; Z# ~5 Z. F
Idle.idleFxns[0] = "&LEDStatus";
& g8 v( i/ ]0 W' N# g K7 QCache.initSize.l2Size = Cache.L2Size_32K;
$ \$ }. t+ V& |0 X5 l1 G, R. K7 [1 p
6 z. E2 v( ^0 u$ Z |
|