嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
: V) l Y; v$ c5 ^7 p
DONE:
! q) [- t9 x3 T* v9 y
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
0 U) s8 S8 x" r' I& S# m
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
% u4 v- R! V) \0 n
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
4 \4 c" t) c, y# O
Z' ]' Z; T2 T2 I+ P3 {) l2 O
& v* G7 v Q$ m- t8 ^* t R
- q" w! T: H2 @/ |. X; Q
MOV32 regVal, 0x0B
# Z3 ?" l5 k3 V: `; v6 [ S: u
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
/ v. R: \: K+ H. `0 H5 s
4 G/ {1 ? s# a4 _
// Clear the status of the interrupt
; |' m6 H! d% g/ n1 ?1 g
LDI regVal.w2, 0x0000
: ~; ^1 \' Q! t
LDI regVal.w0, SYS_EVT
8 _) H2 w# {- o
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
& l9 d0 C4 \8 g. `! R2 U8 A* [/ G# a
: F, X9 h0 u& |8 {( p
CALL DELAY_500MS
2 h1 Z2 L8 i9 \0 C" \& g( A! i
JMP DONE
1 Y9 H4 ^7 {) o w% `2 |" h
$ h- q% K" R6 P# k! P+ o: ~
HALT
7 u% F% i: ~* G
* x% s' u/ ?( A9 X# w! z0 z3 }/ ?
下面的图是改的
0xC0000004地址数据状况?
$ n8 T$ z( C( ^ N
[attach]2127[/attach]
0 L! v) U* }4 i- v7 g3 y6 F/ c, B
6 ~( n+ w1 {, m, m
2 U9 P! w; ]! \+ x
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
* A1 M# Q1 Y9 L! {
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
# R- a, D1 k' ~; R% _! X8 H
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4