嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
2 D u4 k3 ] c) L4 ], t
DONE:
& O) `! Z9 h7 j7 @. K2 g8 Z
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
* {' w" a% p3 c6 {3 c: c8 P
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
! [! S% ?2 o$ R6 E/ d6 [/ O% |
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
' Y# r2 A2 Z5 X+ D1 E4 L
( ]' Q- n% V4 h, A
5 m9 h* }5 \2 T8 p$ z( Y
1 W. U# K4 f/ A, L" X
MOV32 regVal, 0x0B
) ]$ t( D1 K- V o
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
6 r; x+ a" V5 r3 v
4 K( l& G4 i5 c2 q; x" v
// Clear the status of the interrupt
# d- u. r- @+ O0 ]; m/ ]6 P
LDI regVal.w2, 0x0000
- z$ E8 Q% J# B$ T
LDI regVal.w0, SYS_EVT
* q$ g. [% k l7 N/ u3 c( }* p
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
) p- J0 d C4 X P" |$ n, |. z/ p
7 i3 d! W1 ]! B" b7 g/ ?, K
CALL DELAY_500MS
* W) o& b. g N0 v3 k' i* c" @, G* R* p
JMP DONE
* Z% w4 P8 ~2 i, M# }# p1 s* f; C
$ `" h: A J* |' f% B( s
HALT
# [, x1 n- Z, \( Z9 Y/ G
" M6 x3 l9 m# W2 W; {
下面的图是改的
0xC0000004地址数据状况?
, ?! `$ {8 @0 [0 H% {8 N# i: Z3 t8 i& n
[attach]2127[/attach]
6 n1 V& B) B6 Z: E6 `& \
. c( x0 q9 M; q2 a+ f' X
8 M2 f. f# e6 q+ V( c
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
5 t1 m- `: ^7 ^1 `- g/ j8 f# O
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
1 N, I. ~3 C% h! a8 C
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4