嵌入式开发者社区
标题:
创龙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" c
7 ~' s# h, s0 }) n" B9 q' [
/ m, W6 B4 B" \2 c8 \' r) G D2 ~
MOV32 regVal, 0x0B
4 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 interrupt
4 j1 E' ?! q) ?# @0 [
LDI regVal.w2, 0x0000
, \0 ^+ T% h. V$ b. ~4 ~$ `! u
LDI regVal.w0, SYS_EVT
7 ~, d9 r5 S. z1 O% {" D
SBCO regVal, CONST_PRUSSINTC, 0x24, 4 // *(C0 + 0x24) = SYS_EVT 清除系统中断
% K% i; L9 p0 n) e9 c- r
9 @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