|
|
[color=inherit !important] 我们这边用的你们的开发板,测试双核功能,目前遇到的问题是:
+ g% ]/ A1 O( _9 W# q) }[color=inherit !important]1.ARM端Linux 系统正常进入到文件系统中
: P6 K! V$ z: u3 {7 |% r[color=inherit !important]
" H0 |. v6 s5 R; \8 z# r) _. B4 }* [
[color=inherit !important]2.DSP端运行基于sysbios的工程,在工程中通过如下设置定时器2
X6 w1 b" _; e% t% O[color=inherit !important]
6 f" F; l1 m; o% r& J L# t; L/ Z! y- L- z4 u, _
timerParams.period = 500;
+ h2 k0 ]+ A8 Y8 _6 _timerParams.periodType = Timer_PeriodType_MICROSECS;( u( B" \5 Z: D/ b9 _
Timer_create(2, Timer2Proc, &timerParams, &eb);5 E9 C0 l2 E; N# T4 T
+ k V) n; f7 U* f
& S+ ?5 R; d0 l3.然后在定时器Timer2Proc()中断函数中进行翻转GPIO的操作,然后用示波器去看GPIO的波形,发现产生的波形周期为960us(正常应该是1000us);* p+ {! K0 h0 v, S
产生了定时器定时周期和我预设的周期值不一样。附件是我dsp.cfg文件(只能上传一部分)。请教一下这个问题是什么原因导致的,如何解决,谢谢。
1 K( g1 Y& N3 c' F) {, _* D/ }. Q! v% k7 x$ R) L% C
: U3 e/ |6 b0 _$ Q8 X9 n3 Z }
; H. z" ?3 x/ `0 O6 [' r. I8 O; N/*1 I) ^. e1 @- Z0 j1 [( _
* ======== Dsp.cfg ========
' p4 r1 `$ W( e; z. a- R& t *" n9 p* b, J; K2 k7 T- _
*/) I' l$ h" e$ |2 k3 [; D6 A- t
7 p5 X0 m5 s4 a! k& }1 W7 n" I# r2 |/ j. h! j ^
/* root of the configuration object model */
3 e$ D$ p8 e; z- K( |var Program = xdc.useModule('xdc.cfg.Program');
8 s, @' Q/ n7 r8 R. E1 X
/ `! e. O$ G/ ?
( {% w2 v& P$ B1 M8 d/* application uses the following modules and packages */
, v1 f3 j. v( A. Axdc.useModule('xdc.runtime.Assert');
8 j* f; g) F. S8 b1 V3 ?+ F9 ?1 T4 qxdc.useModule('xdc.runtime.Diags');
8 a0 f& O+ a2 _1 Z' a9 Axdc.useModule('xdc.runtime.Error');7 a5 h& s& O ~5 F: I
xdc.useModule('xdc.runtime.Log');
" X0 ], ]. ]6 p7 a. z3 sxdc.useModule('xdc.runtime.Registry');! v, |0 p; n* Z, T1 d& r
/ B( `& `9 ^6 ]! T3 w2 p
# U- \# y0 U" c
xdc.useModule('ti.sysbios.gates.GateHwi');- v7 J1 ], {7 [, n7 \
xdc.useModule('ti.sysbios.knl.Semaphore');
8 j) ?6 a) X! a4 d. gxdc.useModule('ti.sysbios.knl.Task');& \2 b# o$ i8 ^7 A- Z$ n% N# ^
6 Q4 y! Q9 E. s% }
" Z- `4 p. K$ x9 U6 \1 U' h: ]6 ]
* ?/ _+ h1 c: p7 A$ X2 f) {# m' i0 f/ ~
) v1 g7 q O. P" f; `6 M0 U
. q- {! A3 B$ h6 |( E, w) z! Z3 O% y( e' O
var BIOS = xdc.useModule('ti.sysbios.BIOS');
$ A ^" Z& a1 n6 o4 CBIOS.libType = BIOS.LibType_NonInstrumented;
4 P! h7 K( R5 Q1 e F @! y. ]. m$ i. [+ `
' a) A0 h! C6 C' e1 q# H
) F; W$ W5 p- C4 Y
xdc.useModule('ti.syslink.ipc.rtos.Syslink');; N* m C4 w+ w4 o ?1 l& [8 u
- R$ q3 Z7 T" Q) B% k5 d
9 A# B) b/ L* _
% g: Y: ]0 ~2 ^8 R1 Y3 w) S4 uvar MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
# M% V& m4 r5 f# w: mvar procNameAry = MultiProc.getDeviceProcNames();
4 M' @+ r& R7 E% O3 BMultiProc.setConfig("DSP", procNameAry);
: M: W5 h7 s D) w0 }- A
" M, D3 E `0 d6 [' e+ C9 G. P6 ]* q: b
7 S& B( U$ D5 @% o8 k9 C6 I
var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
' T/ `0 Y( |1 v9 z! a' f- U8 `9 x- j' o1 h$ V/ q/ T: y
7 T3 d+ f7 O: k& \
9 q _3 b4 J6 B/ M5 O) g+ }+ ^5 T
Ipc.sr0MemorySetup = false;
" n: k' b8 y& F/ c
! N8 B) } d) M8 k% r
6 M2 \0 s! A. f% W5 L7 T0 q9 y
( Y s$ B! E' r; U1 |3 {Ipc.procSync = Ipc.ProcSync_PAIR;
! U' ~) j% k: E: _( ~* P1 L/ X0 |6 t" y$ u% U$ Q+ O
/ Q' L5 O4 ]6 o& B
/* define host processor */1 B" ^ F* C5 L3 Y& O( v
Ipc.hostProcId = MultiProc.getIdMeta("HOST");
$ j6 w) R1 m4 s; n; N$ |% F0 b& j' P ~
2 U/ T/ d" I3 p1 K0 y+ Q# ^; h" A7 ~/* shared region configuration */
0 q3 V+ H* \( v8 C, Qvar SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');. K) j- ]8 E4 }2 p$ e
/ v8 v5 [3 u( }; U7 {- V j" {5 x4 {
; G+ l5 O/ G2 R: N/* configure SharedRegion #0 (IPC) */: _- l8 J( |, a" j
var SR0Mem = Program.cpu.memoryMap["SR_0"];4 t" x* g) C. F# S4 N
# j' n! Y/ |2 g4 b- ]3 p4 l
3 t. E3 z- W, h. s) X
SharedRegion.setEntryMeta(0,
. F, G. N- [2 H new SharedRegion.Entry({9 a2 h1 _/ {* [" r3 z
name: "SR0",
( w6 d( B$ `& V+ n7 z$ | base: SR0Mem.base,+ X, o: m' f! n* { Y% b
len: SR0Mem.len,2 h7 U7 @& ?0 t) K$ X5 c- W g
ownerProcId: MultiProc.getIdMeta("HOST"),
% s% Q6 m' w8 d9 y9 u+ L cacheEnable: false,
) x3 l" d8 L4 G isValid: true
" R4 f$ _3 v$ [; q( ?: b })3 f+ w+ r3 N# w4 q" W0 B
);
4 w, X2 G% K4 z
8 f* S6 b* Y$ t% \
0 w9 t7 q: X+ Y" A- ^4 @0 N& D" z* Q6 m# l% C9 ~5 y
9 l" a: p& W- j+ R
9 A; s8 U/ ~2 n+ y
Cache = xdc.useModule('ti.sysbios.family.c64p.Cache');
! z) A/ W4 i" }: w+ B8 o7 PCache.MAR192_223 = 0x00000008; /* xxxx xxxx xxxx xxxx xxxx xxxx xxxx 10xx */0 ^, ]) [! Z1 \6 R1 V# u7 S
1 \2 j5 O' y2 N+ T) H( p" ?% @8 T2 z/ ^
3 J9 k3 B% P o" \: s
. n; y6 L+ Q/ x) a; c8 G
/*9 T* \) \9 e6 P8 e' H3 s
* ======== Operating System Configuration ========
8 z0 @2 m0 C: c8 J9 D */
' M8 L7 U/ J' w |. [. ]( q/ ] z
* i( A8 W: d4 D% g% n8 ?6 C7 L" V
7 { n, ]- z* G: f# q5 `9 K% D; M/* no rts heap */; R- |& K8 b! k
Program.heap = 0;+ ]4 h P- y/ W3 e9 l( X
Program.argSize = 100; /* minimum size */3 G4 ], \ ^9 H# ~* C3 O
Program.stack = 0x1000;& b( D* b5 H2 x: J3 C
* q- h9 t4 i# ~0 {
( R; q9 K& X& q2 N/* create a default heap */
. g6 x0 G; P6 g8 ]' h4 Avar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');+ z2 z4 v& {2 V
var heapMemParams = new HeapMem.Params();+ P$ f! A# g7 T# K+ g
heapMemParams.size = 0x4000; n8 O5 \( E8 ?8 S4 @ y& w
: R6 v7 l8 P1 V) @, @3 m2 O7 E) a
- \7 Z- \0 }7 P) V z: E9 [
var Memory = xdc.useModule('xdc.runtime.Memory');6 g4 O6 f( l; D N$ a' [
Memory.defaultHeapInstance = HeapMem.create(heapMemParams);. f! q7 z6 u% b6 A9 i0 x P
+ O, s% b, q, s' f! ?/ b
* b* r: |* Z4 r. A, ^$ M; M: M/* configure System module */
* q+ ~* @! F7 t. G! B. v+ Zvar SysMin = xdc.useModule('xdc.runtime.SysMin');
" ^4 A" J- T' xSysMin.bufSize = 0x1000;1 ]6 |0 T( f- m) P& C
SysMin.flushAtExit = false;
$ e6 ?' u3 i& S( s& Y& H7 Z( g0 d3 i7 Z2 _" z) [' O$ i* V
7 D- L% _' n5 }% i8 I% ~var System = xdc.useModule('xdc.runtime.System');
9 v3 l+ B: |0 s @8 _+ Q5 XSystem.SupportProxy = SysMin;5 C/ y# ^: q5 ^) q8 i2 f, o/ O
3 X; f$ h7 v- D# [( k( j
4 |$ e1 b& [' ^" ?& l/* configure SysBios to use the lower half of Timer 1 */
+ Q' K: {) X0 b7 C! ^4 S) svar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');. }6 ?, q2 A1 j2 m _0 |
var Clock = xdc.useModule('ti.sysbios.knl.Clock');3 Y' A; _: I" a. Q
Timer.timerSettings[1].master = true;. q8 B) s0 P* U. g
Timer.defaultHalf = Timer.Half_LOWER;* Y& X6 {+ m# ]+ Y2 ~; g
Clock.timerId = 1;; K+ d. P, o9 Y) ^
% d' K; Y/ @9 o; e; U' c- f& t
" ~& P% x1 H: r0 \5 b6 z
]* n2 d4 W0 t0 p
/ q0 d4 ^& `) `5 j1 }* d! o |
|