|
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??6 w% D7 @2 s& H( u: j; @
DONE:
+ T Y3 Q+ W9 g5 M, q y4 X/ u: I //Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
! I1 f+ ~. i- K, ?0 _ MOV32 r31, SYS_EVT // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
* _. T, j* I; j) G D SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32 为什么要有这一步呢?
. s* r% q( O7 V, x2 I9 T
& } w* _9 h; N! x1 G
4 ]) M9 n( y( D/ |( G5 ~- D# E
/ y! V2 F3 i8 m7 R+ Z: q ^% J- J MOV32 regVal, 0x0B# A, ^" B4 r' d; f
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B 为什么要将 0xC0000004 的复制为0x0B呢?2 M9 ~9 ~1 ~% q! T
, f) ]# c$ u8 V7 `5 Z2 [5 ?// Clear the status of the interrupt
0 B! E5 q/ M8 I: s7 Y+ J LDI regVal.w2, 0x0000
- p( E8 u% x9 b' L9 l7 J% i LDI regVal.w0, SYS_EVT
v/ U: a4 e) y/ Z5 u9 ] SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
2 J; c' y' u/ G# R* b
( m/ Q+ h. O3 O/ L; d& k3 ACALL DELAY_500MS
$ Q P5 M2 X3 M D- }+ P# ^% ~+ U JMP DONE
3 C" {* @* a9 v6 @- b- m/ ]' {3 L- w' C
HALT2 R0 G+ U2 h" j7 @
* |3 M8 _3 \) g" x }# n
下面的图是改的0xC0000004地址数据状况?
7 L! I! F% h5 f8 ?2 ?1 J N3 s m, D
2 o# n* k5 E; a n* I( V; T
* T% D7 z0 K9 w" {$ W7 B' ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|