嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
" ~/ f) M7 ~# c* l0 U- ?' e
DONE:
- L' U: _8 d" a' K3 i
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
( i& K' w; O" R% _' O* _
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
" k# @/ d T/ @! U8 z1 H- }
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
' ?( r9 y1 w, b+ C5 F
$ G8 x R2 D3 J
7 a' q1 |2 c) X7 @/ \9 o
/ K7 ?0 m' X7 Y) ?, I' g. l7 s
MOV32 regVal, 0x0B
3 L* U D) U. A
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
7 E& O+ p; |/ h1 v) @2 D! a- G* k
' M6 q# v7 q( n- c' o
// Clear the status of the interrupt
% b' l5 s; x9 @7 ?6 W1 |$ k
LDI regVal.w2, 0x0000
) A2 ]- [" _" O* M& e# Y3 r
LDI regVal.w0, SYS_EVT
3 x, N. g$ P5 E8 M: r9 x( }
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
- C8 }2 z, o& W3 a& T0 t- S% ^% l
/ i E2 ]* |! A0 k p
CALL DELAY_500MS
6 O* ^% O+ V% ~% w8 n8 C7 V( Q
JMP DONE
/ ]; z$ E6 Y: z: t3 y2 X6 Q
3 E( J: \! V B0 }# N# ? [3 B" d
HALT
$ t! ]1 c& o$ D& G: q
; ?. i) o b% l; U8 j
下面的图是改的
0xC0000004地址数据状况?
5 g" {3 D4 g$ O4 L# ^# D& {
[attach]2127[/attach]
, T* c5 s5 |: _4 K
: ^7 O o. F2 F0 U; `4 Z
9 f8 U3 I" V; O9 Z
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
/ E" X- E! ]) K9 u1 J
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
/ g S8 {/ w4 B
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4