嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
( B" h' o# W$ ?! A# B/ ?6 b: d
DONE:
$ k5 ^: Y4 h" o6 ]
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
" z# s; Z6 T0 m9 K: X6 N0 z
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
( X4 h3 Q( G+ n7 b# B4 a. O
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
) z) {8 N4 m8 d/ Z1 d! s! U
+ Y" `. [* y, f, W. j6 @
) E$ d( [+ B' V7 m" l- n
' A$ T i" z$ `0 O5 x+ \! f
MOV32 regVal, 0x0B
: B' w9 x- s2 z! b- U* E
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
' k V: `8 H: O2 K- N8 l- X- Y4 }7 P
5 E0 x Z7 |, h( D0 b
// Clear the status of the interrupt
$ @/ u+ l6 G, b% m$ X
LDI regVal.w2, 0x0000
7 X4 \/ ~9 Z' K- n; J
LDI regVal.w0, SYS_EVT
1 v- f) f. ^6 ~) i5 v/ B1 C
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
- o, D! a D5 u" `* h
8 f; {! Q/ q! f9 ~7 [
CALL DELAY_500MS
& ~7 Z1 ^! t( N; H F, m8 |0 d
JMP DONE
! `( ^* \) ^/ } e+ G% D( s
8 B) Q# q l7 o% ^! o
HALT
3 h4 r) f, H7 U; E
! x, A* @4 Z$ t! k, C8 ^
下面的图是改的
0xC0000004地址数据状况?
* y4 h0 ?+ \5 i2 A; C4 l9 w8 ]
[attach]2127[/attach]
T3 _1 _5 z2 O! P! X
. r$ q5 u* U2 S
+ x5 B3 z; k* |
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
* ~/ L* P, Q) o, a. [
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
' J `5 t5 e2 t
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4