嵌入式开发者社区

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

作者: 小石    时间: 2017-3-30 18:34
标题: 创龙PRUtoDSP_Interrupt工程代码的疑问?
请教下 创龙 PRUtoDSP_Interrupt工程当中,PRU代码部分的作用??3 e+ X6 W, ?  \4 S7 o! j
DONE:
9 ?* u/ C& @, y    //Generate SYS_EVT32 by event out mapping  通过事件输出生成SYS_EVT32映射
5 v6 }0 q3 L5 q4 g" d* h! |! `    MOV32     r31, SYS_EVT                              // 这里写R31寄存器(R31=32),将产生中断输出事件到中断控制器的32号系统事件
. e' U$ N4 e- U* h    SBCO      regVal, CONST_DDR, 0x04, 4     //  *(0xC0000000 + 0x04) = regVal    // regVal r17 = 32  为什么要有这一步呢?
3 q3 z7 d; ~& V
1 G) t$ R1 o  U5 y" c7 ~' s# h, s0 }) n" B9 q' [
/ m, W6 B4 B" \2 c8 \' r) G  D2 ~
    MOV32     regVal, 0x0B4 E3 J6 V6 \* A
    SBCO      regVal, CONST_DDR, 0x04, 4    //  *(0xC0000000 + 0x04) = 0x0B     为什么要将 0xC0000004 的复制为0x0B呢?8 E& N0 c4 @* o  ~8 S) E4 \

" x* W1 P- Q' _' O  _// Clear the status of the interrupt4 j1 E' ?! q) ?# @0 [
    LDI        regVal.w2,        0x0000
, \0 ^+ T% h. V$ b. ~4 ~$ `! u    LDI        regVal.w0,        SYS_EVT7 ~, d9 r5 S. z1 O% {" D
    SBCO        regVal,        CONST_PRUSSINTC,        0x24,        4   // *(C0 + 0x24) = SYS_EVT   清除系统中断
% K% i; L9 p0 n) e9 c- r9 @1 u+ Y0 I' a. T6 r
CALL DELAY_500MS   
- ~) A8 x* e4 a( I$ \9 m/ g: n" y5 w    JMP DONE
  Y& S* R  x; k2 M3 }. K$ S, q6 _) G" i! R, b+ ^- G
    HALT, u  e2 G0 i& i( M" c( Y; `

, ^( L9 R4 ]/ P6 s6 e下面的图是改的0xC0000004地址数据状况?5 {) u" o' E9 P
[attach]2127[/attach]
0 A; ?9 @; [. M7 S# w9 S6 a3 q- Q" c# c4 i3 _& O: [
- h) U3 m% q  |" j( i, {: _; ~

作者: Lewis    时间: 2017-3-30 23:18
这里是调试用的,程序放到这个地方,这两条语句需要删除掉
作者: 小石    时间: 2017-3-31 09:30
Lewis 发表于 2017-3-30 23:18
# V/ j, V$ l; J) `) p& A* z这里是调试用的,程序放到这个地方,这两条语句需要删除掉
+ q3 X; h: ]1 ^
非常感谢




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