嵌入式开发者社区
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
[打印本页]
作者:
小石
时间:
2017-3-30 18:34
标题:
创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
$ K& ]1 u0 a+ U
DONE:
/ ]9 ~# t8 Z+ Y8 c( r, w7 l
//Generate SYS_EVT32 by event out mapping 通过事件输出生成SYS_EVT32映射
' E0 X3 i( G) ~
MOV32 r31, SYS_EVT
// 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
8 O& I5 x0 j! ~# @) ?* j3 F
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = regVal // regVal r17 = 32
为什么要有这一步呢?
& x$ V0 J ~( |2 U3 B5 i- j1 v
5 j* p+ N8 A7 c3 @6 r u
% h' i) @# e8 ?
& r: i; `% B) |, x& z
MOV32 regVal, 0x0B
' u! N( J$ V# {' u# R0 Y( l: q* {
SBCO regVal, CONST_DDR, 0x04, 4 // *(0xC0000000 + 0x04) = 0x0B
为什么要将 0xC0000004 的复制为0x0B呢?
' @/ ^4 w- P6 v+ P# Y0 ^5 U
' @# D: m% R' q! J
// Clear the status of the interrupt
; Z1 ]( f! C6 d* G
LDI regVal.w2, 0x0000
; C @0 E2 |2 x! s6 q9 O" |4 B. S+ ^$ U
LDI regVal.w0, SYS_EVT
+ A7 S! i R6 U$ x$ a
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
: ?- e) L5 z1 ^8 ~' W8 o# x) W
# v6 D2 L3 _9 E% i- p4 m* |
CALL DELAY_500MS
+ _+ _) u5 d3 ]5 o R
JMP DONE
; }( A( G* b1 v/ T1 d. T) e
( m* G/ e3 v! H% f+ k4 j- @' R
HALT
/ k$ t7 a, a7 L a+ x
; K: Q; G+ v' Q/ Y l
下面的图是改的
0xC0000004地址数据状况?
" E0 s8 u5 O8 t
[attach]2127[/attach]
' z- e3 F0 A1 B/ T7 a0 x
$ j- f8 j7 w+ P3 h+ N
# k9 k$ |* e9 ~- m
作者:
Lewis
时间:
2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者:
小石
时间:
2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
! |4 }, l5 @7 e
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
6 o# a* M$ N& d! u% i
非常感谢
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4