嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
7 {* ?& a7 V7 N& q
DONE:
8 h2 O# M. k% g5 r- U
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
- }) }% S5 Q$ S
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
9 s0 k, [9 X. a0 }
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
) z& e7 g) {. L5 r
' h, Z2 j% d1 b4 I
) s q, t% Y6 e" [% x% _- B, `7 t
5 l! D( P6 ?% [, L. x9 K, Z
MOV32 regVal, 0x0B
) v. P' V, t! Q! N# ^* D3 K* M
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
' Q4 R8 b, x7 Q0 j% ~1 S7 D, E
3 A' }+ X; k9 c
// Clear the status of the interrupt
0 K, ~+ Y3 W( m
LDI regVal.w2, 0x0000
5 ^. V6 M1 h* v
LDI regVal.w0, SYS_EVT
1 Q; c! E5 O3 n8 C/ Y
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
% h4 T0 P, m( C# f. T$ g
* { f5 c2 C: M* g" n" `4 V9 g
CALL DELAY_500MS
1 k+ j" j: M6 b- v3 u) k
JMP DONE
/ a, G+ K: M) L3 Q
' X0 _9 J0 ^" } t9 X7 E& N# E9 i" s
HALT
& \# Z/ z" z# x* m3 i
: x6 C/ i% O9 y" I2 P
下面的图是改的
0xC0000004地址数据状况?
- `+ c2 H4 s" P
[attach]2127[/attach]
8 I. b$ g. N! F; T7 H
' T; {2 I" S' X, a' i1 j
& N- [+ S6 V' {; W
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
% g: j. a( G$ f
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
% P* k: ^% u/ k2 i
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4