返回列表 发帖

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

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

1.1.- 嵌入式底层驱动开发技术学习网站/ }& T- }9 _( ^
概述
W90P710合并的高级中断控制器 (AIC)
8 K2 J2 Q  v9 {0 J2 amcuos.com
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。

7 t. I! j! H- i  P* D+ \# n驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。
- s/ c: J# C  B9 A0 v( [嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。
! G! v. x" W3 P/ d嵌入式开发联盟嵌入式开发联盟& r4 R* ?1 K8 B: B

& o5 \$ l5 [" q0 l0 o本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。mcuos.com5 T, ]" k' o$ X* ~% a; o' ]( k6 s

. I9 @9 T9 ]0 E. b) |嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

7 {, f% Y' P6 O" ^3 y嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
. w$ R3 d" |* q* L* P3 T) i- L嵌入式开发联盟

6 I( ^- r1 h8 D4 P& @$ U嵌入式开发联盟1.1.
- W7 v% k& }" U1 R" J) @- 嵌入式底层驱动开发技术学习网站
寄存器
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 D. _, H  `. O: N/ K, U
R :
! u) I! o  O% H% ]/ D: N- 嵌入式底层驱动开发技术学习网站
只读, W :
& I4 ]; ~) Q/ p3 t嵌入式开发联盟
只写, R/W :
& s# Q  G: B8 h' @* L9 U
读写, C :嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: Y& _7 J1 A, x0 P$ D( r9 i/ t
只可写0
1 H1 C, c% t' P4 F, Pmcuos.com表 2‑1 AIC
1 t! h( T2 S5 O) B. ^嵌入式开发联盟寄存器定义
. ~% V2 b2 M. d& J- 嵌入式底层驱动开发技术学习网站

Register
% W4 E3 A1 i) r3 @' E$ a( jmcuos.com
Address
, a; v( R" f  O0 L" l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
R/W
( m* P) W8 D: {. e! S' W- 嵌入式底层驱动开发技术学习网站

Description

Reset Valuemcuos.com0 V6 w( z$ l0 V# k5 d* _


/ F. t3 C$ U6 g嵌入式开发联盟
AIC_SCR1

0xFFF8.2004

R/W
: y; X, X" v9 l" q7 O嵌入式开发联盟

, m% U2 Q" H% [0 D* {7 d1 U8 y嵌入式开发联盟Source Control Register 1
嵌入式开发联盟+ @( e1 A& V2 Q; ^# K. [- z, W8 \* m
0x0000.0047
# I; A9 d3 V  n4 ^


9 G2 o$ m" C' V% T  _' @- 嵌入式底层驱动开发技术学习网站
AIC_SCR2

0xFFF8.2008

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- x4 h  I  e$ e1 N
嵌入式开发联盟! [+ T1 J- M2 K, \
Source Control Register 2

/ i+ F. Y) J2 P/ s( j
0x0000.0047mcuos.com' {3 Y. h# X3 a$ K' R


: o- _1 Q% c% x
AIC_SCR3

0xFFF8.200C

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 i4 i3 Q% L9 d
- 嵌入式底层驱动开发技术学习网站( D# o. Y. K6 @* y9 E$ h3 D' {
Source Control Register 3
嵌入式开发联盟, J" T/ v) f2 \2 w2 x# |
0x0000.0047. f  @$ F% h  l: ?/ m, k- L

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) Z% {2 Y- e, V5 h+ ?% g
AIC_SCR4

0xFFF8.2010

R/W
6 H6 O7 r2 B& c* x: D" Y- 嵌入式底层驱动开发技术学习网站

: I! u& v7 ]  y7 z7 V, {嵌入式开发联盟Source Control Register 4

" J7 x* z5 {3 `. z2 W- 嵌入式底层驱动开发技术学习网站
0x0000.0047mcuos.com2 }3 T4 \1 K0 B


. x9 ~0 _8 e/ x8 H7 T; E! Y嵌入式开发联盟
AIC_SCR5

0xFFF8.2014

R/W
# O8 ?* I$ T# L本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 f0 m( l& x7 M) R6 X
Source Control Register 5
- 嵌入式底层驱动开发技术学习网站+ U5 i3 _7 M8 e3 O# E
0x0000.0047
! q. P+ l2 m8 `- S. O- 嵌入式底层驱动开发技术学习网站

- 嵌入式底层驱动开发技术学习网站! P/ G2 ?, I. o  b
AIC_SCR6

0xFFF8.2018

R/Wmcuos.com: s1 K' y. q3 E" a; u0 O5 y) {
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 R. ^) k# n' m) L% k$ ^
Source Control Register 6

# t, P7 V  q1 O9 L- Y8 U- 嵌入式底层驱动开发技术学习网站
0x0000.0047mcuos.com! S: I/ B- A" L1 k# S" G

mcuos.com5 l& W) I- A, x
AIC_SCR7

0xFFF8.201C

R/W
0 x% \* v: h) U& E
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 @1 I3 z/ T0 Q; z! }) a
Source Control Register 7
嵌入式开发联盟: I9 A- r4 `6 A& a
0x0000.0047- 嵌入式底层驱动开发技术学习网站8 {! F0 v- W* g% ]

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: g3 b" i0 ~9 y' H0 T  P& o
AIC_SCR8

0xFFF8.2020

R/W
7 }$ G) b% M* ]8 Q( ^$ o8 B嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
嵌入式开发联盟& N3 S- ?- l9 O. N' L
Source Control Register 8

4 N. x  k4 G+ }- g& |嵌入式开发联盟
0x0000.0047
5 u& H% y2 O5 s- |8 X) hmcuos.com


/ q8 o  T9 ^" a( p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR9

0xFFF8.2024

R/W
. U! f3 L0 _  o7 ~3 v0 H- umcuos.com

! o& T; {- G5 E3 Q/ C+ LSource Control Register 9

9 j0 Y& T( s6 ^* l+ P
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。9 G5 X& U4 V6 g" x: G


+ ^( h2 ]' S' S3 e/ D' A4 B6 ^- 嵌入式底层驱动开发技术学习网站
AIC_SCR10

0xFFF8.2028

R/W# D. f0 S/ r# O# t. J  O7 E) b
- 嵌入式底层驱动开发技术学习网站' H& }- q; P# ?+ e
Source Control Register 10

( e- s9 i( f. v+ r. P' a, P- S+ o本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
3 b% ^( ?  g; g5 `* d$ @/ d8 \嵌入式开发联盟

嵌入式开发联盟4 ?3 X, w+ n; m
AIC_SCR11

0xFFF8.202C

R/W
/ ~( |" r9 y  Y+ p嵌入式开发联盟

% i6 \" j* g) j: z6 C. g" S# G, H嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 11
嵌入式开发联盟, L/ ?& I3 H$ A! W
0x0000.0047mcuos.com" Z% S$ m/ S( H& m7 j

- 嵌入式底层驱动开发技术学习网站  B! s& ]$ s1 s. J8 ~9 V9 @5 n
AIC_SCR12

0xFFF8.2030

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2 }" o4 ~- Y! p" n9 d. V

2 |! A* P! v) v9 K$ l# n本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 12

- J) |8 p1 _6 a- a. |8 l  Wmcuos.com
0x0000.00470 k5 D  {/ W( m# C. S


6 a8 g9 Y4 J8 f; J2 Z( P- 嵌入式底层驱动开发技术学习网站
AIC_SCR13

0xFFF8.2034

R/W
$ [& D7 D8 H2 _8 j! p" P嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

+ a( p: A# z- y嵌入式开发联盟Source Control Register 13

& [9 K8 I1 C# W0 M( Z) G& k本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047嵌入式开发联盟4 I  j* I5 ~( J


' }9 G! P' m) _嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR14

0xFFF8.2038

R/W
  O6 }' W, ~" ~. I3 d嵌入式开发联盟
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: e- W2 U9 ~1 E! D
Source Control Register 14

& u! O7 v1 A$ E- 嵌入式底层驱动开发技术学习网站
0x0000.0047
8 b/ d0 x1 P- E2 R; t. N% A嵌入式开发联盟

mcuos.com; i: F7 e# K! c8 i) Z( _- }
AIC_SCR15

0xFFF8.203C

R/W
- p0 j. I; g/ P8 X  z嵌入式开发联盟

% \- C) t; ?6 t# T+ P* W嵌入式开发联盟Source Control Register 15

5 a% V$ J0 I1 l7 M0 T" X, |7 o嵌入式开发联盟
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。# \4 Y7 m7 D0 i2 ?6 L


* P# s4 g5 n* B7 c9 g! r1 d嵌入式开发联盟
AIC_SCR16

0xFFF8.2040

R/W
: q4 ?7 g; y1 ?( F' \( r; o) ]嵌入式开发联盟
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。& V2 D2 q6 s9 y' t2 G. [3 T* ?
Source Control Register 16
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 z! b4 ^) L$ W2 G
0x0000.0047
& p+ w* ?" M8 A5 D* ^


1 D! G6 G% l0 s
AIC_SCR17

0xFFF8.2044

R/W嵌入式开发联盟* ]0 d; ~0 _# X4 S; \
mcuos.com( S( i5 ~5 Y+ @  U2 s, s" ~2 }# I
Source Control Register 17
2 ~: ?/ x3 w2 w) t
0x0000.0047
7 c; d1 E6 ?+ d: ^$ [

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 N  d$ v, C$ g/ @+ ?1 |
AIC_SCR18

0xFFF8.2048

R/W
* }$ n% k6 C. I: B; P嵌入式开发联盟

( j8 ]7 V) `  r8 q' f+ b+ Y嵌入式开发联盟Source Control Register 18

5 }3 C! |  o9 `9 l% j- 嵌入式底层驱动开发技术学习网站
0x0000.00472 x$ o7 A9 b; @8 E* b


# c  V9 X1 a. v7 T6 Omcuos.com
AIC_SCR19

0xFFF8.204C

R/W
# |0 O# E& R0 m, N. X7 w$ N+ ~- 嵌入式底层驱动开发技术学习网站

  Q& i+ W; X2 ]3 a" iSource Control Register 19

8 R( T" z" @, x. B! C- 嵌入式底层驱动开发技术学习网站
0x0000.0047
8 C4 H- |% }! I& s8 F$ X8 {( f本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

- 嵌入式底层驱动开发技术学习网站- }, C7 A  X- y$ h+ q2 H* q' G2 f
AIC_SCR20

0xFFF8.2050

R/W
8 d% d* F1 ]. Y, b. {0 w1 ]2 N4 {嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站- ]7 Z) y0 z* c2 f
Source Control Register 20

* A: k) y" l; g) G5 Z3 D  m: z
0x0000.0047
. ?  E( K9 A) l4 K" G( j5 M

- 嵌入式底层驱动开发技术学习网站9 p. P- d* n3 ~  n6 E+ y& B% t
AIC_SCR21

0xFFF8.2054

R/W嵌入式开发联盟/ R. K* B; _1 J3 _& s, {
' B% y( K% ?3 j
Source Control Register 21
- 嵌入式底层驱动开发技术学习网站0 o. \% }, C$ s7 V' |
0x0000.0047
, v& S+ G8 ]* W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


7 o* e4 M7 F3 Q  N$ g( B* s本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR22

0xFFF8.2058

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% U4 F2 y4 c0 k5 j0 T/ u

, `, A" ^+ D$ Q+ C/ p: c本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 22
mcuos.com- s! X- r, ^! c- L
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. t4 @5 O9 R! j: G/ u7 C7 y

嵌入式开发联盟# Q0 q; g- J3 L5 M, Y% P
AIC_SCR23

0xFFF8.205C

R/W- 嵌入式底层驱动开发技术学习网站* D1 h$ ?7 z% O  E- u. O( D/ |8 R

  n6 X4 C& h& y% a嵌入式开发联盟Source Control Register 23
嵌入式开发联盟# k1 z+ A5 S$ G; D8 u5 p1 G3 G
0x0000.0047- 嵌入式底层驱动开发技术学习网站" \) P' z3 y# W& V" b) G

mcuos.com1 o; ^3 S1 p5 s6 b  U  \7 h: Y
AIC_SCR24

0xFFF8.2060

R/W
% c+ Q. o2 L) nmcuos.com
- 嵌入式底层驱动开发技术学习网站2 @0 Y" W0 k* y( D& {/ t9 e; Q4 h! `
Source Control Register 24

5 v/ @* P8 d" R" P
0x0000.0047- 嵌入式底层驱动开发技术学习网站) U8 L& n2 ]& ~& U% r5 b+ V9 V

- 嵌入式底层驱动开发技术学习网站2 k. J0 l9 a5 r' b
AIC_SCR25

0xFFF8.2064

R/W
$ {0 ~: U/ H: ^+ z& \% {8 o本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

5 y5 a' s4 ?. y* V4 q本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 25

( b2 F3 W6 M! U: w2 `
0x0000.0047
: }% u2 v7 K5 j3 ~; x) D: ymcuos.com


7 D% d  X; D# w' o1 b9 c+ m
AIC_SCR26

0xFFF8.2068

R/W
8 F( l3 k# A- k( G嵌入式开发联盟
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( r- e5 U$ Q% P3 X" U3 j2 W8 ~8 F
Source Control Register 26

3 [( C& [: S* t. I5 e& S3 A
0x0000.0047
1 m: E" m$ l2 _; O# v$ Q0 x嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

- 嵌入式底层驱动开发技术学习网站; H5 T: \& `4 |3 ?  {
AIC_SCR27

0xFFF8.206C

R/W$ b5 @3 C8 j/ o
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% }* {- b/ ~! l/ h. C/ ~
Source Control Register 27

+ ], t0 i( X$ ~1 h" P) g$ `mcuos.com
0x0000.0047mcuos.com/ k" G2 w& R. l# d0 s0 f  M


  v9 n& p# p; W  x5 B: O- jmcuos.com
AIC_SCR28

0xFFF8.2070

R/W
+ @; {1 j; f# p+ X. c. f/ K嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

+ m( O/ ], S8 t* r  ~) P嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 28

" ]0 H* D  T6 N5 o! f嵌入式开发联盟
0x0000.0047
6 b8 _+ w8 L' P! F4 i% F本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


) v( |7 U' o) i% J) W4 |# |9 S3 N本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR29

0xFFF8.2074

R/W& _$ w& S( D1 N/ J- ~8 ?4 t
mcuos.com2 |$ Z# @# ~2 d- U7 O/ }- ?& Y3 Q
Source Control Register 29

' T. J4 A* f( g/ t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
  W; n7 ?" o$ T' p

0 t2 S* \0 h1 W3 U2 F0 _- ~
AIC_SCR30

0xFFF8.2078

R/W
% [0 M9 ^# V  p( T/ g6 d/ k嵌入式开发联盟
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 _% P" z3 c5 n
Source Control Register 30
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 r- f9 i" ]7 Z1 ^0 p9 d# o- o( P' O
0x0000.0047嵌入式开发联盟! s8 v! Z# R. m' S9 f8 H  b* J

嵌入式开发联盟+ M/ j2 J" J1 T0 D
AIC_SCR31

0xFFF8.207C

R/W
# s4 B/ K! k7 `- h# Q8 P0 M嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" F& c6 X7 G, K; m
Source Control Register 31

* W4 z; U; S) \7 d8 U' w2 L5 A
0x0000.0047嵌入式开发联盟* w2 m3 T$ ?/ E

5 e5 K2 l) R/ R. [嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_IRSR
. K  }) x' c) X9 N! o

0xFFF8.2100

R
9 @+ x; I6 n) r# F- 嵌入式底层驱动开发技术学习网站
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  T8 ~' I* @! Y' W
Interrupt Raw Status Register

: |$ d' }+ E$ V" w8 ?7 Z
0x0000.0000嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习8 C( ]' Q* v6 e$ H7 N% l6 m/ v
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: a1 j( n! B2 g0 F
AIC_IASR
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* s& x6 D  I' P4 |2 [6 Q

0xFFF8.2104

R: _3 a  u( y: y4 ?0 @
mcuos.com: _* U/ l  i' l* B
Interrupt Active Status Register

. m+ @! O$ G8 |  |5 }嵌入式开发联盟
0x0000.0000
! f" F8 G/ g6 W7 u  i嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 V0 t+ t& @& X
AIC_ISR

  k) `5 W4 ]( A1 i; N嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.2108

R/ {5 o2 n9 p5 x
嵌入式开发联盟0 Y8 M0 ?5 z$ X2 y/ q7 f7 A8 O, v4 J
Interrupt Status Register

: S7 ~6 }5 B( m) Q( N- J- 嵌入式底层驱动开发技术学习网站
0x0000.0000mcuos.com  s, G: L6 e4 C2 ?

$ P, k: K( U* Z) T( B. A8 A  tAIC_IPER

; C( V. J7 O+ Z& _- j* p0 T1 j

0xFFF8.210C

R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  y. V0 k8 H2 |+ _
嵌入式开发联盟- ]0 ~7 V! m4 ]
Interrupt Priority Encoding Register
5 j9 N! @! c2 O, z  q: }
0x0000.0000
( R, V/ T2 _4 x& e6 e3 emcuos.com

2 Q/ H8 z0 s$ T/ Z嵌入式开发联盟AIC_ISNR

5 O5 P1 [. g& T/ N& jmcuos.com

0xFFF8.2110

R
# s( ]: O; }2 k9 {5 X. I嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

4 q7 `) t( h3 |嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Interrupt Source Number Register

& a. V# j8 P7 m! i; s- 嵌入式底层驱动开发技术学习网站
0x0000.0000mcuos.com4 o( @& O" A1 A) g! Y/ g6 x
嵌入式开发联盟' X* |( H' O6 d+ P, e7 x# y' l
AIC_IMR
- 嵌入式底层驱动开发技术学习网站* k3 q# W0 p, `7 X/ z' S

0xFFF8.2114

R
* Z+ ~9 b* `! C* m! k. ]mcuos.com

* w, T1 K6 H& a& l4 j0 ^mcuos.comInterrupt Mask Register

$ B$ S, A9 v, l! d$ e( c8 L- 嵌入式底层驱动开发技术学习网站
0x0000.0000
6 f0 |: d( S- Z3 S& i7 N1 j: I" a2 _本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

: G4 x3 U- `( i7 d: J5 p4 O0 e( T嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_OISR
5 Z) T+ c* O& d" w

0xFFF8.2118

R
1 P! e& I% y4 K1 l- _( d本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
! Z. r) @8 }( y% K1 ~
Output Interrupt Status Register
/ Z, t) b; N) r% X8 f& o
0x0000.0000
: K  b3 D  G! j+ f5 X5 h; E0 W+ k- 嵌入式底层驱动开发技术学习网站

) O4 c' l. J- A" Jmcuos.comAIC_MECR

- W* z( [9 W  a5 _4 e) I; t) f. @- 嵌入式底层驱动开发技术学习网站

0xFFF8.2120

W
7 G% X4 q' j# i+ P4 H' S5 c5 j2 Smcuos.com
- Y3 q4 Y, u# N' [! E& |
Mask Enable Command Register

) N2 ~  H6 h" Q4 {; X- 嵌入式底层驱动开发技术学习网站

Undefined

嵌入式开发联盟1 p3 c4 [+ g9 i/ ?0 h! d+ l
AIC_MDCR

& O: R. \0 l( P8 x

0xFFF8.2124

W
# B- Y9 g( q' K% D- o- 嵌入式底层驱动开发技术学习网站

, @  o. U4 Z4 s, v; N- 嵌入式底层驱动开发技术学习网站Mask Disable Command Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  z! V1 c- ~. I  x

Undefined

- 嵌入式底层驱动开发技术学习网站3 d& {/ W$ n: S0 W5 c9 g" R
AIC_SSCR
mcuos.com& c7 k1 A0 m2 U' n' X

0xFFF8.2128

Wmcuos.com. R9 m' `- l( Z) r: K
1 F7 o) r/ G* I
Source Set Command Register
嵌入式开发联盟. K0 j2 v; R2 v+ i# K

Undefined


- M  c3 G6 _1 w嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_SCCR

  [$ U' y8 C# C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.212C

W
4 x+ G# I" t( B/ K6 b1 pmcuos.com

- ?/ s4 |7 H* r4 fmcuos.comSource Clear Command Register
% c0 G7 }0 F8 o( P/ }5 N

Undefined


$ {' |% a2 S: y+ O; E9 B7 zmcuos.comAIC_EOSCR

9 v0 O0 t4 r% W4 Y5 f: c- 嵌入式底层驱动开发技术学习网站

0xFFF8.2130

W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 G1 P9 d8 A- ^

; u* F; {! i1 Y% F嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习End of Service Command Register

" W- w: n6 C9 R- _7 W4 Q: U

Undefined

AIC_TEST

0xFFF8.2200

W
& d" W. s* r% o+ @9 i# `7 W- 嵌入式底层驱动开发技术学习网站
% W6 z' A( R6 d. v9 U
ICE/Debug mode Register

: b9 }& s8 ^# C4 Y9 x+ P+ R+ s5 k嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

Undefined

- 嵌入式底层驱动开发技术学习网站3 {# W9 q0 k5 U. F; X+ y* Z

% q6 k3 K# K6 T' R2 I嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- 嵌入式底层驱动开发技术学习网站5 I. B/ }# Y3 W3 R4 e
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ P, Q& `1 S. G

# d- Y6 j% C! p8 X. s嵌入式开发联盟1.2.5 P) l( o2 K4 G2 l. A* G
功能描述
mcuos.com- }2 M. P+ b/ s. b: A+ j  d
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 q# R! M: p! ^# l
: C/ n. h; d1 L! e( M9 W, U( ?" s! p* `

9 L8 }% U9 X* v! e- |, Z$ l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.2.1.
. W0 Q! w3 O( l  }$ C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。
1 r/ }4 |0 V3 f; j% S5 Smcuos.com 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( N. m  {; W" d/ c; S( K' }

  y( [; L0 Q9 emcuos.com2
5 L4 u; o9 l( F7 |+ C- 嵌入式底层驱动开发技术学习网站
* j0 {' q( @0 C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2
. j$ m; A8 H; ]1 ^$ e' i1 N9 h* n& d3 d6 U+ d- 嵌入式底层驱动开发技术学习网站
/ Q/ @3 C7 L( y' z2 L7 a( x嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( r" F3 O) L2 I( T

6 Q. y& q7 \4 c嵌入式开发联盟
8 X4 C1 k: q$ g/ x- 嵌入式底层驱动开发技术学习网站mcuos.com9 C+ A8 t) D1 t6 r) b3 ^5 V

# l1 H4 F* C* q6 [- 嵌入式底层驱动开发技术学习网站源控制寄存器
* Q/ V  p$ @) H嵌入式开发联盟; ^" e$ d8 D& q& u& k) `- Z3 c

) C' i6 t5 M! n1 y' T  n; p- 嵌入式底层驱动开发技术学习网站 - 嵌入式底层驱动开发技术学习网站8 [. @' A9 A( K7 R+ G! y
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。" C0 u# f$ I! g3 E. o% }

) J# O* ~/ O6 Dmcuos.com嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  e' T) t( w7 u& B' r: e& c4 `4 I
mcuos.com0 S; d- Y& h1 I" c
mcuos.com  j3 t9 c7 u3 d$ M4 ]& Z
1.1.1.- 嵌入式底层驱动开发技术学习网站9 T& q  n* j: N# Q; `
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)
+ }8 T: v$ y: Q" w9 p  k/ Y% q- 嵌入式底层驱动开发技术学习网站
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)mcuos.com7 s5 J, ?* c0 W
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.嵌入式开发联盟  g+ J& N6 N1 [7 b) w9 w. M- f6 H# |

7 D8 r0 i( C6 |0 T1.1.2.mcuos.com& N3 P3 n% `9 h# {! W  b
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)
- Z1 i3 u0 [9 b2 `* \1 ]: I/ c
或者嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; m4 N: l  C- J/ |1 {4 D2 V
End of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习8 X- y0 m: d* c7 S* p& [
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
; H$ J. z% \  [5 x  V0 ~6 i; P寄存器 Source Set Command Register (AIC_SSCR)
; T9 v/ I6 s: k' n# w( S, V本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ U+ w, C. _1 [: \# s
嵌入式开发联盟% c" h0 N8 r, X) [3 y% a6 ?
1.1.3.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* b/ b* w& d3 F5 i5 l4 u1 t& W6 w
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。 - 嵌入式底层驱动开发技术学习网站' e9 {  k/ t- E! l/ x
通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。- 嵌入式底层驱动开发技术学习网站0 p7 G4 x+ b0 @' x
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 W; N' U/ E- N2 T5 Q

: @' F- Q# R# L; ~: u嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 mcuos.com, l4 U& w3 z% v" n5 ^* @0 r! {& C2 y. a5 e
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) H4 j5 `: i+ n) i7 r6 f/ y
图 2‑3 Sequential Priority Scheme
2 g! p2 v! \  _7 w/ k. ?
7 M/ J" z  @/ w/ \; k: o- 嵌入式底层驱动开发技术学习网站& O# R: _6 O+ `# ]' \% G+ R3 U6 D" `

0 O( n/ D- H( X1 Q, n- q嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.1.mcuos.com4 G. M9 s, k# z; b& V, J8 x
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习8 c. V6 U# p, o, i3 C
1.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( }- {0 ?' e& U) S* O: V4 ]
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。
% A1 }6 G5 H" D/ P2.嵌入式开发联盟! l1 U' m3 U9 n- p
通过添加向量到中断向量表来跳到相应的中断服务程序执行。
( }1 A/ U. J( I! A- 嵌入式底层驱动开发技术学习网站3.- 嵌入式底层驱动开发技术学习网站2 @1 o. m! B3 V: x8 C
写任意值到AIC_EOSCR来结束中断。
+ w% s4 I' U! K; v) l, q6 rmcuos.com被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。
6 D  T9 ~7 D- Y' }9 z% V: ~mcuos.com与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码
6 F6 x  j2 _* }( \+ ?* T2 `嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习嵌入式开发联盟* \3 `" J& n4 v# [
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' F  }) h. j  \. [, z- Z( f
注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程mcuos.com8 A/ l" |( [7 V
mcuos.com+ b0 [! A6 ]( E! K! M
2‑5 Using hardware priority schemeD
# E: H+ e1 y9 ?
6 g( ?  c! v; h* n( K嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
) P" a3 w1 Z  w2 B! ?1 I: D嵌入式开发联盟mcuos.com$ s0 ?0 |/ Z0 E* K8 a) I2 k+ W

8 A: n7 ~& G/ U1 v7 ^9 ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
  {: r. \5 B) o$ M$ d: }; E% e本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。mcuos.com2 X8 Z- O, i" \* ?

; Y1 @6 t8 s! A! \* D& H$ n本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

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