嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
S$ q% B" ?& T
DONE:
. I6 _4 P7 Z Y! M
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
0 v: V- k% L- o
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
) f% u6 M) W' L
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
' |0 E2 \+ F' O5 f
, F! l3 s) q1 d; ?" s& G* t m
- {: \8 `0 Y, }2 O# U
$ G5 W s/ ]6 u6 ^4 G7 O% V. u
MOV32 regVal, 0x0B
9 B# `* v0 r" M F) e
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
7 K x9 z% G; p) Q; ~
- k# o- T: b4 H) O( m G% s
// Clear the status of the interrupt
- [: z q3 d6 F6 x1 |
LDI regVal.w2, 0x0000
) d- |2 V5 v: x6 p% M i. k% d) f
LDI regVal.w0, SYS_EVT
- C# E: }9 P& y% J3 d! F4 z2 c+ m
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
* ?% X* P8 L' |' T5 j0 w
6 s4 I! R8 A; p! l5 Y) B4 f( o
CALL DELAY_500MS
$ q- y) T$ {) W* p+ Q7 h! A4 K
JMP DONE
. v3 C9 [* m d! Q
$ ]/ Z9 d. S9 G! L% K- {" R. H1 T
HALT
) j! B/ w. d/ p! A0 j7 d* `( i( q+ V9 V
) \, D3 h+ Q [) k1 E
下面的图是改的
0xC0000004地址数据状况?
1 S w$ f8 F( l: {& F5 q
[attach]2127[/attach]
$ ]( i* S- T1 s* Q
9 z7 a* ? B+ j, N
* T( U' ^3 X \2 v; H# K
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
( K7 ~/ N( U) n. @; W& r# x. }- z- V8 T
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
3 h- ~" n D" s- l* M7 g
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4