|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明8 u1 G. A) t% _7 o1 O1 W) ~
我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下
' E( v& J! o& H2 R4 O' g% K(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
" F S& ?, T. m/ g% \1 Z4 K* m. e* ]2 J) A6 V
是不是需要在DSP.CFG中进行配置, c, y: N; b: i+ u* V
我现在的配置为
1 }3 m) b! x9 I/ P# b% ~2 Y5 |& U2 x9 t4 S% ?
/*
% }4 x3 y5 `1 a9 a( Z% q * ======== Operating System Configuration ========" f' C4 E9 r5 a0 K' U
*/
P5 G+ b! F/ ^3 j9 }6 w* f9 z X
/* no rts heap */* P2 d7 |& A& F2 n5 x/ ?. P' p
Program.heap = 0;9 |, p4 V4 B7 L& U- x5 J/ j2 x7 {
Program.argSize = 100; /* minimum size */
; T& H5 x6 ?+ E# b6 zProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大
4 R% _3 [$ d1 z8 p. |
6 s, A2 F) Y K+ a8 u/* create a default heap */2 Q# C9 f5 ]5 F! F! X6 V% b
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');2 ~ z% a: G1 ^7 c3 X! n( U& S
var heapMemParams = new HeapMem.Params();
}) q$ B" j, D+ c {7 `heapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大
) o! H8 C* Z6 o( z6 M+ Y6 R |2 T$ d4 U
var Memory = xdc.useModule('xdc.runtime.Memory');* P0 h0 L" _# m0 O/ y
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);$ Y# h' T. T5 F) M- v& t0 q% b5 E
% S/ J9 t- {* Z( E0 N7 {
/* configure System module */
, z+ d0 V& e3 s; D. J+ lvar SysMin = xdc.useModule('xdc.runtime.SysMin');
- N$ o7 y7 A w7 LSysMin.bufSize = 0x1000;
1 h3 u/ V i( R4 H8 e% mSysMin.flushAtExit = false;. T$ t9 r7 ?8 c! ^
4 ]$ B' L) G2 hvar System = xdc.useModule('xdc.runtime.System');
; ~* v, U0 `4 @$ k) C' TSystem.SupportProxy = SysMin; v1 ~; T4 R, K8 N
' j& N5 t7 A) X6 D" q7 u/* configure SysBios to use the lower half of Timer 1 */; S( Q Z0 M8 d) q. ]
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');6 f; s$ q7 T9 P# A6 U. R5 f" c" ~- i
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
! Q: c& n8 s4 d2 C- vTimer.timerSettings[1].master = true;
7 ?* `7 Y0 y3 e7 U- ^Timer.defaultHalf = Timer.Half_LOWER;# m0 o& N4 N) I% N1 L4 I
Clock.timerId = 1;
! I1 d3 C: r$ b
6 @: D. I- J8 Z8 n
0 l1 r( m( y4 k1 o, h- [/*$ U' B' \7 |* _2 u4 n
* ======== Miscellaneous Configuration ========) j9 c+ k. X! o$ F+ @0 o& t
*/
- V& z+ p. z! w- z% ^4 Z4 K, q0 [: E
/* set default diags mask */
2 W: j( B! ~) \' ?9 C4 S/ B3 Y8 nvar Diags = xdc.useModule('xdc.runtime.Diags');
2 F. S- c" K8 a" f% r% p" pvar Defaults = xdc.useModule('xdc.runtime.Defaults');- u2 M) H8 E% h7 C! Q
9 Z! N0 A+ Q5 l0 [5 _9 {" e0 j/ FDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;
" }$ x+ z+ P: d9 |9 q0 h0 MDefaults.common$.diags_EXIT = Diags.ALWAYS_OFF;; t$ o A% o# u$ [" l
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;4 X0 ]; K4 L5 a7 B1 w
Defaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
7 D4 U/ j, @/ pDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
. Z. O; `- G. f) |7 v& j/ gDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;
& p5 B9 i+ }7 c' b" pDefaults.common$.diags_USER1 = Diags.ALWAYS_OFF;
+ l& |$ L& O8 a, e- }Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;
# H$ [) i9 \3 _) WDefaults.common$.diags_USER3 = Diags.ALWAYS_OFF;
) h0 \* s8 v6 [8 E7 R6 cDefaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
! O; R$ |" K3 R1 WDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
8 D/ i/ Y, y$ @: p9 _3 \Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
6 Y3 j1 ~# Z. e0 }Defaults.common$.diags_INFO = Diags.ALWAYS_OFF;
8 Z# f% e+ [3 a$ ^( B% n a1 b0 YDefaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;9 A/ d( G$ a0 ?1 R2 \
5 G# |* y7 J4 S
/* override diags mask for selected modules */+ n. f2 H( N' W6 F
xdc.useModule('xdc.runtime.Main');
8 ^9 `9 x) {; L7 {2 J& zDiags.setMaskMeta(4 {0 J" [9 d: O* \0 j- U" G* E
"xdc.runtime.Main",5 P! y" G% y( v9 g- j0 `: `
Diags.ENTRY | Diags.EXIT | Diags.INFO,
- u5 ?6 L6 E' l3 [9 ]! S" F5 j Diags.RUNTIME_ON; G0 _& A; U) h8 H8 a0 ]3 f
);
0 i$ v8 G& B' _) z4 [1 p7 S: [7 _5 F& K( T0 q" y
var Registry = xdc.useModule('xdc.runtime.Registry');, n6 r4 @4 o2 N( G
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF; P) S2 v3 {" H- m0 T- v6 {/ W* X
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;
3 {6 s' I- ^/ P% r( y* J7 u/ ARegistry.common$.diags_INFO = Diags.RUNTIME_OFF;
6 F; G! a9 Z- N4 C O) Y& HRegistry.common$.diags_USER1 = Diags.RUNTIME_OFF;4 C& E2 ~: o. Z3 f% ^
- a/ t4 |) d% t& h; d( J
/* create a logger instance */+ d( c d7 J' |& v/ V! C
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
o9 @3 J9 N7 T. k6 L1 S+ fvar loggerBufP = new LoggerBuf.Params();
. @ e* q& n A. F( H) t" k; gloggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */
: z/ n! t8 S) z4 U. KloggerBufP.bufType = LoggerBuf.BufType_FIXED;7 W) Q5 A- u5 l0 Y' r/ r" h$ ^
; o( p* m7 l; H$ A1 o: E0 u' Gvar appLogger = LoggerBuf.create(loggerBufP);+ a5 t( ^& T! F( u
appLogger.instance.name = "AppLog_Core1";1 D7 Q1 k( V6 \# ]9 ] |
Defaults.common$.logger = appLogger;& Q5 C0 c9 U* ~! S8 A( \- b6 w
Memory.defaultHeapSize = 0x8192; / [0 |+ J6 I5 R% _8 S) J6 H# |
Idle.idleFxns[0] = "&LEDStatus";
+ |$ U, g9 G- e, p- \+ I9 RCache.initSize.l2Size = Cache.L2Size_32K;# J: ]; S; Q. ]
* x) U) K2 \9 B
|
|