嵌入式开发者社区

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

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??
( B" h' o# W$ ?! A# B/ ?6 b: dDONE:
$ k5 ^: Y4 h" o6 ]    //Generate SYS_EVT32 by event out mapping  通过事件输出生成SYS_EVT32映射" z# s; Z6 T0 m9 K: X6 N0 z
    MOV32     r31, SYS_EVT                              // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件( X4 h3 Q( G+ n7 b# B4 a. O
    SBCO      regVal, CONST_DDR, 0x04, 4     //  *(0xC0000000 + 0x04) = regVal    // regVal r17 = 32  为什么要有这一步呢? ) z) {8 N4 m8 d/ Z1 d! s! U

+ Y" `. [* y, f, W. j6 @) E$ d( [+ B' V7 m" l- n

' A$ T  i" z$ `0 O5 x+ \! f    MOV32     regVal, 0x0B: B' w9 x- s2 z! b- U* E
    SBCO      regVal, CONST_DDR, 0x04, 4    //  *(0xC0000000 + 0x04) = 0x0B     为什么要将 0xC0000004 的复制为0x0B呢?' k  V: `8 H: O2 K- N8 l- X- Y4 }7 P
5 E0 x  Z7 |, h( D0 b
// Clear the status of the interrupt
$ @/ u+ l6 G, b% m$ X    LDI        regVal.w2,        0x00007 X4 \/ ~9 Z' K- n; J
    LDI        regVal.w0,        SYS_EVT
1 v- f) f. ^6 ~) i5 v/ B1 C    SBCO        regVal,        CONST_PRUSSINTC,        0x24,        4   // *(C0 + 0x24) = SYS_EVT   清除系统中断- o, D! a  D5 u" `* h

8 f; {! Q/ q! f9 ~7 [CALL DELAY_500MS   
& ~7 Z1 ^! t( N; H  F, m8 |0 d    JMP DONE! `( ^* \) ^/ }  e+ G% D( s
8 B) Q# q  l7 o% ^! o
    HALT3 h4 r) f, H7 U; E
! x, A* @4 Z$ t! k, C8 ^
下面的图是改的0xC0000004地址数据状况?* y4 h0 ?+ \5 i2 A; C4 l9 w8 ]
[attach]2127[/attach]  T3 _1 _5 z2 O! P! X

. r$ q5 u* U2 S+ x5 B3 z; k* |

作者: Lewis    时间: 2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者: 小石    时间: 2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
* ~/ L* P, Q) o, a. [这里是调试用的,程序放到这个地方,这两条语句需要删除掉

' J  `5 t5 e2 t非常感谢




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