嵌入式开发者社区

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

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??+ Z0 K8 @& A" }( O( p5 U# @
DONE:
. x/ S  H% `  h% v+ I$ s6 U    //Generate SYS_EVT32 by event out mapping  通过事件输出生成SYS_EVT32映射: I# b7 I. l  V9 p: o
    MOV32     r31, SYS_EVT                              // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件7 z9 _: E3 A  B8 C3 ?& o
    SBCO      regVal, CONST_DDR, 0x04, 4     //  *(0xC0000000 + 0x04) = regVal    // regVal r17 = 32  为什么要有这一步呢? . T6 J) `  j( k. q

- i+ ?' p" d* K: m% _) x7 @
; h2 H. n5 Y+ l/ J0 F! B. M
, p* V2 m4 @  z$ @1 _% ~    MOV32     regVal, 0x0B1 Q% z8 Y1 ~* F& Q0 b: Y
    SBCO      regVal, CONST_DDR, 0x04, 4    //  *(0xC0000000 + 0x04) = 0x0B     为什么要将 0xC0000004 的复制为0x0B呢?
9 O9 ]$ P& c/ t) [% ~. U& |  ]  ]9 s' D. r
// Clear the status of the interrupt
7 |0 k* Y$ ^8 c    LDI        regVal.w2,        0x0000+ q  ]* K1 e- A, z/ N& n
    LDI        regVal.w0,        SYS_EVT
8 w9 s: e8 C3 U- ?* c( Q, G    SBCO        regVal,        CONST_PRUSSINTC,        0x24,        4   // *(C0 + 0x24) = SYS_EVT   清除系统中断% R- P. F* Q( x4 V, s9 k( G, C
% u6 X" C. F9 p  e5 y
CALL DELAY_500MS   
8 i. J/ a* d) {8 Y6 l/ G    JMP DONE
7 _% k2 ]0 _* _; U4 z3 E
% e$ M3 a. d* n2 W2 C+ x    HALT* u& W+ k; M+ o+ r3 X
7 |% Q, ]6 G% f$ ~5 |
下面的图是改的0xC0000004地址数据状况?  f) T" M4 B# [$ ~8 t7 a9 `
[attach]2127[/attach]
& K& O  J* q+ h9 g' M
( P2 p, H0 ^$ |+ I. {9 d4 F- I/ \3 u! s) d  `

作者: Lewis    时间: 2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者: 小石    时间: 2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
8 V& q3 J0 Q3 S0 V0 W% s5 u这里是调试用的,程序放到这个地方,这两条语句需要删除掉
! S( o7 B, I: N
非常感谢




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