嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
' R; t1 z% F& x4 y7 x
DONE:
7 C/ G4 I; r5 c/ d8 q
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
- j7 f# J Q' [: z7 ~9 D( Z
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
2 m% u9 u R' p6 Z" x! y m
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
% G0 N/ }6 x5 W
% `( Y2 N j+ S# \# [- k" C# a$ f
1 p* K. ?0 N; e; P$ P
( X# [: Y2 G) z" J
MOV32 regVal, 0x0B
5 y4 c' O. V0 u M$ a. |
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
- l0 O3 B; g: [- F% [( y0 L+ K% A
: p, m' M& V6 \5 ~; i# F
// Clear the status of the interrupt
! F1 p; U1 G/ c% ~/ _( n+ o
LDI regVal.w2, 0x0000
) O* y1 Y. ~7 U6 Q1 A$ u) g: T; v+ S
LDI regVal.w0, SYS_EVT
, ?% o& n( l( b6 O. h9 E5 b( {
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
6 |8 J( j4 }7 G9 S% b
H6 H5 c. @$ R3 c$ V/ ^7 M
CALL DELAY_500MS
* V* g! u6 L+ s* G. H
JMP DONE
7 F5 H$ w' [+ c. y" B1 F
: y! _1 p9 y: X& E3 H/ |
HALT
3 Z5 k2 Y; X, n5 U' r0 B% O
, U6 d6 _3 @: l% l
下面的图是改的
0xC0000004地址数据状况?
: ]4 ?8 A" D7 A. Q: M- x5 A% Y1 q) H
[attach]2127[/attach]
* y0 P' m6 E/ H
; p' E+ g6 _$ c/ `
1 e9 u! c! C" C8 m3 ]% f
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
% p& z) ~6 j7 z5 R: H
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
! X9 c: t8 S. a+ f; x& O
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4