嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
+ Z0 K8 @& A" }( O( p5 U# @
DONE:
. x/ S H% ` h% v+ I$ s6 U
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
: I# b7 I. l V9 p: o
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
7 z9 _: E3 A B8 C3 ?& o
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
. T6 J) ` j( k. q
- i+ ?' p" d* K: m% _) x7 @
; h2 H. n5 Y+ l/ J0 F! B. M
, p* V2 m4 @ z$ @1 _% ~
MOV32 regVal, 0x0B
1 Q% z8 Y1 ~* F& Q0 b: Y
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
9 O9 ]$ P& c/ t) [
% ~. U& | ] ]9 s' D. r
// Clear the status of the interrupt
7 |0 k* Y$ ^8 c
LDI regVal.w2, 0x0000
+ q ]* K1 e- A, z/ N& n
LDI regVal.w0, SYS_EVT
8 w9 s: e8 C3 U- ?* c( Q, G
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
% R- P. F* Q( x4 V, s9 k( G, C
% u6 X" C. F9 p e5 y
CALL DELAY_500MS
8 i. J/ a* d) {8 Y6 l/ G
JMP DONE
7 _% k2 ]0 _* _; U4 z3 E
% e$ M3 a. d* n2 W2 C+ x
HALT
* u& W+ k; M+ o+ r3 X
7 |% Q, ]6 G% f$ ~5 |
下面的图是改的
0xC0000004地址数据状况?
f) T" M4 B# [$ ~8 t7 a9 `
[attach]2127[/attach]
& K& O J* q+ h9 g' M
( P2 p, H0 ^$ |+ I. {
9 d4 F- I/ \3 u! s) d `
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
8 V& q3 J0 Q3 S0 V0 W% s5 u
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
! S( o7 B, I: N
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4