嵌入式开发者社区

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

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??: V) l  Y; v$ c5 ^7 p
DONE:
! q) [- t9 x3 T* v9 y    //Generate SYS_EVT32 by event out mapping  通过事件输出生成SYS_EVT32映射0 U) s8 S8 x" r' I& S# m
    MOV32     r31, SYS_EVT                              // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件% u4 v- R! V) \0 n
    SBCO      regVal, CONST_DDR, 0x04, 4     //  *(0xC0000000 + 0x04) = regVal    // regVal r17 = 32  为什么要有这一步呢?
4 \4 c" t) c, y# O  Z' ]' Z; T2 T2 I+ P3 {) l2 O

& v* G7 v  Q$ m- t8 ^* t  R- q" w! T: H2 @/ |. X; Q
    MOV32     regVal, 0x0B
# Z3 ?" l5 k3 V: `; v6 [  S: u    SBCO      regVal, CONST_DDR, 0x04, 4    //  *(0xC0000000 + 0x04) = 0x0B     为什么要将 0xC0000004 的复制为0x0B呢?/ v. R: \: K+ H. `0 H5 s

4 G/ {1 ?  s# a4 _// Clear the status of the interrupt
; |' m6 H! d% g/ n1 ?1 g    LDI        regVal.w2,        0x0000
: ~; ^1 \' Q! t    LDI        regVal.w0,        SYS_EVT8 _) H2 w# {- o
    SBCO        regVal,        CONST_PRUSSINTC,        0x24,        4   // *(C0 + 0x24) = SYS_EVT   清除系统中断& l9 d0 C4 \8 g. `! R2 U8 A* [/ G# a

: F, X9 h0 u& |8 {( pCALL DELAY_500MS   
2 h1 Z2 L8 i9 \0 C" \& g( A! i    JMP DONE1 Y9 H4 ^7 {) o  w% `2 |" h
$ h- q% K" R6 P# k! P+ o: ~
    HALT
7 u% F% i: ~* G* x% s' u/ ?( A9 X# w! z0 z3 }/ ?
下面的图是改的0xC0000004地址数据状况?
$ n8 T$ z( C( ^  N[attach]2127[/attach]
0 L! v) U* }4 i- v7 g3 y6 F/ c, B
6 ~( n+ w1 {, m, m2 U9 P! w; ]! \+ x

作者: Lewis    时间: 2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者: 小石    时间: 2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
* A1 M# Q1 Y9 L! {这里是调试用的,程序放到这个地方,这两条语句需要删除掉
# R- a, D1 k' ~; R% _! X8 H
非常感谢




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