嵌入式开发者社区

标题: 创龙PRUtoDSP_Interrupt工程代码的疑问? [打印本页]

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
$ K& ]1 u0 a+ UDONE:
/ ]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 v5 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