|
[color=inherit !important] 我们这边用的你们的开发板,测试双核功能,目前遇到的问题是:& W: [. E" v* z( K0 W
[color=inherit !important]1.ARM端Linux 系统正常进入到文件系统中+ }, G/ f* {1 B
[color=inherit !important]* u; D }5 O, E' D5 b5 r
7 j* l; [* r' \. M$ r! x[color=inherit !important]2.DSP端运行基于sysbios的工程,在工程中通过如下设置定时器2
( v6 S, Z" M- f3 \; A: }[color=inherit !important]
( ]% K. H2 G' Z/ L
8 p: i" c" O1 Q( OtimerParams.period = 500;
3 h+ u( x% R! [: KtimerParams.periodType = Timer_PeriodType_MICROSECS;
7 j; C+ X! y7 g% bTimer_create(2, Timer2Proc, &timerParams, &eb);
+ t8 D- \# l4 a$ P/ |4 z: k$ T* ]/ j* M0 R7 _
1 D9 _: t" v, m" t
3.然后在定时器Timer2Proc()中断函数中进行翻转GPIO的操作,然后用示波器去看GPIO的波形,发现产生的波形周期为960us(正常应该是1000us);: ?7 P$ I& N: D; B
产生了定时器定时周期和我预设的周期值不一样。附件是我dsp.cfg文件(只能上传一部分)。请教一下这个问题是什么原因导致的,如何解决,谢谢。6 k9 [, S' m6 I1 A
# B: l/ t/ F. @6 c9 O$ s$ w1 W5 B: s
5 R% x7 j4 S5 l
/*
. Q; ^8 p/ s1 j * ======== Dsp.cfg ========2 }! w5 E( _0 o9 s6 X; ^
*9 n( b- g$ ~1 g" W
*/" [0 _, N# S; c4 R
& c* ^+ y) n. b2 i' k* c, e* A
0 K( h% G# _: }! x7 E, Q/* root of the configuration object model */9 }, H! s' J8 c1 g* i# F7 }- Z
var Program = xdc.useModule('xdc.cfg.Program');" f6 j0 r( ^0 B
" F/ _/ `" }5 k' d; A m6 I
9 L" i0 ?9 P W3 E4 @1 u" V/* application uses the following modules and packages */
( O i9 ~9 p5 R* z4 m4 Ixdc.useModule('xdc.runtime.Assert');
( i! S# L, F' } j- `xdc.useModule('xdc.runtime.Diags');
% h$ I4 G3 c; E% x; N( A" Vxdc.useModule('xdc.runtime.Error');
8 X6 N& j3 T% d3 lxdc.useModule('xdc.runtime.Log');
; t; C$ H" b1 Fxdc.useModule('xdc.runtime.Registry');
9 a4 |& T; X. B# a
: ~2 @5 J v# k/ a/ ~) T3 u& d- Q! J/ z! h* ?" S
xdc.useModule('ti.sysbios.gates.GateHwi');2 a7 S. ~8 r k2 u$ Q4 w
xdc.useModule('ti.sysbios.knl.Semaphore');$ F( v& O0 L0 J
xdc.useModule('ti.sysbios.knl.Task'); S7 A0 t. |' ~
/ b/ K# w Z& K& ]6 R2 {& g+ y+ D9 c# r, S& r8 k; n3 `6 j
) p/ h i* ~2 B/ Q( D2 B& \7 O9 U
1 I5 M; @! s0 ]1 r- i& T7 l4 _6 D
; I0 X; o8 R, H! S0 f! U* t) Z7 G! B' s+ i
9 R% Z4 w. I& b5 b1 R" g
var BIOS = xdc.useModule('ti.sysbios.BIOS');
+ h8 q. y4 F( l- wBIOS.libType = BIOS.LibType_NonInstrumented;1 J5 ]8 H9 c7 u$ e
- |2 k) ]' ?3 Y1 N- A" I c
* h0 R+ S$ N' r7 ?& @. x8 R4 ?
5 X# ?3 U8 X Z& N3 Qxdc.useModule('ti.syslink.ipc.rtos.Syslink');9 N; g C9 n7 m; b
! t9 u* S( X0 G5 `. k" C
+ `6 [9 S& [5 s% e: M) k* n$ G1 L! M3 R0 O+ O( H s7 F6 m7 H
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
9 f* t9 A+ L% ]! w3 {var procNameAry = MultiProc.getDeviceProcNames();
9 H2 f, F% H# O* b- L$ t# VMultiProc.setConfig("DSP", procNameAry);
( e) L9 s$ m0 e$ `: n! F/ O6 u9 _: E7 f/ v6 _5 m7 c+ w9 b
& w% b$ f/ l7 E
$ c4 l0 F3 n/ J+ U I% Vvar Ipc = xdc.useModule('ti.sdo.ipc.Ipc');0 ^2 o- A# f0 r( v2 `! M
& h, x9 h* H* x8 g5 O" I( \/ [! B
/ C- z/ ~) H4 ^) n9 C0 r4 O6 ?+ H: O
Ipc.sr0MemorySetup = false;; p1 [. O6 H2 U! ?9 M
. ~+ o" x. n) D" u
. A: ?1 X* ^" E V! ^) y8 Z5 l$ l
' G; c, Y: J/ t+ t O _, e, z( B' OIpc.procSync = Ipc.ProcSync_PAIR;9 O9 [7 K4 {0 {; L( r( q N% `
+ q$ j1 R6 B/ U8 Y* q. N
& }: t8 I" L0 [6 I5 p# I' u/* define host processor *// M8 s& x# j ]2 u2 k- T
Ipc.hostProcId = MultiProc.getIdMeta("HOST");
7 @1 m6 p, p6 [7 t$ G/ }2 Q7 W& h! F" U
! l1 {9 z! U9 P
/* shared region configuration */4 x! e8 }. w$ m& ~: j, C
var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');; _8 n1 G+ L; o9 K9 @
5 t, K7 a; V/ E% a: m
* G2 \8 h! _! _' V
/* configure SharedRegion #0 (IPC) */# Q6 n$ I4 D9 y7 p" U ^
var SR0Mem = Program.cpu.memoryMap["SR_0"];9 c3 m) r! S0 y8 l- F
. c7 F7 G; w& `4 i. X! e6 o' g
( O& k" r- n; }) U1 Q; j+ p
SharedRegion.setEntryMeta(0,
4 S& v% U+ k# g0 H new SharedRegion.Entry({3 D3 O) q3 ~0 h5 L5 N, m
name: "SR0",4 a- ?4 _8 N6 c0 s$ p: G I
base: SR0Mem.base, B0 _9 y: ?4 m1 `
len: SR0Mem.len,
4 {& Z: g' X+ G+ I ownerProcId: MultiProc.getIdMeta("HOST"),
# n1 s; D9 S( h* X2 t$ X7 U cacheEnable: false,. Z' y" z# f% F6 g
isValid: true
# H7 w3 ^. B: b3 I* o }); E: [& M1 ^' D. i. K& V
);
! |. N$ t; w; \( ~/ J% K( Z4 v* k
9 M3 h6 M. P2 ` n6 T5 _8 ^ T, s5 d* e1 S. F8 J# H
) P; j9 e& x, @7 `$ M0 T- a1 F
* u! b% b) u/ B4 u; S7 `: ?! }* _: J' j& G6 t1 A* b
Cache = xdc.useModule('ti.sysbios.family.c64p.Cache');* ]! \4 ]' E6 a4 n$ \; R" E& T7 U
Cache.MAR192_223 = 0x00000008; /* xxxx xxxx xxxx xxxx xxxx xxxx xxxx 10xx */( N- t3 k$ R! q* P* q0 G
, ]! m( g3 i- ^; }* w5 t; x( v2 `3 v! t4 M
1 T- G( W. R C6 i7 {5 ^3 q, F8 P
, A" x. L8 a8 I1 R' a* N* j w/*, d2 f/ |# x' ?: U
* ======== Operating System Configuration ========& v7 K3 q/ g5 z2 N. V
*/ h' z9 o# Q) P/ J* P( r1 o3 \
S& a7 Y: i9 J9 o# F& o
2 Y9 p m. |5 g/* no rts heap */
) X3 G: P7 b# z6 }$ OProgram.heap = 0;: T: f" t [; @% n- i6 t
Program.argSize = 100; /* minimum size */" z5 j5 }- N- Y$ F
Program.stack = 0x1000;, [0 F$ S S, z
/ K1 T7 l9 N# i" M2 |7 A5 r+ r8 v! R$ G
/* create a default heap */
2 k& O; K: }: w$ G& Y1 R$ V% G; Vvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');1 c4 B D% D$ V4 @3 r
var heapMemParams = new HeapMem.Params();" o5 H: Q3 G! j- m$ B& F1 p" b# a( R) H! ]
heapMemParams.size = 0x4000;
! ^8 ], y4 Y6 t8 y* U. a; E
5 |+ Y. e' @. } a0 R6 D; f. j
var Memory = xdc.useModule('xdc.runtime.Memory');& m8 ?5 ?9 E: @0 U* {6 ]8 S
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);
' c2 |/ Z& i/ C8 D
3 g) y+ o- D( _6 Q5 Q5 z
( H$ d- o4 \" v! u m/* configure System module */4 V; L% ?5 w& j1 O9 `+ ^
var SysMin = xdc.useModule('xdc.runtime.SysMin');& ^- {! v! q6 o `5 M/ f4 J! o
SysMin.bufSize = 0x1000;3 b [4 X( B' i6 L
SysMin.flushAtExit = false;
! E; q, }: n3 z: X
& h5 \% m# `2 A3 }( I
r/ ^5 Q5 g; a! ` x7 c; m' svar System = xdc.useModule('xdc.runtime.System');
/ ]. m, e" W, k4 R1 ~System.SupportProxy = SysMin;9 R' i8 A# k+ g* ~
. l7 z+ G$ w; L W$ e8 J
# D# q% h( f8 C! `) ~: {% g
/* configure SysBios to use the lower half of Timer 1 */+ J0 V5 T6 d# R
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');5 m( J/ F& C7 q. D# M" Q
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
B' k+ w% [7 V6 S" n8 ]Timer.timerSettings[1].master = true;4 ^8 |: r) a, t# k
Timer.defaultHalf = Timer.Half_LOWER;3 }" L: S r; P9 ?9 D+ w' V
Clock.timerId = 1;/ C8 h, b1 M4 k) A' ^. u4 v; P
$ x- ]1 E% G$ V" k
2 ?, b) d3 m7 }: Z2 u* r* E
8 ~$ T* _ A @6 I1 ^( m% w& I1 `- J+ x2 {% i; f
|
|