嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
$ E; l% [/ [0 x6 b6 I0 q' ~, `- F
DONE:
2 _! A" E3 o) s# D+ @
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
) M( Y8 @' Z6 j$ t3 d$ Z
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
9 ~ k' P) @! q- W# ^
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
% c: {6 S: t8 U% ^6 z1 |
" d* H/ M7 u! Q# Z- z% `& ~1 X
- [+ P% ?; M& P0 \& N* t) V8 r, _
: T6 S. _. J F; z' t& E( Q
MOV32 regVal, 0x0B
H$ _7 ~0 W0 Z4 m- [7 `
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
* Z: I7 ^: B$ C; K( m7 s
$ d3 ? s+ X. X5 q0 S$ G4 x
// Clear the status of the interrupt
3 K6 R; {$ h- k/ h& E
LDI regVal.w2, 0x0000
6 H ?. X; d0 U( E* m# `2 d
LDI regVal.w0, SYS_EVT
3 c" u) B$ t$ s/ H& b; i
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
: N9 b' J$ [0 g+ `
3 b5 \7 N/ V) Z) L G; O
CALL DELAY_500MS
2 V6 g) n, q" G
JMP DONE
. ~" ]$ k" o+ F, B/ d6 g
) ^! B5 j% t" w0 N1 x
HALT
" e& n Y6 W# j
) j: }1 {9 S7 I
下面的图是改的
0xC0000004地址数据状况?
9 P$ A ~; ]# S- O
[attach]2127[/attach]
0 `3 s3 E$ R5 h1 J) p8 J
5 ^ w) h7 Z( ?* U
5 \! }- Q/ }! H/ k8 o4 e- B
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
6 V7 v- \5 f3 G( V* j% I! p
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
: g8 k8 x9 D M7 P' Y$ k _
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4