返回列表 发帖

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

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

1.1." |1 z5 D" F7 R" y, c8 g6 ]& E! W
概述
W90P710合并的高级中断控制器 (AIC)
$ ], e2 n! _1 K2 B3 b3 n嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。
: J6 a1 m/ s2 C1 o9 G
驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。
5 e; _5 z' }' @. a' V. u本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。
) X$ e! }: A6 ?# N7 \本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- 嵌入式底层驱动开发技术学习网站8 b4 n/ ]# l9 s2 |& A. @$ c

* A9 U; L( C& j$ v: p4 R* I- K本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 w# O: ?$ b# r) j
- 嵌入式底层驱动开发技术学习网站: [* s3 V3 c: Q3 Z6 f% E  Y
嵌入式开发联盟# ?- z2 ], _/ s4 N; z$ P
mcuos.com% \$ F! H0 H/ U; O; H; ]1 N

' g3 H' {' y6 |. p1.1.
& E. w, f) J, \! \嵌入式开发联盟
寄存器

& a# G1 w9 k! k; r, S# \嵌入式开发联盟R :
1 W! r4 p5 @+ a/ O) ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
只读, W :* n" d9 E3 u" A- V/ L& j# X3 R
只写, R/W :mcuos.com! E4 B$ K0 z' i
读写, C :嵌入式开发联盟' o" F( W) M! J9 e
只可写0
. `! X' p/ F2 ^6 o3 A9 u% K- 嵌入式底层驱动开发技术学习网站表 2‑1 AIC mcuos.com, v/ p- m3 [5 X9 u/ C
寄存器定义- 嵌入式底层驱动开发技术学习网站  f$ H& ~% l4 o

Register
; m& q  L) J# d* I嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
Address嵌入式开发联盟. g, p, k: Z& x- S: {# i) s6 M
R/W( H8 S) _7 e1 F0 o! ?+ n

Description

Reset Value本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* x" J$ ?) I6 G8 w1 n


$ X$ b2 B( ~& f2 G; F/ o- 嵌入式底层驱动开发技术学习网站
AIC_SCR1

0xFFF8.2004

R/W) K" |5 ^( _, V  W. F
嵌入式开发联盟! c6 s' R: z9 [* _; k
Source Control Register 1
- 嵌入式底层驱动开发技术学习网站! V, s- E1 `' [/ [" z
0x0000.0047
: b; N9 f; u) d. D* [

嵌入式开发联盟2 A) E  {/ d' l  [
AIC_SCR2

0xFFF8.2008

R/W
9 q0 q: N) [1 h$ ~
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 C  g: n; `# I3 U
Source Control Register 2
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。$ f7 ?3 _9 m9 ?0 N# y. M2 c% w
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 }, K  R1 k# \( N9 i2 j


4 D9 r# [; o8 r% u: Z2 d' m
AIC_SCR3

0xFFF8.200C

R/W6 P& ]& Q0 D$ y  w2 W: H
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习; d- }& r6 C* N/ f$ \$ I
Source Control Register 3
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ ^% J* U3 c8 c# |9 O
0x0000.0047
  f& a1 \+ s; h: g( L: I# a嵌入式开发联盟

嵌入式开发联盟0 p4 k$ \2 j" U, K  s
AIC_SCR4

0xFFF8.2010

R/W嵌入式开发联盟6 N# c) \6 f( [( F

# s* n1 K/ ]$ W  |  O5 `嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 4

3 k' s4 L1 h1 D* m本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
7 t7 k7 h, h! h8 q: X- 嵌入式底层驱动开发技术学习网站


6 i( }; X3 l8 Tmcuos.com
AIC_SCR5

0xFFF8.2014

R/W
. ?( c; X  R& W" K8 B( |" q" ?; l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

# e  O9 `9 C3 o7 u) y% l, m嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 5

4 h4 ]% o" |8 q/ }1 q- i& Q, l嵌入式开发联盟
0x0000.0047
5 A. @- s0 x1 L) g8 b; t) |- 嵌入式底层驱动开发技术学习网站

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 e1 f( N  Q' q) J* y
AIC_SCR6

0xFFF8.2018

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ Z# l/ o' B  ~8 \' Y1 I

; \1 n- X1 _% t& v: |$ r本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 6
- 嵌入式底层驱动开发技术学习网站. e2 ]0 A0 [; n- V# S
0x0000.0047
3 t8 E5 x0 A9 y( H, y& }6 c本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


/ @" Z- `: I  v: C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR7

0xFFF8.201C

R/W
% F+ V9 L7 U, O" }# @嵌入式开发联盟

" W6 I- {( [! g' N9 f嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 7
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# l  e, i; D, \& |3 V; e+ Q, ^
0x0000.0047
; v9 Z6 B' e; F9 ?1 J0 _mcuos.com


* l$ ^( L- e7 h5 B! _0 r: h本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR8

0xFFF8.2020

R/W
/ I7 `# m1 I# Smcuos.com
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习/ Q" |6 a' \# L, o* g7 }
Source Control Register 8

, a: X3 u1 P+ ?; F6 L; F) L本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047mcuos.com  ?  f+ j/ i7 ~, S


! \6 F3 I/ D+ x" z8 h% s
AIC_SCR9

0xFFF8.2024

R/W
4 d) J! u8 t% m: V  ~- w$ I; ]( w嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站6 N; u6 Z! Y+ k3 v7 X5 I
Source Control Register 9

" `- P: E2 W1 b% _本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047mcuos.com/ b' j" y2 C- M+ K! |, N+ `# I

嵌入式开发联盟1 n  V$ k( c4 E8 a1 p- h# [. m
AIC_SCR10

0xFFF8.2028

R/W
8 w3 [* u% [/ P/ F  g3 _- 嵌入式底层驱动开发技术学习网站

! _, p) L2 _# H! Z! O3 g9 S( z/ K8 U2 gmcuos.comSource Control Register 10
; J) t" Q0 ^* d) N% I
0x0000.0047mcuos.com6 k, Z$ m- e% M& Q) D7 T- Q3 i# ^


$ w6 j& Q" x  J2 B8 c+ R" X! ^mcuos.com
AIC_SCR11

0xFFF8.202C

R/W
! ~+ F2 F6 T" m" U5 M; I  E- 嵌入式底层驱动开发技术学习网站

" x7 ?5 U3 I. a; r& H7 F, g嵌入式开发联盟Source Control Register 11
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ n9 ~5 }8 r; L- z9 |- H( S
0x0000.0047mcuos.com5 b3 W$ Y8 c, F- `: Z


! `9 p& y+ ]/ k, W嵌入式开发联盟
AIC_SCR12

0xFFF8.2030

R/W
+ R  D$ O5 \+ J5 nmcuos.com

3 b; z0 R% S9 D7 p# Q; I2 i& }' eSource Control Register 12

0 J0 J5 {6 x/ e5 }, ?  |本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047嵌入式开发联盟2 R+ \+ {1 N8 }8 x, v


  E- q. n; c0 u6 k- t
AIC_SCR13

0xFFF8.2034

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! ?& ]* C1 U( N9 `) j6 F, V# ^
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 O# z- y7 @2 p) p& j, @' a: Y5 e
Source Control Register 13
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 i: z6 A2 g' w
0x0000.0047
- U+ T$ D  W  q% B- 嵌入式底层驱动开发技术学习网站


- ]; x8 u% |( p( c本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR14

0xFFF8.2038

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ l3 W& f% I: c% p( T0 E5 @. h

8 w9 T2 C3 \# D0 I# ]嵌入式开发联盟Source Control Register 14

$ ^1 Y! Q' S8 ^" @, Z3 F  U8 {: m7 d本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
" q: [' R- n+ [1 u( o7 t4 _: \- 嵌入式底层驱动开发技术学习网站

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 U7 L, l2 v, n8 m; l
AIC_SCR15

0xFFF8.203C

R/W; ?. f. U. O% S# }3 B

7 u( p: p9 |/ I" X本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 15
- 嵌入式底层驱动开发技术学习网站9 v5 h! A/ H5 [
0x0000.0047
1 H0 y* A5 r& v6 s2 z! A+ K本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


$ H: w. e6 \8 d- d嵌入式开发联盟
AIC_SCR16

0xFFF8.2040

R/W
! Y( Z* p8 R1 t2 b
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。$ z3 F0 z1 K- z+ w/ t5 Y% x+ L' D
Source Control Register 16

3 o5 k7 d0 M9 g嵌入式开发联盟
0x0000.0047
- X2 a5 J/ @) d) n6 U嵌入式开发联盟


; `3 s, X, ]- ymcuos.com
AIC_SCR17

0xFFF8.2044

R/W
4 H$ f! C' p9 `. o& N) k嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
9 B. P: M# X* {+ A4 E. z
Source Control Register 17
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。# c% o+ H2 h1 N
0x0000.0047- 嵌入式底层驱动开发技术学习网站( V: y2 Y& z+ H6 B/ s

mcuos.com& R, J  t& X! R( g5 c; ]# k# m- h- I
AIC_SCR18

0xFFF8.2048

R/Wmcuos.com( ~$ Z  Y) F$ C5 y# P+ P

5 n1 i! ]( H! E7 a3 i* w% B1 n3 v嵌入式开发联盟Source Control Register 18

. N4 W2 o9 _2 R8 G8 a. d' M! k5 f本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
, L1 X$ U3 }  a) N8 w! \/ f


& m, b) C6 b' D7 c1 S% ?; I% ^8 umcuos.com
AIC_SCR19

0xFFF8.204C

R/Wmcuos.com+ [* ^2 F8 g/ a/ c
mcuos.com; Q8 _( [5 \3 [, h- T/ P! m8 j+ Q! W5 I
Source Control Register 19
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。  P) n3 I+ T8 H1 M$ O
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- W$ ^- o; u3 z# I


8 t3 g' [' s: I3 G
AIC_SCR20

0xFFF8.2050

R/W嵌入式开发联盟- n6 P! m- V, |$ ?6 ?8 e( \: h

7 i+ C& o+ K9 |; R$ S8 Y嵌入式开发联盟Source Control Register 20

$ v0 J) S8 J& r& F  e6 E% emcuos.com
0x0000.0047
6 a5 W$ S6 ?( t# z# H0 Z


) L! J  c; |/ d嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR21

0xFFF8.2054

R/W
' ~, |$ |/ H- Y7 y( X4 y

1 {/ m6 y6 l1 C- W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 21

% u0 A* _. Q) @) S1 U: `  x: N" [嵌入式开发联盟
0x0000.0047
6 ^8 s2 x9 X5 B7 _1 e/ g本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


* `* o9 M6 K! C& e! F0 u- 嵌入式底层驱动开发技术学习网站
AIC_SCR22

0xFFF8.2058

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 i5 H3 A" u/ V
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- y# D! d' F2 W/ V" ]  A+ F, @
Source Control Register 22

) D9 ^8 W! R8 m! z8 ^- ?
0x0000.0047
* s- Z) X( ]- Mmcuos.com


, w: Q$ d: M1 E  R0 D- 嵌入式底层驱动开发技术学习网站
AIC_SCR23

0xFFF8.205C

R/W
4 N: }/ f2 e2 Q本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站  N; {5 v0 a  ]0 r$ K# r
Source Control Register 23
- 嵌入式底层驱动开发技术学习网站5 a6 c5 v( x1 S
0x0000.0047- 嵌入式底层驱动开发技术学习网站# d' B* r. ^! p$ A( z" w


1 v' \( B7 W0 H6 N. w, j# g) t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR24

0xFFF8.2060

R/Wmcuos.com8 ^& {* I8 j% x% G. k, F2 v

# }4 \1 t; i, E) S  M5 JSource Control Register 24
嵌入式开发联盟! w8 D+ I" j1 A
0x0000.0047
9 |% T8 ^4 e- G5 T  U' U


8 r% f- K  p5 F' y/ y; w8 _嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR25

0xFFF8.2064

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。3 c9 B. z7 Z6 m
mcuos.com2 N" a. }$ X0 p: Q! Z: u
Source Control Register 25

1 n$ r3 y% y* r3 z嵌入式开发联盟
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。; M* x" S) H6 f. y$ d


; K4 F3 Q  ~0 u" z. M5 \嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR26

0xFFF8.2068

R/W
, D: m; J9 G/ X' [: D# {嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

# N3 r" K# d" U! \6 {0 s本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 26

8 N, e" U0 V8 k6 [# `
0x0000.0047mcuos.com' P5 g  n" x4 f; X

- 嵌入式底层驱动开发技术学习网站3 o3 K/ S% J( D$ u, w+ I% o
AIC_SCR27

0xFFF8.206C

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( _1 ?3 z7 I  f* n* V; ~4 C0 a

- J5 p3 m2 C# W& O( Amcuos.comSource Control Register 27

8 i3 J# a+ I, U8 o) p' P嵌入式开发联盟
0x0000.0047
( \/ y7 o% T  Z8 A# P- ]mcuos.com


$ V- W' T5 [2 d2 z: F0 n7 r嵌入式开发联盟
AIC_SCR28

0xFFF8.2070

R/W
; T  T2 L* a( l  n3 n, n+ _! A2 h7 b  e2 v嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

+ k2 x* B7 k7 T; g  ^" omcuos.comSource Control Register 28
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。( U. o* ]' {4 j% ^, Z& q. X
0x0000.0047
( [0 x* T8 Q0 j+ a  |2 Z1 f8 `: emcuos.com


/ p5 d2 N/ @, [  D/ Q1 X7 G7 p嵌入式开发联盟
AIC_SCR29

0xFFF8.2074

R/W
+ P0 A0 h6 {1 p% G) F- 嵌入式底层驱动开发技术学习网站
0 b( o  i; {5 O7 j6 _( b+ Y
Source Control Register 29

- Q; q% F6 x1 q$ r8 h0 J6 H7 c2 l- 嵌入式底层驱动开发技术学习网站
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 W$ f4 N: l6 [# d


& N, w& Q5 p' F$ F9 f嵌入式开发联盟
AIC_SCR30

0xFFF8.2078

R/W嵌入式开发联盟' U4 U, L9 V) I: L, k0 I2 N: v( u1 m
9 T% |# X7 p; q/ D+ |0 @
Source Control Register 30

. Q+ H% j- ?6 o$ M4 l+ F$ W- 嵌入式底层驱动开发技术学习网站
0x0000.0047
! w9 k6 C" y' u4 d+ _2 H+ w嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


$ L$ q: I' U" r" s1 K9 Q- }  c嵌入式开发联盟
AIC_SCR31

0xFFF8.207C

R/W; a4 A! B! q5 K5 P& L4 a+ ~. A! \7 X

. B# a! X. u! U& A2 x  Pmcuos.comSource Control Register 31

8 M  x, i: A' _* m6 _本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047- K' n0 M  G8 e# J. k6 f" m
mcuos.com$ ~: T% L' h! P! s: A! D! ]1 \
AIC_IRSR

* O7 U5 ~" F% p5 X0 C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.2100

Rmcuos.com- O9 N- [8 e' S* {- C4 |! z
: K* r  Q- ^+ w; o/ ]6 D
Interrupt Raw Status Register
- 嵌入式底层驱动开发技术学习网站# c, E4 v7 q, U8 c# h$ E
0x0000.0000本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! L. U6 p* B! |- s- Q

) k4 a  [5 ?9 H! f5 _  }9 z嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_IASR
- 嵌入式底层驱动开发技术学习网站, R8 }6 m, M! d/ P2 n

0xFFF8.2104

R
# P  _* d/ Y, Q' S% _嵌入式开发联盟
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! V0 M( D9 _6 c2 ~; p, k
Interrupt Active Status Register
- 嵌入式底层驱动开发技术学习网站# |( m: T1 O9 V5 ]; b( d4 o
0x0000.0000
+ M7 j& d  E8 z0 L本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
mcuos.com+ j" S) v" o2 \+ t$ a
AIC_ISR
嵌入式开发联盟3 h, G8 x! c6 k1 l- q

0xFFF8.2108

R
; ]$ w0 Z3 c4 P) G3 n  X& Bmcuos.com
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2 t9 j8 j* w! Y( {  A/ \
Interrupt Status Register
嵌入式开发联盟  n6 ?. Q" q; }# C5 v# C
0x0000.0000
0 a) c& T9 D1 Z' Y4 `- 嵌入式底层驱动开发技术学习网站

8 g2 [- e8 T4 q" iAIC_IPER
mcuos.com' S  q! n7 b" a. r$ Y

0xFFF8.210C

R嵌入式开发联盟, h' V! j+ Z% I" K" Z9 n* B5 v
mcuos.com$ c; ~5 q' T% _7 \/ p& Q
Interrupt Priority Encoding Register
嵌入式开发联盟# [. l, O3 Q. e- Y) \1 W
0x0000.0000
8 E1 S* A  B. U嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- 嵌入式底层驱动开发技术学习网站6 b% ~. \$ Q8 f' X8 j, A5 v, g
AIC_ISNR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ M7 \8 D+ @6 p& ~, x. G

0xFFF8.2110

R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。# y3 m* w. A: z( E" N% w

" ?" J) i( D1 z9 ?, c9 D' u嵌入式开发联盟Interrupt Source Number Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' Q! ^  n& B# @
0x0000.0000本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 ~+ [' J# h, J. Z+ v2 R/ k
- 嵌入式底层驱动开发技术学习网站5 O5 _- S7 i, g5 r+ f% G
AIC_IMR
mcuos.com8 k2 p3 U8 b! x  D0 |

0xFFF8.2114

Rmcuos.com7 x1 [5 }) Z% J  m
嵌入式开发联盟- Q8 o4 u9 G, K9 m
Interrupt Mask Register

8 `2 I" C6 c! M, |. S; `7 N嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0000嵌入式开发联盟, F/ h$ d% x# p+ T, P

( v0 U8 N! t) x5 r7 emcuos.com
AIC_OISR

/ F2 w1 q% G6 s9 ^; U6 U' Nmcuos.com

0xFFF8.2118

R
3 ^& {  Y- r9 L) _: N3 v9 B
嵌入式开发联盟; F) D6 P' r, m* D' Q% I
Output Interrupt Status Register

* b4 c: ]7 K( ~mcuos.com
0x0000.0000
! V  D4 `  Y! `+ A4 i嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
+ ~: b5 \" _/ A- y. u% B/ [
AIC_MECR

$ O$ G1 B4 V8 b/ c" F' p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.2120

W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' S% P" n" p- u7 c

: j" l, I- t) d2 X8 ]3 d" \Mask Enable Command Register

% }. P- Y0 I% f* M6 j! x嵌入式开发联盟

Undefined


. @: U: b# \2 O" N" h! kmcuos.comAIC_MDCR
嵌入式开发联盟- o6 d" L' G1 C4 v

0xFFF8.2124

W嵌入式开发联盟$ ?; t. J, N/ t+ R

* v4 ?4 `& r2 A# f* mmcuos.comMask Disable Command Register

! k6 G6 b* _; r3 P2 t嵌入式开发联盟

Undefined

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习! W0 ^" I. E6 P$ z# L
AIC_SSCR

# Z2 W" r, U# Z9 Q  H3 `/ \嵌入式开发联盟

0xFFF8.2128

W. X' y, }" m* G' z4 H* W3 `

1 O  T1 R+ _- v. `7 _) Y- 嵌入式底层驱动开发技术学习网站Source Set Command Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 L- J) K* x$ H

Undefined


: Y$ \4 ?8 |5 G6 w! k- W7 ^; u- 嵌入式底层驱动开发技术学习网站AIC_SCCR

8 X9 Q8 @5 Q2 {# C4 K本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.212C

W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 L7 x( k2 q' g+ K
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。4 L  X1 G- W3 o  o0 [5 y
Source Clear Command Register

4 p6 z9 v- }9 H% @! \6 X- 嵌入式底层驱动开发技术学习网站

Undefined


% o4 q2 L4 Z5 }) u本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_EOSCR
mcuos.com* z0 g* h3 t5 U7 D! o( c

0xFFF8.2130

W
; ]! m. k+ j& T! r  m, v# @% O  a嵌入式开发联盟

9 k8 I' Y! o2 W7 B嵌入式开发联盟End of Service Command Register

4 S. w2 t  v% ^& X/ F+ G4 z  }mcuos.com

Undefined

AIC_TEST

0xFFF8.2200

W
7 H7 I! ?' s; U% X$ Z" F& ~本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

( g6 J0 R! E, \ICE/Debug mode Register
6 Q" g/ t! K. Q

Undefined


7 A1 x( ~  R5 y+ e% u3 ], Y/ j; m$ ]& t嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" G4 u( q) M$ M
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 W! R/ y9 s; Q8 t' a
mcuos.com$ [: S! Y* g& I1 z

+ _. w/ m+ i( q" ^; Z嵌入式开发联盟1.2.
6 f1 l8 I: @; g. k0 p+ r, T本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
功能描述

% b8 o/ u( t4 \" v- 嵌入式底层驱动开发技术学习网站嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习+ f0 x4 [/ S% _* E/ J- ~) s
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: O! C2 Q; I) D% A9 F5 P& K

+ V% p3 \6 r. s  E" l6 Zmcuos.com1.2.1.嵌入式开发联盟0 y! {0 z" L5 n
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。- 嵌入式底层驱动开发技术学习网站4 W3 [, r, N6 L0 `
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- o; e1 z" S0 |& p

, v' v+ G% p8 j8 M8 ?, j8 @嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习2
0 h! J1 i5 R' e+ R' i9 L8 T- L嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
' @: m5 q5 B, J1 Z+ U6 H本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: v$ h/ Z5 t. ?1 |% O6 v
嵌入式开发联盟: V  X: l, D3 ~7 X' {6 P1 |( t

# A/ x% Q5 G5 P3 o. X嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
# A. Q% K* X2 i0 W' I本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
3 S: ]3 n4 d+ e嵌入式开发联盟
. ^# j$ a2 G0 j/ t7 A" g嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
4 e! s( |- ^) G' c: b* s- 嵌入式底层驱动开发技术学习网站源控制寄存器mcuos.com  x5 k, m2 A" {  s

/ E' X, [# Y- ~; d0 D
5 J# Y3 w6 e2 Q6 I4 u* J嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
- k" I) T! k. S4 Y; L) E- 嵌入式底层驱动开发技术学习网站
3 Z6 m: N" M: S9 Y4 a9 f; G嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
3 x- l5 `% t# X8 o' M# J
" C% m& t! z; |嵌入式开发联盟
7 J! Q: s: x  f1 E) d& U本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 - 嵌入式底层驱动开发技术学习网站7 ~7 R# W; v/ t+ R% k: |5 R- Y
1.1.1.
8 s: ~) c  c! ^& z% h! c! a% T嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)
' t+ Z5 P* T) k1 a$ h本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)mcuos.com& Q2 G+ w1 Q) E" g& z( T
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.
  l$ C/ V# P) `5 m7 x4 _# x1 m7 | - 嵌入式底层驱动开发技术学习网站! {8 ]+ L) a  @; d& E# s
1.1.2.嵌入式开发联盟$ b4 |7 g, g+ y- a  P  U7 }% \- F+ C
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)
( p% F# ^0 q1 C  F嵌入式开发联盟
或者
$ b+ O) P, a3 ^+ U$ \* TEnd of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)mcuos.com  H4 m+ l; K/ Q0 @  q
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
$ S+ ^& M# q6 w1 v1 ?嵌入式开发联盟寄存器 Source Set Command Register (AIC_SSCR)7 Y8 J; U9 n! N4 C7 k$ x+ O; ~/ x
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。
: g8 M! J# _- _2 ~8 N4 a) F- t- 嵌入式底层驱动开发技术学习网站
2 w  }) B  \# r  }本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.1.3.嵌入式开发联盟( D& W4 ?" [* b" y! e' m- A
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。
% ?) o$ o1 ^+ v3 [本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习' f, M- R3 R1 W; w! X5 G3 c
嵌入式开发联盟$ v# W* b; J- x  `) N
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  |6 g* G8 O; f0 n7 `
- 嵌入式底层驱动开发技术学习网站9 t/ g/ D4 Z/ ~7 T
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: x# a; c  f: m4 M+ `7 B' I" J
图 2‑3 Sequential Priority Scheme本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。" g6 c- b" Z. [/ J* _

. N# c4 K' k$ S6 ~. Y/ A# J9 r; K
- c) b' N; s' g: h" g2 J嵌入式开发联盟2 G5 n) A3 h/ Z. X  n9 a
1.1.1.
: M: J* ~7 `5 D* C* m9 o
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:嵌入式开发联盟7 w3 X( v  u4 @8 i, _" X1 ]3 Y; [
1.
8 n3 {- t. D' _$ P嵌入式开发联盟
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 ~8 u2 I) d' z" m# G
2.
* H) g. \7 m* V' n1 Y本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
通过添加向量到中断向量表来跳到相应的中断服务程序执行。
9 p5 S4 n7 o/ U* W* v2 O4 \mcuos.com3.- S( k" n  ]/ k$ @. a  Q# u9 T
写任意值到AIC_EOSCR来结束中断。- 嵌入式底层驱动开发技术学习网站" j3 l3 j8 f4 l$ ?
被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。
( M4 x- T- ]& w' z/ k嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码
8 a4 p; W+ k4 K2 s) A+ y! u( ^
8 X! i& J* k; ?# M; g本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
: \- r  A2 N$ k- Y/ o注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程
2 Q- r' C  }1 M( h) O) b
5 t2 X$ E6 i0 F! W( Jmcuos.com 2‑5 Using hardware priority schemeD - 嵌入式底层驱动开发技术学习网站( Z2 P$ \# l- r5 D

9 _% l- Y. A. U mcuos.com8 b5 A$ g6 G, A6 `0 u, ~/ H
mcuos.com7 B$ ^% [, l4 a$ m6 W% P" e6 R

1 }4 k: X8 t6 y嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
! O3 \5 y0 k, Q8 b6 d" S2 o( [本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 Y2 j9 w: X9 ^7 G/ k

. d$ M  A$ x- w4 x2 N嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

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