嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
7 x# {" I3 c+ U6 W9 |+ s& d$ _
DONE:
, a) U' @: M# D1 ^
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
3 b) M# r3 a7 Q; ~4 S1 A. S
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
* C, y0 o: S: A7 G* I
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
$ J$ I& J. [. ~: m& h
/ o2 B& X( k3 `2 g7 C1 P$ `4 L
; R# ?' A5 q% T/ e
3 X1 E# V( A/ c+ f- t
MOV32 regVal, 0x0B
* A' S) n) _, ]7 J
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
# _! E0 f& @) |8 x8 r
* B( t; s, k2 m$ Y. g$ E
// Clear the status of the interrupt
" C' S& |( X0 n% _9 A
LDI regVal.w2, 0x0000
$ w/ x" g3 u: g3 v
LDI regVal.w0, SYS_EVT
1 E! y3 f7 Y% f% T9 @- h: ^- h
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
* R7 D. ~$ Z. o9 e; U5 V: p
" Q8 \4 T* L4 C: L
CALL DELAY_500MS
- M3 a9 f5 p7 H5 u" d3 {- I# M
JMP DONE
! ^3 X# a7 ?* M
( N4 ?) U2 `! K0 i
HALT
. ~0 O" V+ @6 |0 P4 X
5 ?) Q, w- U6 l$ M* q
下面的图是改的
0xC0000004地址数据状况?
5 f( A; ]' E& F' n
[attach]2127[/attach]
6 |& C! U, D1 c& C
( { E4 D) X8 x, D
8 H5 B" i, p, J8 r2 ^' X3 o
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
- U6 Q: I5 `. E
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
$ h6 V u4 O$ D$ K1 `
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4