返回列表 发帖

[原创经验] 华邦w90x700系列AIC (高级中断控制器)

[原创经验] 华邦w90x700系列AIC (高级中断控制器)

1.1.
) _) Q6 N, m0 @' v( y1 B- 嵌入式底层驱动开发技术学习网站
概述
W90P710合并的高级中断控制器 (AIC)
. S7 W! r3 i2 e# D6 s7 R嵌入式开发联盟
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。

" l" k& o% k6 Q3 I8 d% e0 u' n4 r. S. K' R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。
, w5 l' D  g6 c4 l6 G  ]; O: u- 嵌入式底层驱动开发技术学习网站尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 v1 Y; Q0 k& }
- 嵌入式底层驱动开发技术学习网站* S. r# z0 v& w* I* L
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" b' J& c! W4 N" x
mcuos.com/ Q9 F. n6 E- o' Y# m2 x+ g
3 G" i( i1 t1 l; J6 V% a1 o% M" N
4 E; o, l) K& q$ ]; I! O
9 w& B. s/ [* p" F& x0 @

* m# @6 N8 t$ J+ @% ?6 ~嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( v1 F. [: Y4 x9 [- s# N, x5 R
寄存器

* I9 f( ]/ d/ o" _% _, D- 嵌入式底层驱动开发技术学习网站R :- 嵌入式底层驱动开发技术学习网站6 ~$ c% K. g) G
只读, W :
4 e  r2 E2 i# G. V) Kmcuos.com
只写, R/W :mcuos.com; N1 T; m" M2 Y' g" F( ^
读写, C :
) Q  R& M7 l) G9 H: I7 dmcuos.com
只可写0
( m% A$ d1 v2 n; y5 W# a) ?嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习表 2‑1 AIC
! a1 `  u! i7 D嵌入式开发联盟寄存器定义嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 a0 R5 O9 k  o* B1 C; `

Register
! h2 K8 l* E5 R; `" ^7 t) E
Address4 b! e+ m) v/ g5 T& O8 `
R/W3 ]  J/ H6 G1 H- u

Description

Reset Value嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 k+ {" g8 |: q$ D

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: b/ c* e+ w7 C( W$ @" c
AIC_SCR1

0xFFF8.2004

R/W
, i1 D/ T; c9 C) i& a嵌入式开发联盟

: O4 z: C1 a) F5 o嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 1

0 K, l' A0 C9 ~* X+ z
0x0000.00474 k! W% J" q/ W/ s- _7 X

嵌入式开发联盟+ m' [' I+ |, _) u5 Y7 R6 l3 ^
AIC_SCR2

0xFFF8.2008

R/W嵌入式开发联盟( f4 H4 `9 x. c* F( F
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! @* y5 c$ T& d+ ^
Source Control Register 2
嵌入式开发联盟) L% C1 V; l% y1 T+ f# C+ ]
0x0000.0047
( X/ B: n/ X& a/ @9 x嵌入式开发联盟


0 \* J7 ]& j# }. W嵌入式开发联盟
AIC_SCR3

0xFFF8.200C

R/W
& h8 D$ w) t% q  R/ @
mcuos.com, i+ |1 z% p" A: Z
Source Control Register 3

8 j  L. {3 t# O8 e嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047嵌入式开发联盟1 t6 P" B& {: d" @' u$ q1 S4 I

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" Y1 {, X# K6 W4 y! o
AIC_SCR4

0xFFF8.2010

R/W嵌入式开发联盟4 q+ Z% P* L" J# J

; B! {& M5 P( O4 I9 MSource Control Register 4

" U( u: G' q) I0 n- 嵌入式底层驱动开发技术学习网站
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 j5 [3 r& V# ?' f


5 o  A6 X$ R$ X+ W( ]嵌入式开发联盟
AIC_SCR5

0xFFF8.2014

R/W
3 M2 i# l( G/ C/ |& U6 i/ ^: N嵌入式开发联盟
- 嵌入式底层驱动开发技术学习网站$ b% ^7 m6 N8 X4 n
Source Control Register 5
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。9 ~6 {; M! H% L& y' h
0x0000.0047
8 B  h8 d( f! w* b* K( h) c! xmcuos.com


: Z: d. g4 F/ d$ fmcuos.com
AIC_SCR6

0xFFF8.2018

R/W
: G+ v/ }1 T+ U1 k: n嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

. r, V4 d8 m6 H; w$ a( O嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 6

+ X' [# q) E. k8 kmcuos.com
0x0000.0047
, p$ n7 N' _3 i- A

mcuos.com3 g# |) b: M9 u9 n. U* L0 l
AIC_SCR7

0xFFF8.201C

R/Wmcuos.com( ]6 k: u& ?( \* I8 R
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。7 |) y: b  A" @; L% b" x3 a& o
Source Control Register 7
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。9 k' o) _3 L+ E: ~- p
0x0000.0047嵌入式开发联盟4 F9 [6 {! T* {

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习* Z0 {5 U: O6 H: h& K7 t
AIC_SCR8

0xFFF8.2020

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 g5 L# H2 r7 `; r6 D
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! Q- M" W& d) T/ x$ A) G7 _6 K
Source Control Register 8

* K* C7 n& S% ?' Z0 C, amcuos.com
0x0000.0047
* G! w% E+ v( D- x1 {( mmcuos.com

- 嵌入式底层驱动开发技术学习网站* Z- J, u" l1 ]2 p& e) A: A) G/ y2 O) {
AIC_SCR9

0xFFF8.2024

R/W
; y8 ~4 z/ a) Z9 M, L( ~& emcuos.com

  }8 i+ q* w0 H: `8 qmcuos.comSource Control Register 9
mcuos.com+ f0 t' v% @- r  T* S
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% L- Z1 t3 d+ a/ E- o" K


' c. t; j# [8 o, w- p4 k- T5 |7 {本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR10

0xFFF8.2028

R/W
& r9 y8 f6 [: K  C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

4 @% y3 c" P  Q- 嵌入式底层驱动开发技术学习网站Source Control Register 10

- Z, H3 f  M/ W$ M2 E7 C3 wmcuos.com
0x0000.0047
+ s1 E' X& i3 I- \6 B  i嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. m+ j3 M0 I3 V2 A  M: c( O; }0 p
AIC_SCR11

0xFFF8.202C

R/W
5 ^7 V% W$ |0 umcuos.com

) R! Z: p# f& L9 U: v- 嵌入式底层驱动开发技术学习网站Source Control Register 11
嵌入式开发联盟' x) N# m) G; i! m: f: Q
0x0000.0047mcuos.com* |+ y* B2 x' n4 o& D' o( q* L

- P3 k7 u1 x9 k% M: G% o' c9 ^( x
AIC_SCR12

0xFFF8.2030

R/W
2 I+ r3 H7 J# W6 e2 x嵌入式开发联盟
- 嵌入式底层驱动开发技术学习网站  ]" U. j, v5 v! M8 y, `0 r
Source Control Register 12
mcuos.com2 Q6 k/ x4 s4 ?7 c# p
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ S* k: F" i, a  m

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 Y! U- ]9 W7 ]5 b+ Z
AIC_SCR13

0xFFF8.2034

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ p; |; X9 M/ s, S) ~' q
- i$ E5 M$ _0 B
Source Control Register 13

( u9 v6 n% b0 [- 嵌入式底层驱动开发技术学习网站
0x0000.0047
: ~: p# n3 `! u# c2 ?: a# t嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

mcuos.com3 w0 B7 h" V: w5 m% Q5 e! M. E
AIC_SCR14

0xFFF8.2038

R/W/ T7 F* w% z4 n8 ?1 t3 c2 L" I* ?
/ q! W! L' a# O+ `# L5 ~: B+ ?0 i
Source Control Register 14

7 h6 F1 j9 I  @8 x- `$ pmcuos.com
0x0000.0047
% m5 R  V3 I- p  b3 d( m嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

- p2 N" k+ S6 o' `2 v
AIC_SCR15

0xFFF8.203C

R/W
6 Z+ U/ X: d# F  ~" M8 B1 @嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站; [0 y, M% }: O" G1 S- i/ x
Source Control Register 15

; d2 c# \: F4 e/ M7 l8 }2 R$ i( f. k
0x0000.0047% a' q% L7 d$ s; E) h# \, Q; x8 {


2 B4 _! k' m( t9 U) u; W5 K8 g嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR16

0xFFF8.2040

R/Wmcuos.com' B/ D1 l8 Y( ?, P4 x

8 f7 V) L  k1 P$ x) C* F嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 16

; M# r  {0 W, \, a. D1 Q4 ~. h- 嵌入式底层驱动开发技术学习网站
0x0000.0047
- w4 q( j9 o- a; T" X3 h3 t嵌入式开发联盟

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ y. {1 Z# Q8 R/ p- e% j
AIC_SCR17

0xFFF8.2044

R/W
: l$ Y. x2 q; W( U本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
mcuos.com" D+ ?$ v: ^/ |, F* {1 j) z
Source Control Register 17
  d8 D, }+ P! Z( E
0x0000.0047- 嵌入式底层驱动开发技术学习网站5 q7 T' S. |! o

- 嵌入式底层驱动开发技术学习网站- `# K/ P3 D+ R: e
AIC_SCR18

0xFFF8.2048

R/W
" E4 H9 a% v5 h6 \mcuos.com
- 嵌入式底层驱动开发技术学习网站+ O+ \4 n  L8 c. L; J, Y+ I7 U
Source Control Register 18
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; j# s$ g( @# K/ ]4 k
0x0000.0047- 嵌入式底层驱动开发技术学习网站* o' ]# D/ o7 M' D6 d+ e


6 |8 y7 W& O; a4 q, v! H嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR19

0xFFF8.204C

R/W
+ E: \- k8 g/ E$ `mcuos.com
嵌入式开发联盟1 P0 }% _$ `! [) G+ ~; Y/ w
Source Control Register 19

/ v% _, f; W" Y6 g8 R; }& c嵌入式开发联盟
0x0000.0047& ?0 E9 T  I+ h& s# z) b


2 j0 h! m& |  m本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR20

0xFFF8.2050

R/W
1 j5 G( T: U: E7 z( o) A4 S$ a1 }mcuos.com

/ x1 u9 B+ j! @: w4 kmcuos.comSource Control Register 20
- 嵌入式底层驱动开发技术学习网站- b6 B& H4 u/ y% |- h4 F
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- n. |/ W+ x- P( R

mcuos.com! D, W8 _2 J5 ]& }$ I
AIC_SCR21

0xFFF8.2054

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 m4 U- V" h' L8 Y2 \. r% _+ j7 O
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 \2 ~; P0 h5 v! N
Source Control Register 21
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。; O' W6 d7 ^9 ]
0x0000.0047
8 \& {: a+ k$ W- 嵌入式底层驱动开发技术学习网站

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 W8 o# g1 q% s0 R8 {4 w
AIC_SCR22

0xFFF8.2058

R/W
( b- j2 T, y5 d/ i嵌入式开发联盟

0 J" m7 {! B* @嵌入式开发联盟Source Control Register 22

8 Z) \2 }2 Y; v' f0 W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047
5 k* q/ u, i$ \/ ~- c3 b$ G! U. E3 i- 嵌入式底层驱动开发技术学习网站

mcuos.com/ Q! o1 ]% r% B% _9 A. c
AIC_SCR23

0xFFF8.205C

R/W7 Z+ K. M  K. l% w# m" O, E; U
) D- ]. o4 S, s! _
Source Control Register 23
- 嵌入式底层驱动开发技术学习网站" {7 ~4 f" p! L4 T* I
0x0000.0047
% O/ I. _( g! [- 嵌入式底层驱动开发技术学习网站


. G" b: Z' l4 L嵌入式开发联盟
AIC_SCR24

0xFFF8.2060

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。# u9 a5 K6 C9 t  H2 b2 [. j$ B; _

. p2 ]9 }9 Z7 @+ |; ^# s" Y本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 24
- 嵌入式底层驱动开发技术学习网站; Z9 _) a  H# e! R2 n
0x0000.0047
- L0 ?+ M0 w9 a% ?) ~* p

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; |* P# @2 m6 t' C
AIC_SCR25

0xFFF8.2064

R/W
* P' P# i) j7 Q" ?2 ?% i
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 {, h  W1 `  d' k4 J& v0 D9 u4 o& G
Source Control Register 25
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( d. i' n. b% J- q
0x0000.0047
! y3 b7 d9 |# Q


+ J" ?5 k1 d7 G3 L. G; Imcuos.com
AIC_SCR26

0xFFF8.2068

R/W
. z) T( x* _( o6 q5 U嵌入式开发联盟
嵌入式开发联盟' W! l0 ^: w( p
Source Control Register 26
: w9 `  G6 D6 G7 a6 S% k! G) a
0x0000.0047
' _4 P! P( A3 M2 B$ S嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


, h: F, n$ i- o. ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR27

0xFFF8.206C

R/W
6 _) T/ t% b4 N9 G1 u2 O) |mcuos.com

0 j3 D' X+ N9 |# ~mcuos.comSource Control Register 27

' W/ E2 G8 l' m1 U5 Z$ F0 c嵌入式开发联盟
0x0000.0047
4 o. \7 a0 q7 V$ X1 V: _嵌入式开发联盟

嵌入式开发联盟7 x1 g* ^' y4 @. J/ u. z
AIC_SCR28

0xFFF8.2070

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; t4 i7 N: j2 V" z1 }5 A
嵌入式开发联盟) n& L! X$ w- y# @
Source Control Register 28
) G% T3 \9 v" @  c3 |0 _
0x0000.0047
6 l/ L% G6 A* d5 t2 f) d! O


7 k! x$ ?/ w" x+ ^# h: h% r- 嵌入式底层驱动开发技术学习网站
AIC_SCR29

0xFFF8.2074

R/W
4 A4 i+ b5 D- [/ V  J- ]mcuos.com
嵌入式开发联盟) B" @. D1 j: j9 J: e6 B
Source Control Register 29
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& ~, w7 s( ?" O: p% M* w. e/ B$ q
0x0000.0047嵌入式开发联盟3 F4 o* ]6 |' |( s1 l: i

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. S' O0 n, m4 H: S
AIC_SCR30

0xFFF8.2078

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。; i0 a( e; Y4 D& p" U/ {* S% s4 c

* J4 Z( z7 Y& A" A" ]Source Control Register 30
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! v& M# h6 \( B. ?6 z
0x0000.0047
/ G+ N: B( z: u) [- x( k% `嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

3 ]. M4 U8 m+ Y/ P6 K! T: Q
AIC_SCR31

0xFFF8.207C

R/W
2 E/ [3 Q6 l: T/ R, Y2 c- k嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站6 Z4 G% J3 r* b# g  |7 P$ ^3 c
Source Control Register 31

( o" G' s( w3 ~& {( l( Imcuos.com
0x0000.0047- 嵌入式底层驱动开发技术学习网站; C5 s/ H) }! l2 S5 a( T
$ m$ Z& D+ K9 n
AIC_IRSR

1 z% {; ?/ K+ Q, }' {/ @3 F0 [mcuos.com

0xFFF8.2100

R
7 c5 c0 `( Z3 R7 g1 t- 嵌入式底层驱动开发技术学习网站
- 嵌入式底层驱动开发技术学习网站8 c/ t8 H# e/ r: F
Interrupt Raw Status Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% h5 a7 @# S/ a( P2 e
0x0000.0000
  q. c2 z# X; p+ k嵌入式开发联盟
mcuos.com( f- t% b/ g  p* U) k" I  O& l* W
AIC_IASR
mcuos.com& C0 F5 g3 W! Z$ g* ~% i

0xFFF8.2104

R
, B$ a: U* o. d- 嵌入式底层驱动开发技术学习网站
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: B) _5 U8 U2 o/ w3 t2 v
Interrupt Active Status Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- d8 V% C7 A1 K" w" ~; H9 W
0x0000.0000
0 \& e* P$ r) umcuos.com

. R( P& G! W0 ^5 R: a; b嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_ISR

! u. G" ~1 [+ T

0xFFF8.2108

R
5 k- q4 F1 H  ^) V* R3 s+ p嵌入式开发联盟
- 嵌入式底层驱动开发技术学习网站& j8 [2 c# g2 E# z: H; D4 V* q2 Z
Interrupt Status Register

. {  g/ y5 ~  B' P4 x嵌入式开发联盟
0x0000.0000
+ W0 k( i: {; c# e5 Q本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

6 I  Z' E1 j& l- c; E. T$ B* K9 Z3 t嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_IPER
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 F2 X9 U$ v2 j- s7 R4 ^0 Z5 ?' m

0xFFF8.210C

R嵌入式开发联盟7 [. t' Y5 @& y; v$ f
# n+ Z  S% \6 @5 i
Interrupt Priority Encoding Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- @/ _5 Y2 |( L  z/ f
0x0000.0000
. B% q- b3 X2 ^# i/ [: f

: K: \6 r; x/ D' l- b' C1 N* O) x  p- 嵌入式底层驱动开发技术学习网站AIC_ISNR
嵌入式开发联盟. o4 I* Z* b! |9 p, _

0xFFF8.2110

R
  k% }. G, c% B3 {6 g8 i- 嵌入式底层驱动开发技术学习网站

0 p1 ]1 D; ~( K6 Q# q  b嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Interrupt Source Number Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。9 \; J' k( |+ S
0x0000.0000
. Z2 Y, H- W$ a% _2 P- P. v6 r# U! n嵌入式开发联盟

) _$ B+ b* q1 d; b' c, |/ ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_IMR

6 b" V% n. ^3 l' X4 \mcuos.com

0xFFF8.2114

R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 A: @0 J+ F4 e3 Y

4 X. d  B% l3 Y/ T嵌入式开发联盟Interrupt Mask Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 g1 i' r) O9 s
0x0000.0000
. J+ S' s# C/ c+ n- i( d. a- x2 T嵌入式开发联盟
# r$ ]+ c0 Q8 {$ l# I. S& N
AIC_OISR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 ~* ?; P0 F7 H4 z

0xFFF8.2118

R
- u; P3 P2 o6 Z; T" u! G5 h* W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
嵌入式开发联盟1 ?) r+ i" b: Y: ]" |
Output Interrupt Status Register

" k4 k, [( T/ Y5 i7 g$ A) O; ?- M嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0000嵌入式开发联盟5 w1 M2 ]# a/ `: h

7 t% J: j" s$ M8 y4 ^; R  n; p本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_MECR

( g. E9 t. A1 e" T2 ?- 嵌入式底层驱动开发技术学习网站

0xFFF8.2120

Wmcuos.com+ I; D0 p/ N  T
+ e2 W/ H  k  i& y  g3 s3 o
Mask Enable Command Register
mcuos.com( m" A- _$ q8 L2 v" b

Undefined


! c5 w! g) r- }+ x! N本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_MDCR
嵌入式开发联盟* ^8 G* i5 [' v% r$ A( G2 h

0xFFF8.2124

W嵌入式开发联盟! l$ s, T, P) t/ w* k8 t

8 f3 G1 y* f* h; V1 Bmcuos.comMask Disable Command Register

7 ]/ }/ ]) L$ E; M% O# k嵌入式开发联盟

Undefined

8 |- j, P! G' O6 e, p6 B) u
AIC_SSCR
嵌入式开发联盟1 K/ H/ n! i! j/ [

0xFFF8.2128

W嵌入式开发联盟1 l1 Z* i( s6 o! ~4 C6 A
嵌入式开发联盟- \5 m- `) }+ {
Source Set Command Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。7 ~4 J: Q& v& u/ \, s

Undefined


+ t8 C9 s) w8 h5 X9 j本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_SCCR

! O. z+ _2 Y5 F  ~+ M6 X/ q: j6 K- 嵌入式底层驱动开发技术学习网站

0xFFF8.212C

W
# [( D9 o" X; {8 g2 }4 z嵌入式开发联盟
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习, P7 o3 H+ l2 c2 M, A4 M) }
Source Clear Command Register

) _7 k- ?$ f/ k0 O! j  zmcuos.com

Undefined

- 嵌入式底层驱动开发技术学习网站% g. a6 ]5 q1 B$ l8 Z) w8 @
AIC_EOSCR
- 嵌入式底层驱动开发技术学习网站8 y' w1 F/ G4 k2 b2 j

0xFFF8.2130

W
, ]6 H$ f5 L( ~: b' e: }. Emcuos.com
- 嵌入式底层驱动开发技术学习网站# B& s9 Z' t2 _0 {# c
End of Service Command Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ }8 c) z, H4 O6 ^; F

Undefined

AIC_TEST

0xFFF8.2200

W
: y. Z1 f3 J) N2 S1 d- 嵌入式底层驱动开发技术学习网站

7 G: ^" I1 c. }mcuos.comICE/Debug mode Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。8 o/ j! R1 g- U0 t6 }

Undefined


/ T3 H# \2 r  Y% ^+ m. [4 D本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
* R1 U' P1 e5 Q0 Z嵌入式开发联盟
2 n  h# Z+ C/ Q嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
' A: A, D  K# L3 @" B$ \# Smcuos.com 嵌入式开发联盟2 [# h: G7 R9 H; M
1.2.
& |( G- }: p8 J7 l- 嵌入式底层驱动开发技术学习网站
功能描述
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 [8 l# W7 K, w# v  {8 W6 E6 t3 v; T
8 [# W) i% B" s! i. y
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ [, ^: ?3 S3 P. F, M# _* M0 B5 D
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: T! ^9 m  Y7 u& S
1.2.1.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. Q6 |3 y2 P- x% z- L
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。
$ q1 j( l" y/ Z; m嵌入式开发联盟 - 嵌入式底层驱动开发技术学习网站2 `7 i( v) }/ z$ I7 f( ?: |
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。, d' H0 ^6 _$ t# w
2( Z' j7 U& `& G0 m* f  ]) j
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- G3 g6 `5 K6 v1 H
2- 嵌入式底层驱动开发技术学习网站4 P$ O4 ~1 G8 j  `9 D8 w
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习* i* G- j9 j8 Q
mcuos.com5 t% M) M. {) ~3 H. R. H6 n) W3 ^
- 嵌入式底层驱动开发技术学习网站( e2 z& N1 T8 F: _

: @! p1 m/ V% j5 |( Fmcuos.commcuos.com+ K5 r5 R! X1 ~$ e$ k

/ z+ a7 w7 }  h0 c3 z嵌入式开发联盟源控制寄存器
3 O. n7 P# y. O) B( D. m1 fmcuos.com
0 g% I/ ]! a$ v5 _( n 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 z0 t2 [% ?8 H1 l% {$ R) s; J8 V

# K9 @1 V; s$ m8 O+ l; v6 B
& k$ G5 C) t. O! v' @+ l2 N* d嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
: B+ r& O1 J' z  Amcuos.com
1 P* w' T+ P+ M+ T$ P本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 4 {+ S. J+ b8 ^- T8 r+ S

( n% }1 m  o5 }) b4 K本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.1.1.
5 b1 ^9 x9 M. w% ~- 嵌入式底层驱动开发技术学习网站
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) h/ o8 o1 f+ N  z
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)
, s7 h( [; ]& m- t9 T- 嵌入式底层驱动开发技术学习网站
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.
9 j7 h7 G: L4 |7 p6 w/ S9 _9 e( U嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 ^# K" q' k1 T: O5 t* s* E
1.1.2.
% e( ]3 _1 D; d: }1 j$ o* m: q6 i( jmcuos.com
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)嵌入式开发联盟8 ~, w/ e% u( Y3 y
或者
6 O/ X2 i" [: {& I" O/ {, m8 [( `嵌入式开发联盟End of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)
% a' u( v( a& A4 h: d: m- 嵌入式底层驱动开发技术学习网站
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
. x; `& B2 b" d2 O嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习寄存器 Source Set Command Register (AIC_SSCR)mcuos.com, [5 i9 B9 F5 a6 i$ G/ p
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。
( w1 D! ~2 s" ^/ }8 G嵌入式开发联盟 - 嵌入式底层驱动开发技术学习网站  o$ |2 D# h" I; i  z$ v" J" l
1.1.3.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. s+ Y# R& [* u" `$ x3 R" O
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。
/ x; e  a- n: a1 v- t- 嵌入式底层驱动开发技术学习网站通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。
) q. }6 m$ F% a/ U0 }本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 - 嵌入式底层驱动开发技术学习网站- n9 `5 `3 M" e6 E

7 [8 r1 a( O' b- 嵌入式底层驱动开发技术学习网站
* \0 T& @3 H# Z) ~- X8 _% ~+ a嵌入式开发联盟 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习* w; \% o2 i/ d0 R" v7 x
图 2‑3 Sequential Priority Scheme
# O- u7 a8 q5 p4 F  B7 g6 f- ~* x嵌入式开发联盟
3 @" r5 X2 W, k, L: R9 F/ _# A
9 ^% \" L" M# g$ N- 嵌入式底层驱动开发技术学习网站
; u; M" C' A# C1 h) P& ^! ~# k1 V- 嵌入式底层驱动开发技术学习网站1.1.1.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) P% a+ y  o+ `; ^4 [8 ?
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:
4 l5 n  v4 f- n9 N' ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.- 嵌入式底层驱动开发技术学习网站3 {$ m1 q( `' s9 y! P
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。2 t- q/ f$ ^8 Z: Z* X7 X
2.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' ~- P9 a3 Q; \. S* Y6 J9 x( L4 E& b
通过添加向量到中断向量表来跳到相应的中断服务程序执行。
" R3 R) L$ P7 Z: o- 嵌入式底层驱动开发技术学习网站3.
0 d5 O6 X! B! x$ O# s1 U$ [  g3 e- 嵌入式底层驱动开发技术学习网站
写任意值到AIC_EOSCR来结束中断。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. @9 o4 ^, j+ O: ^) H% n- z
被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。
: A/ i0 @9 V5 O/ I+ L  M4 C9 j5 x6 x与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码0 a8 @5 Y/ @! ]

: P7 }1 W* M0 l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
" Q0 L0 }" `1 w9 k) `- 嵌入式底层驱动开发技术学习网站注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程- 嵌入式底层驱动开发技术学习网站5 u* q3 b$ ?" ^6 z" J
mcuos.com5 E7 L( m  b3 W. `% Q( u! j) j' D
2‑5 Using hardware priority schemeD - L! W. q& ^7 Z8 v  C) q1 X
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习, N( n1 J3 v) I. m1 b' F
嵌入式开发联盟- Y- G+ Y& U* I
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 `6 l0 s+ \; U0 a5 O% C+ {
- 嵌入式底层驱动开发技术学习网站( z. `: N- p+ |% ^0 N

" }6 @$ q7 _" S8 {7 a, Y; ~嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0 h1 K+ ]! p1 @$ @: E* V- \- 嵌入式底层驱动开发技术学习网站
. r( Y, ?( p$ Q0 ]- q* Ymcuos.com
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

返回列表
网页右侧QQ悬浮滚动在线客服
网页右侧QQ悬浮滚动在线客服