嵌入式开发者社区

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

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
7 x# {" I3 c+ U6 W9 |+ s& d$ _DONE:
, a) U' @: M# D1 ^    //Generate SYS_EVT32 by event out mapping  通过事件输出生成SYS_EVT32映射
3 b) M# r3 a7 Q; ~4 S1 A. S    MOV32     r31, SYS_EVT                              // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
* C, y0 o: S: A7 G* I    SBCO      regVal, CONST_DDR, 0x04, 4     //  *(0xC0000000 + 0x04) = regVal    // regVal r17 = 32  为什么要有这一步呢? $ J$ I& J. [. ~: m& h
/ o2 B& X( k3 `2 g7 C1 P$ `4 L
; R# ?' A5 q% T/ e
3 X1 E# V( A/ c+ f- t
    MOV32     regVal, 0x0B* A' S) n) _, ]7 J
    SBCO      regVal, CONST_DDR, 0x04, 4    //  *(0xC0000000 + 0x04) = 0x0B     为什么要将 0xC0000004 的复制为0x0B呢?# _! E0 f& @) |8 x8 r
* B( t; s, k2 m$ Y. g$ E
// Clear the status of the interrupt" C' S& |( X0 n% _9 A
    LDI        regVal.w2,        0x0000$ w/ x" g3 u: g3 v
    LDI        regVal.w0,        SYS_EVT
1 E! y3 f7 Y% f% T9 @- h: ^- h    SBCO        regVal,        CONST_PRUSSINTC,        0x24,        4   // *(C0 + 0x24) = SYS_EVT   清除系统中断
* R7 D. ~$ Z. o9 e; U5 V: p" Q8 \4 T* L4 C: L
CALL DELAY_500MS   
- M3 a9 f5 p7 H5 u" d3 {- I# M    JMP DONE! ^3 X# a7 ?* M
( N4 ?) U2 `! K0 i
    HALT. ~0 O" V+ @6 |0 P4 X
5 ?) Q, w- U6 l$ M* q
下面的图是改的0xC0000004地址数据状况?
5 f( A; ]' E& F' n[attach]2127[/attach]
6 |& C! U, D1 c& C
( {  E4 D) X8 x, D
8 H5 B" i, p, J8 r2 ^' X3 o
作者: Lewis    时间: 2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者: 小石    时间: 2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
- U6 Q: I5 `. E这里是调试用的,程序放到这个地方,这两条语句需要删除掉
$ h6 V  u4 O$ D$ K1 `
非常感谢




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4