返回列表 发帖

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

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

1.1.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ _. M% S) O4 b; G$ s% S& |
概述
W90P710合并的高级中断控制器 (AIC)嵌入式开发联盟6 }' ~1 g: O' ?. w5 i
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。
: ~6 Q* b2 U; u/ D3 N! R9 A
驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。
9 h" C& a) E% X- {, c- 嵌入式底层驱动开发技术学习网站尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。- 嵌入式底层驱动开发技术学习网站  F4 `' _% s5 l) N# }. d

  ?; @7 y7 x) I4 Ymcuos.com
- 嵌入式底层驱动开发技术学习网站4 G2 B& U) D) b4 d1 U) d  ^4 H
嵌入式开发联盟: P$ J; _, Q+ C7 y8 n; [% B

9 o. |5 M% x. ?7 s% G4 C嵌入式开发联盟
- 嵌入式底层驱动开发技术学习网站3 g3 t/ j. S& X( p" z
- 嵌入式底层驱动开发技术学习网站1 F0 g( u) d; U, X

, S6 p' ]: d1 h8 i) c; M$ s- 嵌入式底层驱动开发技术学习网站1.1.% V9 ^$ h: ?9 b9 G
寄存器

- O, P' C* I$ A5 P6 s  m嵌入式开发联盟R :嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习* \, N+ n9 T* M6 h
只读, W :
/ I+ {% ]- h; Z  H+ R3 [0 f嵌入式开发联盟
只写, R/W :
8 k" t2 e; Q, ]3 x嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
读写, C :嵌入式开发联盟/ J* _: m$ ^: ], @8 f
只可写0嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ h5 ?; ?0 W) Z4 Q% ~  P) f# R
表 2‑1 AIC mcuos.com6 _7 ?0 W# H8 I% H/ U
寄存器定义
# x4 W/ E  S- j: I9 @

Register- 嵌入式底层驱动开发技术学习网站- v% n* b+ {! k9 w4 ?7 z
Address嵌入式开发联盟( B& x  z% Y. C1 ]* M  S2 ~
R/W
4 Q0 E; r/ [) u, Q2 @

Description

Reset Valuemcuos.com* v, `3 n* `  t" L5 |* l

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! P4 w  m) I7 ?* H: @
AIC_SCR1

0xFFF8.2004

R/W
' U; `4 T5 N% I+ u3 ]1 J/ q( q+ Y- 嵌入式底层驱动开发技术学习网站

1 n, N/ d, I8 N; g0 ~Source Control Register 1
mcuos.com. o- d: b6 ?* ^' z
0x0000.0047mcuos.com* r( u, c  [" n# g+ v

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) i$ D$ q9 X9 A9 l
AIC_SCR2

0xFFF8.2008

R/W嵌入式开发联盟# h9 U8 I) ^  _- W( ?# p
嵌入式开发联盟$ l6 \2 R' M1 P9 A% a
Source Control Register 2
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 o" B! B9 q4 {# V, I' M2 l0 z
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- F' B  y' g) |% _/ N

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习* p8 z7 f8 v& K& M9 t+ I3 ]7 C* n+ |" @
AIC_SCR3

0xFFF8.200C

R/Wmcuos.com* K) V" o- w6 s) i# M+ X
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- g% H4 _  e+ g: }+ x' c( k3 f4 s
Source Control Register 3

0 C3 m6 Y. ?; U9 wmcuos.com
0x0000.0047
3 {; a1 H/ d. m; Q" P9 g4 P( E嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

- 嵌入式底层驱动开发技术学习网站: i* u  ^4 Q5 a/ U! P: y. o
AIC_SCR4

0xFFF8.2010

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ w  u: S! q; r) H* w* [, D

. [) L: r$ r# t' D- T% m0 V/ h; MSource Control Register 4
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( e  i2 d0 [3 g
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. r, W! I  L2 a1 M2 r/ r


' H- Z) F) \) Z5 X5 O5 w
AIC_SCR5

0xFFF8.2014

R/W嵌入式开发联盟9 B7 B  Z7 a' O$ ]

% f! a$ L. n: \& ?3 d: E- R; F) n嵌入式开发联盟Source Control Register 5
1 L; [& H) t/ a. l% y/ G( K) y5 f
0x0000.00475 ?1 Q/ v( O/ e

- 嵌入式底层驱动开发技术学习网站! Y+ d4 C8 H7 x0 p
AIC_SCR6

0xFFF8.2018

R/W
# ?4 Y1 k* K& ?8 ~! u7 B2 x6 q7 a本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站! G/ x2 D% l. v3 `* W. }
Source Control Register 6
- 嵌入式底层驱动开发技术学习网站/ u: ~. q1 N. O5 ~5 L/ T: S
0x0000.00471 b  O6 s+ }1 w" y0 }


/ A2 ~5 {7 ~* H7 q& C, g嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR7

0xFFF8.201C

R/W嵌入式开发联盟5 R; c5 T0 v' }5 u& j0 \8 B# `

3 {. J# M9 j1 @" [) Tmcuos.comSource Control Register 7
嵌入式开发联盟- u/ x& ^1 g, c9 b! ~. B4 a
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 k2 g  M- }5 v; k9 R2 Q. J

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ `+ c2 q1 w9 F$ S$ S- q
AIC_SCR8

0xFFF8.2020

R/W
& I( A7 h5 ]' Q. W* n6 {嵌入式开发联盟
mcuos.com+ l6 P2 O# w7 R' v! Z% m
Source Control Register 8

( }% g0 Q5 u& o0 c/ H0 I# f+ f) K/ C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047mcuos.com, ^9 `6 r, P& ]- B

mcuos.com# S+ B! |- [! X. b
AIC_SCR9

0xFFF8.2024

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。& J5 a( G) G, V6 A7 K

) x+ _: V3 G  K+ t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 9
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' C) U' O' O) p
0x0000.0047
6 M% [) l  C# S/ O- 嵌入式底层驱动开发技术学习网站


  X/ w3 c- Y( a3 Q* Z嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR10

0xFFF8.2028

R/W
/ d1 D0 M1 o7 U. \: x$ W! v2 _! ]- 嵌入式底层驱动开发技术学习网站

' ~* m; Q/ J: C8 K8 k) i& c% r- Smcuos.comSource Control Register 10
' X' j' @  I  `4 n
0x0000.0047
, l3 K! l9 D5 V+ zmcuos.com

- 嵌入式底层驱动开发技术学习网站8 M! B* ?6 f1 [7 S& P5 |/ W1 B5 n0 q
AIC_SCR11

0xFFF8.202C

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 F8 f/ ]# }3 O% b% T$ i: n) [

- h# n  H* t7 U9 U+ T/ Z嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 11

' V# O  C% X: B+ A( q+ T& j嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047- 嵌入式底层驱动开发技术学习网站6 H+ G: \3 M3 Z* I! T0 C

- 嵌入式底层驱动开发技术学习网站3 d5 _1 i8 P1 ^: n/ H6 u6 e0 i4 i
AIC_SCR12

0xFFF8.2030

R/W- 嵌入式底层驱动开发技术学习网站, i) y( z: u% T: O  ~' e
1 S% f1 N& N' q4 t4 Q
Source Control Register 12

4 U0 W; B, N1 t" p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047
5 @$ f, G, T4 H* Y7 r5 |本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 A( m: ?7 V9 I4 h( k/ d
AIC_SCR13

0xFFF8.2034

R/W
4 O$ \' V& J* g* Zmcuos.com
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。; F  F0 f* p' z) E; X1 ~2 a5 `$ @- A
Source Control Register 13
嵌入式开发联盟9 b( G7 y. S, O9 R  U# o( [, h% M
0x0000.0047
' b1 a' k5 O  O


# @) O" b7 a! c' M6 f) k本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR14

0xFFF8.2038

R/Wmcuos.com; u5 F, n7 U8 v7 I( X# s0 j1 }% @: N; D) G
- 嵌入式底层驱动开发技术学习网站+ F2 [) o! P% z) v( X( c
Source Control Register 14

5 I1 C4 x7 t8 ~/ m4 e6 T: b( Z- 嵌入式底层驱动开发技术学习网站
0x0000.0047mcuos.com3 A5 w9 F5 Q) B

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 E$ }- c* Y, F8 @
AIC_SCR15

0xFFF8.203C

R/W- 嵌入式底层驱动开发技术学习网站2 |5 H3 R8 l. d/ K5 w! v

; O. l8 w1 p& y6 Q% W; ^- y2 C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 15

+ \  s: V4 `* U% R' A嵌入式开发联盟
0x0000.0047
7 g7 z$ f* P( M# t/ M' y嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

mcuos.com; s: N* G, f5 ~' `" q! `. P# V
AIC_SCR16

0xFFF8.2040

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。$ k& C/ G* _) x2 h+ M1 x/ \

3 c6 g" q9 Q5 t; \& K嵌入式开发联盟Source Control Register 16
7 w% \; A6 B! C0 {  ]$ q" c. [
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: r6 a2 c' S  ]) I, _

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 V3 J) c  s$ R/ q
AIC_SCR17

0xFFF8.2044

R/W
2 K7 C0 ?5 n4 y3 p3 K嵌入式开发联盟
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ Q/ N" g7 d1 w: q# @% `
Source Control Register 17
mcuos.com( d! W' F4 Y0 d
0x0000.0047
1 [$ ?8 T- [2 {9 g- 嵌入式底层驱动开发技术学习网站

- 嵌入式底层驱动开发技术学习网站* ^0 P  O6 E' y) T  b$ T: k. c
AIC_SCR18

0xFFF8.2048

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 F; u7 Q) c! f9 `

3 V, E' p3 b0 Z7 MSource Control Register 18
mcuos.com" `1 R% }6 M1 r
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 I  }0 m# m/ {  e6 ?* W7 k* Q

2 G( p0 g% {" M0 V
AIC_SCR19

0xFFF8.204C

R/W
7 l! |' _( Y; ]9 A8 ]- 嵌入式底层驱动开发技术学习网站
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2 i( F: C" K# r! \
Source Control Register 19

  \7 u, L8 W' t3 ?. Zmcuos.com
0x0000.0047mcuos.com$ O9 S- V2 L6 J+ o- k

* x* u/ R" l1 M0 |. B
AIC_SCR20

0xFFF8.2050

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- N! i0 `$ z1 l8 S

) m6 }; g* x4 `& i0 Z, p- 嵌入式底层驱动开发技术学习网站Source Control Register 20

4 X7 ]! i7 V$ M' O嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 ?+ d  I  S8 ]# L


( M/ K5 U# q) r& W% \$ ?0 m- 嵌入式底层驱动开发技术学习网站
AIC_SCR21

0xFFF8.2054

R/W
, K) \' n! m: d本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站5 y, L4 H* y2 \1 Z# _
Source Control Register 21
6 e, B4 d9 W/ i: i, J
0x0000.0047嵌入式开发联盟8 V1 @8 l2 }: I; v' j" u/ I' n

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- \0 _: q  t! S' B# D. J
AIC_SCR22

0xFFF8.2058

R/W嵌入式开发联盟( m: I, M6 \" N
mcuos.com# ]  ?) }, U1 R( G! G
Source Control Register 22
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 S. V" n, N1 Z
0x0000.0047- 嵌入式底层驱动开发技术学习网站( o8 P. V6 B$ l, h4 @


  S% `! A3 M- K! I! a3 r! Q- D, f, Umcuos.com
AIC_SCR23

0xFFF8.205C

R/W
: m1 Q, z+ e0 G: }7 w嵌入式开发联盟

/ `: w( r7 k8 ]: u本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 23

0 Z* g+ W9 r& D9 r! z嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047
! D- N$ }  @2 i2 P/ F2 r, k5 O. D; N+ Jmcuos.com

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ O* X) Q! Q  f& f, s- J& U2 e
AIC_SCR24

0xFFF8.2060

R/W8 ^4 D# u& z+ T. k4 f- G1 p4 c" r1 j

. A, T/ x2 g, C+ A; G6 K0 m0 ^, C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 24
7 L. m: G; O( Y
0x0000.0047
3 L. y1 P# ~5 `8 U6 B% R6 j% h) Mmcuos.com

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# Q/ u8 l9 ~4 o% H$ Q
AIC_SCR25

0xFFF8.2064

R/W
0 H9 D# d6 R8 X  a' U- F2 {本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

( S, d( p6 u6 w' V# JSource Control Register 25

3 x. v+ d; g7 t3 Q* [3 Z6 U; T' Q0 K
0x0000.0047mcuos.com5 F* @% ]7 x+ J& X9 h

% ^5 C$ ~6 t2 A: i( E
AIC_SCR26

0xFFF8.2068

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& E! }7 m% k; U
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 v1 p9 l$ q! V
Source Control Register 26

! R) \$ v# L% \3 x5 K6 Y: W1 m
0x0000.0047
2 o5 X" l# l/ K- k% c. z嵌入式开发联盟


0 [9 c- p$ S& j* b  ymcuos.com
AIC_SCR27

0xFFF8.206C

R/W
, v3 ]0 g! \! ]! S8 X  a- c嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站- k& i( H  n# H2 }2 d* ]
Source Control Register 27

2 m5 r; @4 N% H+ Z- L7 }0 T# R嵌入式开发联盟
0x0000.0047
3 ~2 F5 T2 o9 S; g) b; b嵌入式开发联盟

mcuos.com" _% h2 B6 |- g) Q
AIC_SCR28

0xFFF8.2070

R/W嵌入式开发联盟6 G8 ]7 H: [; v: w  k
嵌入式开发联盟0 _$ W! ~6 H' M! s. R6 v
Source Control Register 28

7 B9 t, b% R" d9 H: {: R; ~" t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
8 L8 d$ X& v6 `: f! u嵌入式开发联盟

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: F9 D5 w4 V  G! p! G9 l3 v) D
AIC_SCR29

0xFFF8.2074

R/Wmcuos.com( u7 t9 _+ K4 h* ?

: k' B" G( x* y, c# y! x0 V2 cSource Control Register 29

5 G0 C$ \0 B% b本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
( ]! ?0 e& m& {8 t" R  O

- 嵌入式底层驱动开发技术学习网站; m0 N9 N$ _& G9 y
AIC_SCR30

0xFFF8.2078

R/Wmcuos.com  i% P; ?7 ~! J# C( C2 s! K' l

/ t; _0 @) |1 l  ]嵌入式开发联盟Source Control Register 30
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 _0 h+ V6 s+ \0 b" c3 e
0x0000.0047
7 J9 Y: J- C, ~$ ^: n3 D$ c: {" ~% v嵌入式开发联盟

mcuos.com7 q- Y  q0 k. {% J- W
AIC_SCR31

0xFFF8.207C

R/W
" `6 X5 e" b+ D3 p2 K- \嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

# S$ n- _8 d% w/ I  S) Umcuos.comSource Control Register 31
. b5 V' u! y$ O
0x0000.0047- 嵌入式底层驱动开发技术学习网站9 e- y, W) X3 W' W1 b" ]1 U

5 ~0 P0 i5 v1 n! E- Imcuos.comAIC_IRSR

. Z/ W3 p3 B; @  C' {6 k  j' l嵌入式开发联盟

0xFFF8.2100

R) d3 L- f, O: ^6 M: Z

! M  ~- w2 O# B4 L- V; Q8 q* mmcuos.comInterrupt Raw Status Register

0 E* P( K0 e; p( R3 p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0000
# w1 p  L% u9 i7 X* i  v9 r, `  _9 p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 z3 V0 |% |9 }+ Y9 ]0 L2 T5 ^
AIC_IASR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习, h2 q' F# ?  i& Y

0xFFF8.2104

R
) N4 c- c5 G( z$ Y7 O嵌入式开发联盟
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 f0 ?- ~9 l% Z5 v+ T) e  f: o
Interrupt Active Status Register
- 嵌入式底层驱动开发技术学习网站; p' ?' ]' [  P
0x0000.0000
: s4 T" Y7 ~0 |
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; @4 ~$ _' e, q
AIC_ISR

1 {  Y& [6 b. t, g# Y8 T本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.2108

R; D. w5 V5 H+ I7 g" b7 d+ B' c9 _

  N; T* I7 j2 o6 z! l% y& G嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Interrupt Status Register

* v5 q! B9 R) N  G# D$ C$ ]! _, n0 W
0x0000.0000本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! h  U- I6 Z" Q3 D0 o% v. z3 s% J
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% Q% E% S7 d8 ]9 k
AIC_IPER

) V8 b5 n; v, ^- [- 嵌入式底层驱动开发技术学习网站

0xFFF8.210C

R
8 G1 |/ o$ d1 K- o8 b8 k3 M嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站1 N6 l2 W# p7 L' W, ]- J
Interrupt Priority Encoding Register

* ]  q' {; N& s. P  `: wmcuos.com
0x0000.0000嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习) S: k: k5 ]9 X  t* ]' Q

/ L  h% K( W& G8 ~" R  Vmcuos.comAIC_ISNR

! O4 f" h9 }$ a嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.2110

R
( ~- X5 n1 p3 `* O4 X. J2 |嵌入式开发联盟

" N1 r1 m& d# Q. \7 d. J嵌入式开发联盟Interrupt Source Number Register

/ z3 V' }8 j6 U3 H- 嵌入式底层驱动开发技术学习网站
0x0000.0000
$ B8 O' Z* W( X: C) c" Smcuos.com
7 B, O" k% m& G( B2 O; e
AIC_IMR

2 U3 m9 y  n& I- y- t  @. @

0xFFF8.2114

R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- _# y8 k0 w) @2 l& n
- 嵌入式底层驱动开发技术学习网站! E6 D# n; a, B9 _8 [$ L
Interrupt Mask Register

, u3 V4 E2 N, h2 G. `! S- 嵌入式底层驱动开发技术学习网站
0x0000.0000
$ @; l2 u8 }& g( c+ F( e! a. Z
- 嵌入式底层驱动开发技术学习网站/ f) v, M" V' P- ~: Y0 v. ?6 f' k
AIC_OISR

* c% U' ^# G/ z4 C" B1 v+ Q本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.2118

R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 |9 A  O% {! O
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 k! z$ @' v" R/ d% F
Output Interrupt Status Register
mcuos.com9 N: P3 Z7 s5 ~. I6 ^
0x0000.0000嵌入式开发联盟2 S  Q8 \  g* a
mcuos.com0 r0 n5 o! ?6 U' {; G1 _
AIC_MECR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: G! @7 a% `- e0 b1 Z

0xFFF8.2120

W嵌入式开发联盟# d3 O- u- ~! ~* i' ?' Y- ?# v& A
mcuos.com7 g) ^" F0 v2 p4 z
Mask Enable Command Register

6 c$ Y9 D+ w9 {* K$ C( n本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

Undefined


0 i" ?- ~% @8 k! t; t- 嵌入式底层驱动开发技术学习网站AIC_MDCR

- G. `! Z5 }6 Q; U$ P' U6 y, w- W

0xFFF8.2124

W
* `# ^( v* V$ \5 G3 b; l嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

7 V) M% X/ O- X- 嵌入式底层驱动开发技术学习网站Mask Disable Command Register

8 Z( U0 O3 l& F9 X% f9 f本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

Undefined


" [: _/ ?6 y5 f9 i0 x1 sAIC_SSCR
- 嵌入式底层驱动开发技术学习网站2 H' G9 z" @- y; j( C% L

0xFFF8.2128

Wmcuos.com$ D. b1 W) H! n) `) e* Q4 ^0 z; |5 Q

9 S0 b! Q. X% k9 G. H本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Set Command Register

+ @4 w6 l6 f6 X- 嵌入式底层驱动开发技术学习网站

Undefined

嵌入式开发联盟# m/ ^# V  {# @% m
AIC_SCCR

( o" s6 G  g8 }4 P本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.212C

W
: ?- a& X+ d3 }' @& n- K- 嵌入式底层驱动开发技术学习网站

4 Z+ ^* Z' l4 K) ]& d. Fmcuos.comSource Clear Command Register

9 `# ?* v9 S7 j& rmcuos.com

Undefined

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ B7 T' Z( i3 C( W' F% ^$ w
AIC_EOSCR

7 l" E# p6 o; d2 r4 ^

0xFFF8.2130

W
% B% K, A3 d: I7 g本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
mcuos.com% P. l0 F/ W8 @. J3 V( q/ [. n; z
End of Service Command Register

. }; |3 C5 r- V0 l$ \, r4 K1 [mcuos.com

Undefined

AIC_TEST

0xFFF8.2200

W
  v$ `8 J, z3 {( ]5 i- 嵌入式底层驱动开发技术学习网站
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 c3 |( o+ k2 i; \8 d0 m# R9 o
ICE/Debug mode Register

; r- d3 a9 m: a" _

Undefined


) {/ e* U1 l7 @2 Y0 h" F$ t: ?- X' n1 \嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 嵌入式开发联盟; c  S2 D3 e- U' H) o, N  d
嵌入式开发联盟$ w: a: E2 m# B

# j1 U0 U& t* G, }mcuos.com
# W1 W3 A) S, b( A本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.2.
" \' s! M4 _. C3 V3 P0 C嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
功能描述
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习9 ~) Q- Z1 q( W1 @# A
4 S* U+ K( d# J" b! i) Y

! j  w) Z. l0 y0 l1 Gmcuos.com

* T5 n4 c' k0 T$ Y2 Y3 b$ Bmcuos.com1.2.1.- 嵌入式底层驱动开发技术学习网站" w( e/ D/ d( g7 m
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。
! l9 u- B6 Y7 p, Q! u8 M. \- 嵌入式底层驱动开发技术学习网站
9 t5 J9 V$ j# @: u0 R% d# R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
) I" {1 \! b) W$ ~$ U! T$ Hmcuos.com2
2 s7 x3 S; z3 v: |+ H+ J  }8 ~mcuos.com
7 b% A) C2 @0 m2 O/ F" u嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习25 n2 d* v# X- F. v% Y' z

1 ~! j# i% u# l7 U: l, H& ]* ?- 嵌入式底层驱动开发技术学习网站
* l0 I( z; L( V. k2 N本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
; k7 o4 i5 x" n嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
6 @: [% W0 D! t, c6 qmcuos.com本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。. T8 n% e7 M1 \/ q" ~

* K4 V" _7 P! L' n- J. m- 嵌入式底层驱动开发技术学习网站源控制寄存器嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 d3 F* i: r, e* k- i# a& g9 b8 P4 d
" G/ s$ A+ \# K8 Z/ c
( |$ G6 K6 g  n: S

( `0 A5 r6 K1 X- _# n嵌入式开发联盟 - 嵌入式底层驱动开发技术学习网站4 i1 c1 S' z3 a. _# J! ^6 c2 C
- 嵌入式底层驱动开发技术学习网站6 `  M2 A  u  k
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! [% ?/ G3 Z2 d. o6 [

" B2 v( f8 R$ F6 D, gmcuos.com 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( _6 f# n! Q1 s" u2 ]+ x% H
1.1.1.
# b4 d; A5 I5 P1 V8 g嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)
0 {$ R# s# ]0 P% A' D1 x/ ymcuos.com
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)5 K: C* d$ P3 @% H
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.
; z, K  t+ R9 n) @' w嵌入式开发联盟
+ U" x' U# [3 e4 ]9 l嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.2.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 w" ^% T: I: `  r& }# ?
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)嵌入式开发联盟8 y- c8 p1 ]& f1 w6 f3 t- c1 A
或者1 P0 V5 c4 r4 p8 y
End of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 _9 L1 a9 {. z" |! u. H+ A$ M# `# q
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
  X- ]- n7 P1 {) L4 q# {寄存器 Source Set Command Register (AIC_SSCR)
& r" ?8 I2 s8 _$ emcuos.com
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。
- v, ^! D/ |( w. T- T8 n
2 M# ?7 s" Y: F. s  I1.1.3.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ e5 n( w3 E2 a! V# N
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。
# K* l, l) E2 c: C- X2 c7 S本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。
7 X; F0 Q$ d7 K; p3 f" v) U, rmcuos.com
4 @4 C5 s; O9 }$ I- 嵌入式底层驱动开发技术学习网站嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习( x5 Z% w7 x2 g7 v

" V+ T  e% _2 F" B+ b4 l嵌入式开发联盟
6 V* L9 M: I7 R图 2‑3 Sequential Priority Scheme嵌入式开发联盟/ E" I1 a7 Z; g
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。" p( w9 o6 ?5 n

, M4 c  t8 Z& l/ Tmcuos.com
: i& ^  W/ a/ i' Z# H9 v本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.1.1.$ t9 i; |2 j; C& w7 M. g) J1 E
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:
( |. B  o2 \9 J; s0 {: x& E本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.
5 t; m3 c6 K. ^* P本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。
/ v/ ~' ], b. @/ f# q嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2.mcuos.com, v% m) H- g( O' G: Y
通过添加向量到中断向量表来跳到相应的中断服务程序执行。
* T7 D0 j5 b4 T$ X3.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( h( O% f" J, T; O8 _  L7 A" y
写任意值到AIC_EOSCR来结束中断。
2 C9 n- l$ r  K0 x( w% g( E# B% vmcuos.com被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。- 嵌入式底层驱动开发技术学习网站5 o8 p. x5 K& g
与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码嵌入式开发联盟9 K+ `; V1 q  g6 z
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& J- B  v5 F% Y8 y8 l
mcuos.com* S( q; A! D; X5 O
注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程
0 h1 \' Z; q4 ^, I/ O( x. \
) @& E# T9 F3 x+ K本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 2‑5 Using hardware priority schemeD
3 V3 B0 K! p: p本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。嵌入式开发联盟9 O7 s. V4 L1 P5 r

. \; H5 W: I# _% \7 X' @本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。嵌入式开发联盟0 L) w9 |/ H4 @% A8 D
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% x' I" V3 t+ f9 v
mcuos.com3 n& n3 ?6 T" t  j9 }5 {3 \
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( y/ N. @- T3 m1 E

9 d1 p9 [* `) X0 f# zmcuos.com
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

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