|
|
沙发

楼主 |
发表于 2015-9-4 10:29:21
|
只看该作者
补充说明
! i7 L& Z, `0 g& _% F6 L6 w8 F我大约calloc 每次共计大小为5K*16bits,怀疑哪里需要配置一下0 {. E% M; X) Z$ h
(不过疑惑的是,为何单独DSP仿真就没有问题呢?)
8 g$ h# M: ?2 k3 _3 y! b$ o {$ n, T4 [
是不是需要在DSP.CFG中进行配置/ x# s- W& `3 d
我现在的配置为
0 \- O! a0 Y4 a5 L
0 K s4 K5 s5 P6 N7 H8 k; ?/*( E7 ` K9 g& c, f1 k; M
* ======== Operating System Configuration ========
7 q# P T* h, M* r( d8 M */
7 h) A% [) M& ]* H7 S8 K$ \3 `2 b4 k" ]: Q# j" v+ b w
/* no rts heap */& M' \$ d) k% K& [! M3 B" d- S; Y
Program.heap = 0;& a0 K# l/ l# V* K$ ^) t8 }# ]
Program.argSize = 100; /* minimum size */
- {1 V9 T: q( f; u- KProgram.stack = 0xF000; //此处修改后的值。不太懂,所以改大; p( `( C7 X8 A" F' w
- T! R0 p }/ T7 y( \" ^( D2 X/* create a default heap */, e9 A. m$ b `: ]( f. d/ B
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');8 x. V' n+ ^( X* Q% e
var heapMemParams = new HeapMem.Params();
6 T- X9 u- R8 U1 r. F# t/ v1 TheapMemParams.size = 0xFf00; //此处修改后的值。不太懂,所以改大7 a* N9 x7 l& v* P) K- e
1 `3 x# q8 w1 \! W! f) ?* ?var Memory = xdc.useModule('xdc.runtime.Memory');8 Q" A3 L. s; d- \$ K7 Y
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
# d/ F" ?; V. P2 M% S5 ^
- `6 Q* r7 X& ~7 I, y. F/* configure System module */: b7 D( o# p, c' R" A4 ~4 W
var SysMin = xdc.useModule('xdc.runtime.SysMin');* v. [) k5 j. O% [2 ]% B7 s3 P
SysMin.bufSize = 0x1000;5 |5 |, ^. L9 H
SysMin.flushAtExit = false;
6 ?& y4 X# r) ?: `
! X+ B! S0 y) T8 zvar System = xdc.useModule('xdc.runtime.System');
& h, `5 k: D8 j' u u5 ?System.SupportProxy = SysMin;
, q$ c4 Q; c. V w, z( `
, L# I: M% _1 j7 L/ E/ P) B. i/* configure SysBios to use the lower half of Timer 1 */& H9 G) y" W b; A
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');6 ~1 u0 ~' x5 k: R- ^! l6 a* ~! t* o
var Clock = xdc.useModule('ti.sysbios.knl.Clock');5 X2 B$ H. x- q# Q& {
Timer.timerSettings[1].master = true;$ i2 R% Z+ l6 P, y
Timer.defaultHalf = Timer.Half_LOWER;
/ c' T9 @) s, k: `Clock.timerId = 1;
$ O' ~- q7 Z- [# y! P8 b
1 w, n) ]( K% v# ?- J' r- n3 V/ F+ d( z& d- o( J# Z
/*; A# P& c& k) {
* ======== Miscellaneous Configuration ========) H* I/ w$ w- I7 [1 T9 v2 S
*/
8 b; V" ^2 j" l7 T6 X9 v' J3 K; W5 e6 N) Q" p) T
/* set default diags mask */1 ?5 `# ~. \$ B
var Diags = xdc.useModule('xdc.runtime.Diags');
6 k/ N3 p4 I; v1 d# Z4 J& I5 B! D: i, uvar Defaults = xdc.useModule('xdc.runtime.Defaults');# f, D Q1 |7 R# M
z, j9 Z3 Y# U2 L- Y& _' C" w6 DDefaults.common$.diags_ENTRY = Diags.ALWAYS_OFF;: ~! C6 Z1 |' V; U' C
Defaults.common$.diags_EXIT = Diags.ALWAYS_OFF;: s$ b4 _' r2 s# t
Defaults.common$.diags_LIFECYCLE = Diags.ALWAYS_OFF;
3 ~, z5 X: s' b6 s- PDefaults.common$.diags_INTERNAL = Diags.ALWAYS_OFF; /* needed for asserts */
* z' t) C# q: m8 W ZDefaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; /* development only */
2 D4 ?$ G! B H" \+ q# TDefaults.common$.diags_STATUS = Diags.RUNTIME_ON;! [8 }9 b, D, a; `6 r: W8 z) t: [0 Y
Defaults.common$.diags_USER1 = Diags.ALWAYS_OFF;8 _: q1 i/ U7 B2 _2 }
Defaults.common$.diags_USER2 = Diags.ALWAYS_OFF;4 H- B6 T( o( ?, C$ z% k4 [- d
Defaults.common$.diags_USER3 = Diags.ALWAYS_OFF;1 ]6 w9 s1 l# Y# z( `* N( x
Defaults.common$.diags_USER4 = Diags.ALWAYS_OFF;
) |9 L0 P8 K% I* VDefaults.common$.diags_USER5 = Diags.ALWAYS_OFF;
$ G; x9 Q0 d9 H8 n. F [% L- y7 _# \Defaults.common$.diags_USER6 = Diags.ALWAYS_OFF;
1 E" |0 S6 L0 q) S8 f2 |4 B% i' D; RDefaults.common$.diags_INFO = Diags.ALWAYS_OFF;0 L% B3 |9 } K: C. S% P- I/ p
Defaults.common$.diags_ANALYSIS = Diags.ALWAYS_OFF;: {% q# i. j( g! m7 Y
, @' g0 F0 K+ G) s( H) y
/* override diags mask for selected modules */
- ~& H. Y) i+ [! t. mxdc.useModule('xdc.runtime.Main');
: z% X3 F% G/ |! vDiags.setMaskMeta(
6 Y \ u* l1 |: d "xdc.runtime.Main",4 Z& ^/ M$ A% ? s" g; t' w2 t# l* |
Diags.ENTRY | Diags.EXIT | Diags.INFO,
' e) a$ G$ T A8 g* X$ G Diags.RUNTIME_ON
' [$ f. Q$ r( a' s! N4 s# z3 j3 O);$ w# N, y3 N) e* K8 a. c; O$ d3 \
' W" X; d' _+ X
var Registry = xdc.useModule('xdc.runtime.Registry');- r/ M( M$ X0 E- q
Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;8 r2 N9 I# k* k
Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;, u6 q8 M2 C/ l4 A' a" P8 m l
Registry.common$.diags_INFO = Diags.RUNTIME_OFF;4 M( I* {4 b1 z4 p- I, L" Z
Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;
' q4 |* F8 k, S. [2 i2 `6 w% H$ O' J& c# M" C5 s/ k
/* create a logger instance */: c+ k) U) c9 x% b
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');8 _/ k; l/ o1 W& ^, j
var loggerBufP = new LoggerBuf.Params();1 V' R- W* M z, o5 \, H
loggerBufP.numEntries = 128; /* 128 entries = 4 KB of memory */2 ?9 _3 s6 m" J. [% C
loggerBufP.bufType = LoggerBuf.BufType_FIXED;7 j4 B. d& C& d
* V6 ^4 {. w1 Gvar appLogger = LoggerBuf.create(loggerBufP);/ g5 c# H7 D4 s8 x0 n2 _) z
appLogger.instance.name = "AppLog_Core1";& {: N7 I# H+ V [+ f+ H
Defaults.common$.logger = appLogger;! f) R* a; L( B
Memory.defaultHeapSize = 0x8192;
# M" m4 W+ L+ v* ^' a1 WIdle.idleFxns[0] = "&LEDStatus";3 w a/ K7 O2 N0 S! t
Cache.initSize.l2Size = Cache.L2Size_32K;
8 n0 ^8 t; h1 M7 e+ N2 |( n" |2 z+ B: m
|
|