返回列表 发帖

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

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

1.1.
& y9 t- y2 ^4 C+ X; [$ v  Emcuos.com
概述
W90P710合并的高级中断控制器 (AIC)嵌入式开发联盟7 B4 W4 E, R& U4 |% ~$ c
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。
- 嵌入式底层驱动开发技术学习网站, t, _6 B9 @- l* Z' z" @& I2 [! r
驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。
9 D4 ^' E  \% f本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。
: `+ A/ W" T0 l! G6 _: F/ Y嵌入式开发联盟' s1 Z- i6 U& O( t) W2 T: R* I" t

+ j( G" o) g) |本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. f( z' M/ c7 J
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- @3 U. p% z4 S  x$ s

; b" E2 o. U' H7 H7 o+ m3 D1 E# w嵌入式开发联盟
5 Z) i" I7 k1 G+ x嵌入式开发联盟

+ N+ ?# e4 O- z  q9 ^. {1 X嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.嵌入式开发联盟- H0 o; J: Z8 j+ Q# m! b
寄存器
mcuos.com: x4 x& f( x2 E
R :嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! ^% L$ H8 Z3 V0 M0 u
只读, W :
8 v3 V- Y7 X+ F嵌入式开发联盟
只写, R/W :
, W) s# w5 o# K6 Q+ I1 x嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
读写, C :- 嵌入式底层驱动开发技术学习网站3 t! [. {& U- a
只可写0mcuos.com: F& \3 _+ c9 M2 B; N' W' j% [
表 2‑1 AIC
3 q8 S' F: R" C* n- |  k: Mmcuos.com寄存器定义+ R6 s* g* j2 L; G( I) h7 g

Register嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ o0 f+ \3 |  L( @  Y+ V) w' G
Address2 B. f3 |8 e1 n: E6 x: _3 h( t) }
R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。4 P2 C& u6 ^1 R2 K5 F1 B# ~

Description

Reset Value
: x! t7 D& O! Q9 B0 V( R% e8 omcuos.com

4 B. l' J4 D2 f3 N& `' Q
AIC_SCR1

0xFFF8.2004

R/W
  E% `0 @7 b( u& L0 {& n嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

# M& Y* ]/ n5 ^+ z8 l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 1

1 ]1 `5 k. C4 N& M) C2 z2 @- 嵌入式底层驱动开发技术学习网站
0x0000.0047
: x$ }7 [! e6 }' b; }# w+ D& J- 嵌入式底层驱动开发技术学习网站


, t' e+ l( k+ K# H9 b% K3 @7 t# K3 C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR2

0xFFF8.2008

R/W
$ v7 U6 A6 m' S( a1 U; Y" A- 嵌入式底层驱动开发技术学习网站
mcuos.com% W5 P9 j3 _" m  S0 D6 x# E4 u
Source Control Register 2

5 s8 O' s( Y# Dmcuos.com
0x0000.0047* Y& E4 x" P/ r: q


) x4 f& @7 S8 K/ g6 h% T- 嵌入式底层驱动开发技术学习网站
AIC_SCR3

0xFFF8.200C

R/W嵌入式开发联盟( q9 Z$ b. N; I7 u9 |' m& M) y

2 M7 H3 Z1 U  K, NSource Control Register 3
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% v2 c7 X* a# b8 L, d3 o
0x0000.0047
3 y9 S: b1 D3 I3 k! v% g2 L4 l嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

- 嵌入式底层驱动开发技术学习网站3 }1 ?& ^# a% o) w3 _' _; a
AIC_SCR4

0xFFF8.2010

R/W
2 W% }& L7 ?* o3 ~8 {mcuos.com
嵌入式开发联盟+ J3 |3 g1 [% _
Source Control Register 4
嵌入式开发联盟8 z/ q, w, b, l" w) x: D4 P' w
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。& D* x! M' e. {4 U

8 Z; f2 u! p2 R; U
AIC_SCR5

0xFFF8.2014

R/W
6 d+ g! W- {( C% ^* ]% o0 D本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站% x/ R6 V7 ]2 R" @. U
Source Control Register 5
- 嵌入式底层驱动开发技术学习网站0 Z  e' |: ]3 Y9 F  N. k0 X* w
0x0000.0047
$ @! |+ o6 K7 f* imcuos.com


0 }  m" T8 w4 V, @
AIC_SCR6

0xFFF8.2018

R/W
+ q# Z2 g" S4 z% e' k本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

. \( V' O0 y! U1 q1 J3 f- 嵌入式底层驱动开发技术学习网站Source Control Register 6
mcuos.com4 _, J: Q9 a0 H6 L/ y& J
0x0000.0047
" r$ Q  \9 }* i: T, d, P( c7 b% j本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


  B  e3 ^4 Q8 i2 r, V嵌入式开发联盟
AIC_SCR7

0xFFF8.201C

R/W
) S; I$ k+ `' jmcuos.com

1 E, M5 P7 P% h8 \& Xmcuos.comSource Control Register 7

; [! y. h2 d( b# I$ U+ v4 r
0x0000.0047
  p# X$ G6 ?( Q5 O3 D嵌入式开发联盟


4 K5 b" G  j2 o5 @* I- Z- 嵌入式底层驱动开发技术学习网站
AIC_SCR8

0xFFF8.2020

R/W
* A  @" r+ R0 @1 I: B' U+ hmcuos.com

/ l' W: ]2 C5 A; j; d3 f( F嵌入式开发联盟Source Control Register 8

7 m: Q, P4 s* P/ z8 r8 p1 W  Z- 嵌入式底层驱动开发技术学习网站
0x0000.0047# N+ o2 ^2 i5 r- _. s2 Y8 F

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% o6 j6 v4 r. V3 y, X, m  D
AIC_SCR9

0xFFF8.2024

R/W嵌入式开发联盟  b7 D) _! s7 E& X( _

. ]. n- ~' U1 Y( {% O1 }- 嵌入式底层驱动开发技术学习网站Source Control Register 9
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习) g2 g8 }* a) b7 ~: ~; d& M/ G
0x0000.0047
2 ?8 u' X% @/ N: I5 vmcuos.com

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' x/ Y* T8 ~, W# Y
AIC_SCR10

0xFFF8.2028

R/W
9 I6 @+ P. Y; v% o$ H; U( Wmcuos.com

5 V0 r9 Z+ t/ U$ K2 a; m3 l嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 10
mcuos.com. H" I$ n0 n# a2 N) m. ]: I
0x0000.0047mcuos.com: S" c; I# M  d) ]


3 _& b2 r& ~% p' ]) {, K  |" [# A- 嵌入式底层驱动开发技术学习网站
AIC_SCR11

0xFFF8.202C

R/W
; U3 k$ A& W- D5 C4 Y3 Vmcuos.com

9 p) o: D/ \8 c& _嵌入式开发联盟Source Control Register 11

% E" U  C( G3 Q# I- 嵌入式底层驱动开发技术学习网站
0x0000.0047
& G9 O0 @; S- N% H: @( l- 嵌入式底层驱动开发技术学习网站


8 s, }% l" t/ t+ o5 r- 嵌入式底层驱动开发技术学习网站
AIC_SCR12

0xFFF8.2030

R/W/ y: ]5 r  H4 O
mcuos.com- |0 ?% ]; a6 X3 @/ z
Source Control Register 12

+ T- j+ n: |( P  K) U6 U
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 \4 Z6 X3 u1 b# S- x+ a! k* |

& J$ ~' k7 l/ n; c
AIC_SCR13

0xFFF8.2034

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。" K/ B' P+ I# }5 E0 Q2 Q+ k, @# t
嵌入式开发联盟: P/ D) \; l- B$ }% J
Source Control Register 13

2 K9 K; \: o" w7 Y1 U8 M! m( {嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.00473 [% s% i0 r7 T7 N$ a4 y2 L/ Z


4 o! N) R3 W5 P4 v! b- T; Q( _- 嵌入式底层驱动开发技术学习网站
AIC_SCR14

0xFFF8.2038

R/Wmcuos.com! ^+ k* @) I6 d4 _7 m, B
3 n- X0 A+ u% A# B, K  c* }
Source Control Register 14
mcuos.com$ A' L, J! P7 Y! E3 Z1 P# g; ?
0x0000.0047嵌入式开发联盟- i* q: O/ f( a+ K% C


; S# M. \- Z/ [% G0 F, |- 嵌入式底层驱动开发技术学习网站
AIC_SCR15

0xFFF8.203C

R/W- 嵌入式底层驱动开发技术学习网站  F$ b. N1 E; D. x- V
- 嵌入式底层驱动开发技术学习网站; _- H' W! V! O8 R* f$ y6 u6 O
Source Control Register 15
; p3 ?( Q8 `9 i' N4 k! D+ ~! W# o# p
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ j1 E& q2 o- ]) Y: p+ S5 \  {

嵌入式开发联盟9 \6 l) {: A6 U
AIC_SCR16

0xFFF8.2040

R/W
* n4 o! {, J& N' o, |1 j. w7 O本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 W  j( |1 `+ C4 `  a
Source Control Register 16

5 ]9 O8 M$ e& ]# ^: @本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
6 e( q: V$ `7 M, u( }$ d嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


2 f/ B% W2 v% w# Y6 \嵌入式开发联盟
AIC_SCR17

0xFFF8.2044

R/W
$ Q( Q8 S# Q! }+ f- 嵌入式底层驱动开发技术学习网站
; o9 B/ t* A( K) o; A
Source Control Register 17
3 f  K" l/ C. [, u1 }; b
0x0000.0047
& Z, x. L+ w- _: l/ H1 L. {2 }" t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

mcuos.com# |: u' l  H4 c1 h# r
AIC_SCR18

0xFFF8.2048

R/W: w$ I5 t* s8 Z  |( F& r7 s

; @" M1 P( W: xmcuos.comSource Control Register 18

9 ^, J- v  j; R
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。4 n; m0 s& ?6 `: ?9 o$ r


4 m  g0 J- I4 U' J# amcuos.com
AIC_SCR19

0xFFF8.204C

R/W
$ V* h/ z1 g% V/ G0 gmcuos.com
mcuos.com' h: B+ b: y1 w8 v  z; g' {/ f
Source Control Register 19

/ o) D+ x0 C+ W1 tmcuos.com
0x0000.0047+ f1 N* C* G0 C/ h

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& _) f; P+ x0 k) r- q3 T5 ]5 i6 }! [
AIC_SCR20

0xFFF8.2050

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) ~8 m$ [) L; E4 A$ Z
mcuos.com/ u; K! ^- p, S2 T: b4 _; O4 e1 e
Source Control Register 20
. B, I* D+ [/ g3 \
0x0000.0047嵌入式开发联盟; r2 U% V2 b" @2 R

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# ^: y/ ]- K8 L. u" C: x5 f
AIC_SCR21

0xFFF8.2054

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 |! d" h& C" L

1 [, C; W2 G1 g) H9 v# }* h# r/ U- v本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 21
嵌入式开发联盟% w9 L7 m1 s( U. a1 ^( G( `" U
0x0000.0047
  S8 A1 K6 }# P4 Z% L本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


2 X0 |- I0 G, W0 K7 B& y嵌入式开发联盟
AIC_SCR22

0xFFF8.2058

R/W
5 }$ ~* h4 K0 ]4 b% q, L. _5 ?mcuos.com
- 嵌入式底层驱动开发技术学习网站- X0 {+ p: g* d- ]* p; w
Source Control Register 22
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 R+ I, t. L3 o8 E  ]" W' h, L  S# ?
0x0000.0047
' S: i% H! T& O嵌入式开发联盟

- 嵌入式底层驱动开发技术学习网站% z4 X4 [+ M$ y
AIC_SCR23

0xFFF8.205C

R/W- 嵌入式底层驱动开发技术学习网站2 C1 \0 A# B0 Y1 J' h

& `, N; O* v" W9 m9 K+ B% g嵌入式开发联盟Source Control Register 23

) u# u( ?5 c* H* g9 k8 D嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047嵌入式开发联盟* ?3 H, m: l. H4 f! h7 ~/ V


% t/ n0 y. ^$ A2 l. k- 嵌入式底层驱动开发技术学习网站
AIC_SCR24

0xFFF8.2060

R/W嵌入式开发联盟6 H* P3 p1 E, i! G6 i/ e

7 Z8 `, L1 ?$ t& i- p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 24
" n0 q6 G2 O  x/ x
0x0000.0047mcuos.com5 P& N: S0 j6 b0 |5 i  A


# ]" T. g" [  O8 p6 m本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR25

0xFFF8.2064

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 A# k2 y. z9 {8 s( y( j
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; x4 x8 ]2 v( g/ V* }9 H+ o/ E/ Z
Source Control Register 25

: r) D& k! D1 ]" n本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" ?& }- d' Y' u  i


/ L" t4 {3 H6 \; O+ n, g. ]本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR26

0xFFF8.2068

R/W
, e* ~6 X- s2 w% \  h4 y/ H% L% `嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
mcuos.com+ @7 q; `( J! H/ _9 a  f) V4 G) X- c
Source Control Register 26
- 嵌入式底层驱动开发技术学习网站4 C" G, a" P7 J* Q
0x0000.00476 ?9 y2 l+ ~4 P9 ~3 U! ^. z( E/ \

- 嵌入式底层驱动开发技术学习网站5 K' X& i( y0 F; n* P# K/ P8 \& c2 H4 `
AIC_SCR27

0xFFF8.206C

R/W
0 q8 z) J6 G% o嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站5 G+ S- A8 c2 L' I6 h
Source Control Register 27
嵌入式开发联盟+ T* K& P# u' M+ l. Y2 W4 x+ n
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。, L6 c( B( A; D' B+ B5 ?

$ X4 _, K9 _2 l
AIC_SCR28

0xFFF8.2070

R/W嵌入式开发联盟4 I! J4 d- a! B( e

+ Y. R5 e  \5 p$ V, Q( a/ {本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 28

" d& ?& w- s) T% x5 R5 e6 c- 嵌入式底层驱动开发技术学习网站
0x0000.0047  h# H5 _) s. a' f3 j# s' l, l

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。8 C% w. h8 ?) F( y
AIC_SCR29

0xFFF8.2074

R/W嵌入式开发联盟8 y0 L$ K# J* g5 T+ H

" f, A  o3 D% s嵌入式开发联盟Source Control Register 29
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。8 d8 U; R# y- c: X- j1 y
0x0000.0047
6 b4 |& h1 \# M7 e' e% B5 S嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

- 嵌入式底层驱动开发技术学习网站) ^, T5 _/ A1 ?2 v
AIC_SCR30

0xFFF8.2078

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2 m, Q. G, q/ ^% W  B' e5 y/ R  R
2 l# ?, E! P! n' a+ L: {% ]) u! T
Source Control Register 30
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* b0 E# i2 s; B3 A; O3 I  y: N
0x0000.0047嵌入式开发联盟% O+ c+ y5 o# {9 R0 J0 m

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 ~- R5 t' s, ^5 ^
AIC_SCR31

0xFFF8.207C

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- v7 ]' Y, b! Z- }" l; V

+ B: }" u9 j8 p" W  e( N- 嵌入式底层驱动开发技术学习网站Source Control Register 31
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# v0 U, }& s) c3 H% U) t* K
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 r6 O$ Z5 J1 d

: q0 O6 C" j$ A3 j$ Y本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_IRSR
- 嵌入式底层驱动开发技术学习网站% l  C4 \, P! s" X# M" C$ ?

0xFFF8.2100

R
- o$ s0 s/ a9 S5 N$ R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
$ A2 N& T3 d" E( F) k1 o
Interrupt Raw Status Register
- 嵌入式底层驱动开发技术学习网站% n6 D  d" P% h' w! \
0x0000.0000mcuos.com6 V  `  m5 v1 Z- @/ S; m
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% `2 U0 y# o! B. L3 \  p
AIC_IASR
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 n3 V( u' ~1 T8 E

0xFFF8.2104

R- 嵌入式底层驱动开发技术学习网站# `# T# X& V7 f4 A* ]  f$ p0 x
- 嵌入式底层驱动开发技术学习网站, Z9 b2 h7 x" [6 X
Interrupt Active Status Register
mcuos.com  h2 \9 y. w0 e* _4 K7 r  q
0x0000.0000
# B, m$ _2 ]: R7 t; v5 R- 嵌入式底层驱动开发技术学习网站

1 m, r8 \. J5 ~- D- 嵌入式底层驱动开发技术学习网站AIC_ISR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习, B9 y6 ~  g* Z1 y8 H; H

0xFFF8.2108

R
$ K2 c1 B8 }8 h- 嵌入式底层驱动开发技术学习网站
嵌入式开发联盟2 `" {9 r, D: U! c
Interrupt Status Register

" X4 i* c% u# v3 E: h
0x0000.0000
( S9 M8 r7 g9 I5 M; E, z* I+ K' W' H

5 Y8 b/ s! h$ S: d  A$ s嵌入式开发联盟AIC_IPER

' B; b* G, \2 m6 f嵌入式开发联盟

0xFFF8.210C

R
" \! D9 s! W3 k嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

! I! x0 C7 b+ y, w% R$ b8 g1 z- 嵌入式底层驱动开发技术学习网站Interrupt Priority Encoding Register
嵌入式开发联盟0 P6 u+ q! X$ v. n
0x0000.0000
7 S( v+ S3 P7 ?! \! x5 t: _, ^本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

- ~- i& [0 c- a; i9 X7 xAIC_ISNR

; a- }& k% ?) g* |- 嵌入式底层驱动开发技术学习网站

0xFFF8.2110

R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" V+ P; r1 f0 r1 a* D
: H- A* h! `7 {0 n, r( f" I7 l7 }
Interrupt Source Number Register

# c2 c: E- o1 j- 嵌入式底层驱动开发技术学习网站
0x0000.0000本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 G1 A8 c: h: m! a

4 i1 |, y; D/ E6 ~* G- 嵌入式底层驱动开发技术学习网站AIC_IMR
mcuos.com  f( C; `" E  R' G; h

0xFFF8.2114

R
" L8 H( I  C% {- S( C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站9 v# h: ^; s  c: d3 }2 U
Interrupt Mask Register

, s* A6 W* g2 }8 [* Q1 \% y7 j- 嵌入式底层驱动开发技术学习网站
0x0000.0000
1 O' a/ \" V3 K, |, i- W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ F0 H- B7 f0 C( K; s
AIC_OISR

# I. P( H, t! a& T9 E2 \# Q* f嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.2118

R
3 r) I) a' Y. q- 嵌入式底层驱动开发技术学习网站
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; _( u$ A  T* F( j' A3 t
Output Interrupt Status Register
嵌入式开发联盟% e; H! \9 y8 ~4 O  w, X' K7 _
0x0000.0000
" k% T' w7 k" J- 嵌入式底层驱动开发技术学习网站

# u& @* Y, B8 ^$ q6 c9 O2 g6 P嵌入式开发联盟AIC_MECR
嵌入式开发联盟$ e- Q9 H3 A8 I

0xFFF8.2120

W- 嵌入式底层驱动开发技术学习网站0 d, U4 Y! t& J7 X% h- p

7 t. d/ G( ?) {* H6 r- l5 O本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Mask Enable Command Register
嵌入式开发联盟( A1 p1 O$ u0 ~

Undefined

mcuos.com4 M5 t7 c1 {- e/ c: M
AIC_MDCR

0 d7 N0 e" R4 S- g# ?: S7 I! s4 {本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.2124

W
2 A9 s8 D( d/ ?4 e2 y& X

5 s4 v$ k% y4 [9 g- q% c' ^$ u- 嵌入式底层驱动开发技术学习网站Mask Disable Command Register
- 嵌入式底层驱动开发技术学习网站+ z' Q9 ?; v/ Y; a, i

Undefined

- 嵌入式底层驱动开发技术学习网站1 X& p( E, E- E* J; o2 R* u
AIC_SSCR

2 Y. [+ G  ]9 m$ F

0xFFF8.2128

W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 H! @! ]/ a* u  o
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% V! n! o/ ]- e- P2 w6 v
Source Set Command Register

5 _9 i/ P8 A* F5 y9 ^" {mcuos.com

Undefined

* |" {. k5 ]; F$ {" a4 T
AIC_SCCR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& H8 o0 _8 t2 b; ^9 u+ X: i; _

0xFFF8.212C

W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% v+ k+ m! \+ o/ ?" F) b
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. Q2 p5 z( o. x
Source Clear Command Register

! H1 P0 W! j' u/ ?$ F. d6 p, l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

Undefined


7 Z1 E# z; P6 Pmcuos.comAIC_EOSCR

3 ?" }+ `. R; f1 X/ I4 O. |# }嵌入式开发联盟

0xFFF8.2130

W6 w0 [2 D, E( Q

1 A. y  B/ ?) K3 l) N" x( @8 _- 嵌入式底层驱动开发技术学习网站End of Service Command Register

, k7 F. p$ u+ O" h: B$ h+ x嵌入式开发联盟

Undefined

AIC_TEST

0xFFF8.2200

W
7 z& [. u2 X" H2 Smcuos.com

1 s( ^: q( S% M( c* ~4 R  _, Q9 G嵌入式开发联盟ICE/Debug mode Register

3 \7 N4 C/ K5 o( W  u2 A

Undefined

mcuos.com3 B4 F8 e$ N+ }' ^: H/ s- d" u
mcuos.com- j9 Z; [* r$ C5 P+ O8 T+ X
嵌入式开发联盟& x/ y4 {- P; ~4 N3 E

+ l3 l% m  t6 e( f5 D本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 9 ?9 s4 j# R5 ^" ~! p9 _
1.2.
! _2 j! i- b6 N( ?% _- 嵌入式底层驱动开发技术学习网站
功能描述

% p7 D4 M+ X8 V嵌入式开发联盟
8 [6 j& ^% n8 x' L- 嵌入式底层驱动开发技术学习网站
- ~9 b$ H$ w" W9 W+ O- 嵌入式底层驱动开发技术学习网站

! l9 e# L( O, B7 B! _$ X. v. ^. Z嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.2.1.- 嵌入式底层驱动开发技术学习网站5 x% Q1 A+ h1 V: j
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' P- s" C4 Q' G9 t. u
嵌入式开发联盟5 m, [- L( }! F) m" y. e% I

1 }) r8 g" X3 h9 q/ g+ t) u. }; C2
& c' k# k' Y( Y9 ^+ k- 嵌入式底层驱动开发技术学习网站本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* s* p1 Q6 h: q- d% l6 k, B
2- 嵌入式底层驱动开发技术学习网站1 o8 b+ Q2 C* `+ h# I
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 }" g' G( c8 u# u

0 o' h% G8 ~& `: n+ K5 `2 C- 嵌入式底层驱动开发技术学习网站' {  v# ], N( E% D  O2 e  q

' c, Y3 X1 w1 M! L& ?2 }; O% g: e3 J嵌入式开发联盟
! D7 G8 N5 s3 W6 P- 嵌入式底层驱动开发技术学习网站嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- |& o; g6 {% P6 A
源控制寄存器嵌入式开发联盟0 S' U, }! c% {- Y! F: k
- 嵌入式底层驱动开发技术学习网站2 {# q3 ?2 D0 P7 q" ^1 g
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 a7 _# |5 n( n
mcuos.com, `  ]4 `" s! B, A& i) Q) ]2 B
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 I# P# b$ l9 n* A- ^1 ^

: q; H3 x2 y9 w5 c# dmcuos.com本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' T% T, \$ U" \
- 嵌入式底层驱动开发技术学习网站- m9 }! S% i0 v8 u

! L& g9 m8 b1 W) P* |3 P# D' o8 [) F嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.1.mcuos.com- l/ m7 s! @# _
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)
( b  \  K( `6 y" b9 h/ y嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)mcuos.com  a/ m2 n; Y- u+ u: q
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。  ?: d. ?$ S4 h

! v" M* d- b9 y% ]4 r( X嵌入式开发联盟1.1.2.
  L9 M, {, v6 c. \/ c嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)
1 ~% n$ q% f' W5 K8 [2 |% m嵌入式开发联盟
或者
" ?- X6 N$ [' ~& a8 q2 m2 ?' C  a: [! v本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。End of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" l" O" L3 z" p2 G; I
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
! ]1 ~: w. L$ o' y* [嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习寄存器 Source Set Command Register (AIC_SSCR)
; A2 F  |: B; E- c9 a: C嵌入式开发联盟
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。 mcuos.com' c- U- I3 ~) U  q+ b, V- Y  w- k
嵌入式开发联盟& f( F: `6 X4 s8 Y9 r
1.1.3.
8 `3 G* d6 B1 w2 I, D; t; t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。
  e2 L( H1 B4 x; K1 z嵌入式开发联盟通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  T4 ?7 P, ?" g
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' ?4 n; |1 B  j8 r4 z; W- I7 l
mcuos.com2 N$ q; x- p, }" e$ k9 F

& e2 I2 H! G5 lmcuos.com 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* k  h" q/ k, h8 d1 a
图 2‑3 Sequential Priority Scheme
% }, N( N4 L) }2 N7 F" [( R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。$ l! X; H' w4 ~: E, K" A" M
, D0 V+ e/ H. I2 U& j. ~
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# N+ p( l0 W; c, i
1.1.1.
# {; K. E8 H1 h7 Z9 `嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:
- u/ D# K* n. Y% i4 O嵌入式开发联盟1.
9 k9 P3 c! \2 w- t  h- 嵌入式底层驱动开发技术学习网站
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。7 O3 ]3 ~' o2 E% Y; S' K
2.
6 v' j0 C* D* ~7 M7 F8 s& V3 g- 嵌入式底层驱动开发技术学习网站
通过添加向量到中断向量表来跳到相应的中断服务程序执行。+ I) P* i6 l4 r; D
3.
0 K% T, d/ Z* g5 `4 a, K& `mcuos.com
写任意值到AIC_EOSCR来结束中断。
% L( y0 P$ ^1 f2 a& Y% w嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。
1 T- |! u, M% {7 m; G8 v- 嵌入式底层驱动开发技术学习网站与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码
- K2 C3 Z2 U7 v0 N" s) bmcuos.com- 嵌入式底层驱动开发技术学习网站- Z/ w) V( Y5 q( _3 B1 B: v6 v
- 嵌入式底层驱动开发技术学习网站- B& }5 M4 i, E. F5 [
注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程5 B8 a  y! |3 Q, F

! l# Q3 ~0 L. D$ o嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 2‑5 Using hardware priority schemeD mcuos.com$ n3 k5 V* Y! \6 x( |: p
- 嵌入式底层驱动开发技术学习网站# k( w  u2 `# K, d' P* R8 t

7 G, v7 ]0 ^1 ]9 I9 p1 Q本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。mcuos.com0 ^, v- P. \5 l# d

9 l6 l+ L* w8 B8 `8 A本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 4 ]# T7 T1 D( H2 b' C1 [
嵌入式开发联盟# R1 H! m' I4 n' G% V# i7 V

* w" E( N* i: F& E1 F+ }- 嵌入式底层驱动开发技术学习网站
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

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