|
|
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
P; q/ J& J1 u+ mDONE:
* K% }" f( P9 I7 {$ _ //Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
. l, a" ]. u5 T5 a9 @ MOV32 r31, SYS_EVT // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
( |* g8 S. z4 S2 j3 z* C. P/ q" v SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32 为什么要有这一步呢?
( r% X, A4 L9 B* W: W
! o: W& r+ {9 L- b% r
4 `7 \' j; w5 G4 v' ?
5 A3 H$ a# q$ A' v8 |, G- t MOV32 regVal, 0x0B
* c/ ?7 @% a$ u" d: v3 i* R7 o SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B 为什么要将 0xC0000004 的复制为0x0B呢?
; _8 s4 r9 R1 X `# |5 H# U0 B: m R2 T2 F8 H# x, e
// Clear the status of the interrupt- j/ x6 K3 O8 H
LDI regVal.w2, 0x00002 x: z1 R8 B; m7 l% T2 o) U6 H3 ~
LDI regVal.w0, SYS_EVT
" H) w. ?2 |( i! b# L SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
9 m* X L- [0 D4 `. L% Z* \# @6 P( G
CALL DELAY_500MS : s F2 ~( S: U0 W1 p w& G
JMP DONE }/ H# K$ B9 K. r
8 A) B0 d0 R; a2 u+ h1 w, V. j$ ? HALT) G0 ^, Q2 s3 G& Z
2 }4 C3 x8 g( d, \3 t
下面的图是改的0xC0000004地址数据状况?! f7 u y5 o$ t; u
1 {& i; g- r0 n" t% [# M
2 K9 C* n& V1 P! ~% Y# k
- J3 ?, V: a6 u d+ t
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|