|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明 M0 L H6 l- J9 j2 V. U; w/ f
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下9 U7 t* c' `7 E! f( {
(不过疑惑的是,为何单独DSP仿真就没有问题呢?); K! X' D0 ~: j K; G
. {: H! T$ t- Y" A: c是不是需要在DSP.CFG中进行配置
: O3 I, M4 f) W, Q' b! Z我现在的配置为: r% V0 X' h: S9 W
8 q6 L2 L. N- G _* ^. K/*8 E% r% E3 T* j9 C9 A
* ======== Operating System Configuration ========
! ]3 x& a2 y0 R+ P7 E& y+ b7 E */9 F9 u0 I% f: C( J
6 t. z# S$ J# o3 p* Q
/* no rts heap */
2 J" f( @. p& P1 dProgram.heap = 0;
: [- t, O& X5 L7 X. LProgram.argSize = 100; /* minimum size */
9 O3 v8 e* ]6 T. {+ r5 mProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
0 D6 o5 M/ D4 @7 v8 ]
2 H, c/ ]% }5 u1 l/* create a default heap */
; r ^4 t! t/ X- S% n% ?3 [var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');+ r1 r9 B7 ^; d. C8 n7 v
var heapMemParams = new HeapMem.Params();
8 U( Y; ^1 D5 yheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
: K1 g" ]" Q# q6 \) w6 P- \, n2 b P# Q
var Memory = xdc.useModule('xdc.runtime.Memory');: X7 f% x" Z2 g7 Q
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
8 {9 `0 L2 H: u1 Z* u' m. o: ^ j# T, ]# r
/* configure System module */' ~# z9 m& c2 \) a% M0 ?6 f. `5 q) Z- \
var SysMin = xdc.useModule('xdc.runtime.SysMin');' u! a$ i+ W/ {
SysMin.bufSize = 0x1000;
8 T) q+ u7 |2 |7 CSysMin.flushAtExit = false;
9 \+ o! q7 i1 t# s/ T$ a# h& u1 k) F, E7 T$ R ^
var System = xdc.useModule('xdc.runtime.System');6 Y. V9 }* C: ^) b1 k! I) Z; a& y
System.SupportProxy = SysMin;
! c1 x+ s% @$ _* ]* a- \- w3 L V7 B: {
/* configure SysBios to use the lower half of Timer 1 */& X( K. ]# n; z5 o4 m
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');% U0 k" Y% W* n6 Z7 j
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
5 n: h$ _: z2 w1 MTimer.timerSettings[1].master = true;
- l, e2 F3 N' BTimer.defaultHalf = Timer.Half_LOWER;
7 E3 t { Q& T: p# r. X5 YClock.timerId = 1;: |, o% m7 k7 F8 }$ J( k
- e2 l# i& c, O+ Y5 B9 m2 e8 c$ w* J( Y& o& S/ O5 o
/*; l7 j- A: Y3 V% x+ a( D0 T9 f
* ======== Miscellaneous Configuration ========+ D% m% B1 O9 |) Z
*/3 ^/ U7 p9 x1 [* v4 Q
' B0 h3 _$ H& o/* set default diags mask */1 R+ V% Y5 u0 U- H3 L. i9 Y9 o0 V
var Diags = xdc.useModule('xdc.runtime.Diags');4 Z4 C) [$ f, V1 x8 S
var Defaults = xdc.useModule('xdc.runtime.Defaults');$ I9 F6 E' e8 h9 l' [. Q" Y
; t# y, k9 e* i: U7 {4 p' f% Q
Defaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
1 ]. }# l4 Z* u! MDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;" A2 `$ d( K/ M9 @. F
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;; [' Q( V/ F; c+ K; m& k
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
( n: ~) {" i; x2 q5 ~: Z: jDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
& c, s+ p# ^4 l0 {- hDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
. @; w* | F {) X9 C% L" l! V: MDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;3 a3 Z" X" g2 N% G1 x
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;4 z5 Y a; `7 [; C- t# J9 K" C
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;' R" @: m1 q% ~ x6 B `! F
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
0 @' B1 H( d* D( l" O0 ZDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;* Y5 q1 I2 {* q" y
Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;1 Z4 f0 ?6 ~5 y: q5 m
Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
4 a; @, J3 a4 J" o& j- r% KDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;
c. e- J: d9 {9 g+ R6 r" K8 ^! |
/* override diags mask for selected modules */
% o9 R4 V( N- Q+ p. Nxdc.useModule('xdc.runtime.Main');3 |4 H) c; z* [% L# S0 a
Diags.setMaskMeta(5 l ?, l' w; Y8 l9 C
"xdc.runtime.Main",
- Q7 ?! ~& I' k6 ~ Diags.ENTRY | Diags.EXIT | Diags.INFO,
r! C- Y+ Y- y; Z p3 B Diags.RUNTIME_ON: o+ c, h+ D7 P
);0 V3 z) i7 C# w h0 m
4 `0 X6 m L2 `% S! ]5 Mvar Registry = xdc.useModule('xdc.runtime.Registry');$ ~1 J5 c3 B, K; P1 f
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;( R; `. E. k8 ^- L6 C
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
; \- O* j% C4 s! v, ^Registry.common$.diags_INFO = Diags.RUNTIME_OFF;
$ t+ Z1 C: T* r- t% s) qRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;' a+ l1 n4 R. }5 _
( V9 h8 Z7 B% A( j' F+ A6 X
/* create a logger instance */
: x( R0 S6 J- g& v! Q7 L6 X4 p' nvar LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
! L0 }: H8 B: T7 Y3 dvar loggerBufP = new LoggerBuf.Params();
4 d7 w: A: @ h* M! wloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */: \1 D) E: M1 V1 N
loggerBufP.bufType = LoggerBuf.BufType_FIXED;
% V$ O7 y) H# f1 w5 \! Y1 q# P7 x2 A" _* L" }, ?& i
var appLogger = LoggerBuf.create(loggerBufP);
+ w6 X7 ], c/ S, qappLogger.instance.name = "AppLog_Core1";( C+ L# I' Z Q
Defaults.common$.logger = appLogger;: ]- E8 r: O) C
Memory.defaultHeapSize = 0x8192;
8 B0 h' Y3 K( i3 W7 L6 WIdle.idleFxns[0] = "&LEDStatus";3 \2 c0 c2 Y8 ^. ]( G! D
Cache.initSize.l2Size = Cache.L2Size_32K; G1 q: Y* D) B( j
. d0 S# ^5 U. d% G |
|