返回列表 发帖

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

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

1.1.
# z/ _7 \. d! [, R+ I# n嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
概述
W90P710合并的高级中断控制器 (AIC)
/ A. U/ [  M' r. ]3 _& P  d- 嵌入式底层驱动开发技术学习网站
有能力处理32个不同中断源的中断请求。目前,定义了31个中断源。每个中断源被唯一地分配到一个中断通道(1 31). 每个中断通道可以被独立开启或屏蔽。如果一个通道对应的中断源发生中断请求的话,这个通道的状态会被视为活动的。有好多状态寄存器被用来区别这些中断通道的状态。只有当至少有一个中断通道处于活动状态并且是被使能的时候,AIC才会向CPU(ARM7TDMI)声明一个中断请求。

, W0 e" h" r! V) H' R) S8 p- 嵌入式底层驱动开发技术学习网站驱动可以根据状态寄存器实现一个优先级方案,AIC本身也实现了一个8级优先方案来改善中断分派时间。它把31个中断源分成8个有限级别,0是最高级,7是最低级。在每个级别里,较低的通道编号具有较高的优先级。如果一个活跃的并且被使能的中断通道被分派成级别0的话,AIC会产生一个FIQ请求,如果被分派成其他级别的话,AIC会产生一个IRQ请求,FIQ会优先于IRQ产生。中断嵌套是由AIC自动执行的。mcuos.com# w: f  F/ d( [# p
尽管W90P710的内部中断是高电平触发,我们在驱动中仍然可以把每个中断源配置成低电平触发,高电平触发,脉冲触发或者正电平触发。mcuos.com6 i6 U$ Q2 Q  w. u& ^

) P0 L# u- G. n0 m' v9 k6 A) l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
嵌入式开发联盟6 ~( ?. H" [1 {9 }
嵌入式开发联盟! s: g* q" N. F+ i( Y

- j) N/ Y; B* x5 k+ O2 ~- 嵌入式底层驱动开发技术学习网站

6 s& V( o- W! R# i1 W+ s" M嵌入式开发联盟
( G: B% e# X0 |' h嵌入式开发联盟
  S6 r  x7 x. d3 F4 c# C! d& h
1.1.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 C" n& A7 T+ l! c* j" s$ q
寄存器
mcuos.com' P8 B  P0 O+ D
R :
# d1 R' Y0 d2 |. R8 ^嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
只读, W :
& O  M) @% |/ c5 l* R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
只写, R/W :嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# f& q2 _0 k$ A+ [6 e# p; ~
读写, C :- 嵌入式底层驱动开发技术学习网站5 a) W/ ^. b; b+ G
只可写0
; D# ]$ W' _" }mcuos.com表 2‑1 AIC
: J: W% H: {7 d$ z) u: F: l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。寄存器定义
% p0 s* c' ^2 P; X& V嵌入式开发联盟

Register嵌入式开发联盟( c! |1 v) L1 F& J7 n
Address
- h7 `2 w. R" q  v6 w8 Y) jmcuos.com
R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# V8 T" {; `/ X

Description

Reset Value
, L) ?, F( R6 x+ Y9 \本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

  e' K- R- s8 n
AIC_SCR1

0xFFF8.2004

R/W
6 ~& n! X7 f: {! a7 s1 C" Omcuos.com
- 嵌入式底层驱动开发技术学习网站9 {4 T2 j" O& W. ~# F- O6 `" L: Y, v
Source Control Register 1
嵌入式开发联盟2 d5 r6 o) n  z, w2 _
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习- n- g* ]0 Y! H& M; u: U


/ h* U' b' i7 v( Z
AIC_SCR2

0xFFF8.2008

R/W
% G% |# D0 n0 c本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站, P3 v- s! X5 G/ p
Source Control Register 2
- 嵌入式底层驱动开发技术学习网站$ \& H3 v" V' _) i
0x0000.0047mcuos.com$ t" `5 V7 M5 {

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。5 x# r1 a2 R7 H" [2 a5 E. o/ A
AIC_SCR3

0xFFF8.200C

R/W
7 z, v$ A& a$ u: f0 ~& c# m2 m- J
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' S, x9 N9 J: j( Q& b/ h% N2 ]
Source Control Register 3
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。: E. Q! ~3 ?" K7 g$ S
0x0000.0047
* d7 w+ g: T& d2 i( U7 smcuos.com

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 Y& D9 l% N& e6 x( N5 O
AIC_SCR4

0xFFF8.2010

R/W
5 a8 x5 t+ \# Cmcuos.com

! t: V, q& S( n# t( omcuos.comSource Control Register 4
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: r) F" Z' F. h) M( v
0x0000.0047
' F3 L. Y8 T2 C# z% Tmcuos.com


( h) t: q2 v+ i7 a! gmcuos.com
AIC_SCR5

0xFFF8.2014

R/W
5 i) w  ?1 }  T! umcuos.com

0 D0 R+ H$ b" ]9 ^& F; }8 N; p) Q嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 5

6 ]0 |" W- I! A( b本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
4 v8 C7 T% c' I嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。) k- }' Q. b$ h: b( `7 [
AIC_SCR6

0xFFF8.2018

R/Wmcuos.com0 C9 Y/ n3 |/ h% Y6 f
mcuos.com8 }  {( N: a9 T( L5 J1 a
Source Control Register 6
- 嵌入式底层驱动开发技术学习网站9 W, u% C3 \$ b) J, Z9 b4 ?7 t+ l
0x0000.0047
- x  @$ u* b- L* s( ~嵌入式开发联盟

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习: [1 w8 g1 Z  {9 F# B
AIC_SCR7

0xFFF8.201C

R/W8 X* D' v4 M( H1 F1 Q8 Z; P2 ^, X

+ D9 C, H3 G& K- V% G+ Fmcuos.comSource Control Register 7
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习" A  m0 Q0 h0 L5 h* o2 c
0x0000.0047嵌入式开发联盟4 u4 R% Z8 L6 m& `' q" V) K' U( G

mcuos.com! _4 @* i. `( [7 L
AIC_SCR8

0xFFF8.2020

R/W
' K' l! ^% H5 f1 ?( x; H4 vmcuos.com
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 E3 j) A; g# p! J7 Z
Source Control Register 8
嵌入式开发联盟. Y: ?2 }& x: f% f, X
0x0000.0047
# M4 S3 E" A4 Q8 u


! S4 Q: G/ g4 `1 k% h, Amcuos.com
AIC_SCR9

0xFFF8.2024

R/W
1 E8 R: u; J4 a& ^

2 \9 `& h4 q. m/ k) w9 _0 h. f嵌入式开发联盟Source Control Register 9

6 i4 M2 c9 E& k. Z, |. h# E8 K嵌入式开发联盟
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% f# F! |2 j7 R2 U! I

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习# D2 y; ~! K: o2 C: c( o, _
AIC_SCR10

0xFFF8.2028

R/W
5 {; P) Z* l7 H6 M2 G- 嵌入式底层驱动开发技术学习网站

! F8 Z$ ?, X3 j9 L3 s1 m嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 10

1 I& U4 z7 m/ R6 n% r9 dmcuos.com
0x0000.0047嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习4 l# g" `; [- a( R7 o6 j0 b

嵌入式开发联盟! |% E2 T' K0 z2 q0 M7 Z
AIC_SCR11

0xFFF8.202C

R/W
* ?8 t/ l/ a, L0 W9 P) G5 E% B- 嵌入式底层驱动开发技术学习网站
0 F, l# F) `4 |% L9 k: U
Source Control Register 11

" V7 I; s* r, m6 V本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047mcuos.com) \& a" L/ s8 j. S

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。, y7 Q) T; \2 x4 u! _  D
AIC_SCR12

0xFFF8.2030

R/W
" A- ~. s9 {2 l( u/ Z2 J3 d7 g- 嵌入式底层驱动开发技术学习网站
- 嵌入式底层驱动开发技术学习网站! o) Q5 v& x7 y  G5 V( ?
Source Control Register 12

, P; K( X% F* I* b7 W
0x0000.0047
% r. s+ F+ i- |, g8 j5 j

- 嵌入式底层驱动开发技术学习网站+ N/ j: b+ m( Q# b+ ~; O- s
AIC_SCR13

0xFFF8.2034

R/W
5 y2 O4 j, q+ R; Ymcuos.com

  b/ U/ S1 w0 a# H0 J' l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Source Control Register 13
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 n! H0 Y/ H6 E$ n% @0 V
0x0000.0047
* ]. p* i2 U/ l; K- n9 s6 I6 Z# K: u嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


. @, D# a# e  M; X, l
AIC_SCR14

0xFFF8.2038

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 y6 Z5 ~% `+ L/ U) ~5 y/ f

5 n6 V0 ?# _2 K, @9 f5 o& b- 嵌入式底层驱动开发技术学习网站Source Control Register 14

" r5 g. c, m' N! z, R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
1 k$ I3 p: A, [% O1 S; h- 嵌入式底层驱动开发技术学习网站

mcuos.com. d" g: j) d: T: K- k
AIC_SCR15

0xFFF8.203C

R/W- 嵌入式底层驱动开发技术学习网站& y. u2 {5 r" Z! D( H, ?1 w

9 b  Z, f2 g  t  R" m- 嵌入式底层驱动开发技术学习网站Source Control Register 15

5 m  o' E# q" L6 Xmcuos.com
0x0000.0047
( x# e% H, p0 s/ N' U! b


$ P6 S; ]  Q+ `2 i
AIC_SCR16

0xFFF8.2040

R/W
8 U: u6 V5 X7 n6 e- Bmcuos.com

% t4 O* ^7 A$ p8 x' imcuos.comSource Control Register 16

! ~7 i, H: Y, j" C7 A1 i& R* I本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
: w2 d) H# j) R( @3 @: B8 G嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习


3 ?: v' T- s, u
AIC_SCR17

0xFFF8.2044

R/W
. o3 N) O- j% t6 l- 嵌入式底层驱动开发技术学习网站
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 y* D& F0 d" y1 x+ }
Source Control Register 17

. q9 S/ L; T: g; @( o. u. [1 u
0x0000.0047
. `  J# O6 J& P8 U9 g本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


/ z1 s9 I* F, U- 嵌入式底层驱动开发技术学习网站
AIC_SCR18

0xFFF8.2048

R/Wmcuos.com* Y; N$ a  Q1 b2 Z7 C

0 ~, ^7 U; d( P/ P& t嵌入式开发联盟Source Control Register 18

$ {! h/ `4 N+ F8 m8 e- 嵌入式底层驱动开发技术学习网站
0x0000.0047本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% c# N2 J( _+ P7 w/ w0 V

- 嵌入式底层驱动开发技术学习网站: R0 j/ T: L; {- P; |' s
AIC_SCR19

0xFFF8.204C

R/W本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 y/ m: U) K" a5 T

8 W$ i3 W% Z( R- 嵌入式底层驱动开发技术学习网站Source Control Register 19
- 嵌入式底层驱动开发技术学习网站7 M6 T( H" {/ n4 ^
0x0000.0047mcuos.com. D1 C! |2 Q" C5 g2 Q% y3 \


) p5 M" ^6 l# D# k2 k5 w- v% m7 {嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR20

0xFFF8.2050

R/W- S4 k* ?% T7 A' n" g+ W
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。- X( O* U1 s5 B
Source Control Register 20

& _+ r+ N  l1 K8 k, u嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0047嵌入式开发联盟1 e8 }7 F% ~3 L! R1 U

* d( v  W; E6 A3 b2 P
AIC_SCR21

0xFFF8.2054

R/W
5 W) b% @/ k; \$ d0 J* r( L/ Q
嵌入式开发联盟. l2 Q' B) a) J* o7 R
Source Control Register 21

( c+ Y- I3 M- G# x, {. B/ V; k5 H; G- 嵌入式底层驱动开发技术学习网站
0x0000.0047
# @8 [6 Y" W/ S9 G% Y- 嵌入式底层驱动开发技术学习网站


- m8 T( H. W; K# ?0 e3 Q嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
AIC_SCR22

0xFFF8.2058

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习. V& X2 c) g$ y3 L5 U9 ?4 W8 R

4 z. D0 Z2 M* s: M4 L$ {mcuos.comSource Control Register 22

  W' A4 G" {# J& Hmcuos.com
0x0000.0047mcuos.com/ R, R% M, p+ i. W1 B

) p. h. r: W8 L
AIC_SCR23

0xFFF8.205C

R/W
) O% K5 x: J1 p+ \- L$ Q' g- 嵌入式底层驱动开发技术学习网站

" \6 v/ Y! h. amcuos.comSource Control Register 23
+ p  X# S. a, S' a. V
0x0000.0047# {% ?2 X! ^7 a% n* E


3 m! p$ t+ l/ D嵌入式开发联盟
AIC_SCR24

0xFFF8.2060

R/W- 嵌入式底层驱动开发技术学习网站. f  a  q6 [, F& Q
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。8 ^% Z3 o  ^: h& x( q
Source Control Register 24
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 V$ l' B) Y# S: C' c
0x0000.0047
9 }8 c) `5 L& d, P+ w) G. U, }- 嵌入式底层驱动开发技术学习网站

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。6 W+ }( _! j, q% I: T: g
AIC_SCR25

0xFFF8.2064

R/W
9 x9 [" [# m5 m7 X& H- 嵌入式底层驱动开发技术学习网站
# m2 @$ a/ Q& z  t3 p- i& p
Source Control Register 25

2 p9 s2 t; o" Z) S9 |/ B本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
6 O& ?- w" y# v9 F; k) K, ^本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

- 嵌入式底层驱动开发技术学习网站$ b  O1 s0 k$ G+ J, e
AIC_SCR26

0xFFF8.2068

R/W嵌入式开发联盟# i2 V; x4 b' ^' B5 T

7 K, N# ~6 Z3 p9 }) [1 [0 N: S; h- 嵌入式底层驱动开发技术学习网站Source Control Register 26
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  J' P+ R  J3 j# L$ v
0x0000.0047
  V  T3 \; r4 i* l; r6 H1 T* ^- 嵌入式底层驱动开发技术学习网站


& q, ^& z$ D# n: {0 n- 嵌入式底层驱动开发技术学习网站
AIC_SCR27

0xFFF8.206C

R/W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  a) h( ~# {1 X2 `9 G1 W" C4 Y
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ l' p3 E  S' z1 D: J! q
Source Control Register 27
嵌入式开发联盟) y" b. r: U" @# ]0 Z
0x0000.0047
8 y# Z" Y4 D9 `本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。


! @) R+ {1 N. R6 Q. `- H/ {0 }嵌入式开发联盟
AIC_SCR28

0xFFF8.2070

R/W
: T2 l  \! |# u$ ]# s7 P( f
- 嵌入式底层驱动开发技术学习网站2 K+ [5 X/ D! h1 H( B0 {$ z9 ~
Source Control Register 28

: V* |* P) ~1 l. G本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047
! }+ T- `0 E- nmcuos.com

4 R! {! r' X7 I3 i1 J9 W& E
AIC_SCR29

0xFFF8.2074

R/W
: H6 r  F( j- W. B* [

4 R8 ^4 ^& @: q) x嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 29
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习) k" \- h; K" ?& h% E9 r! I
0x0000.0047mcuos.com6 ~$ [# f  E; q5 r  `


( V) d3 G& L+ H4 J本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
AIC_SCR30

0xFFF8.2078

R/W嵌入式开发联盟8 t  ~$ x. r! G/ ^. j
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 F+ R3 r& z( Z4 Q
Source Control Register 30

2 U8 _5 A: J2 }( f* q嵌入式开发联盟
0x0000.0047
8 B3 h/ s6 l; A7 e6 Q0 }! Wmcuos.com

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。& _9 c+ P. U. a- \
AIC_SCR31

0xFFF8.207C

R/W
4 ], E2 d) H' [2 b3 J本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

' I9 l" r. F" ]7 l, `! n, ]嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习Source Control Register 31

, w- Y( K& v5 Q* ]0 \本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0x0000.0047mcuos.com% t8 }* X$ j5 x( L3 m0 O# O

' X' g- e6 w9 lAIC_IRSR
- 嵌入式底层驱动开发技术学习网站$ G/ Q6 ^# p% U4 p1 \2 T

0xFFF8.2100

R
, [# g- u, T* z, k( G嵌入式开发联盟
- 嵌入式底层驱动开发技术学习网站) C2 d' X8 u# x
Interrupt Raw Status Register
嵌入式开发联盟( Q( C+ a# S2 k5 j
0x0000.0000mcuos.com" b0 w3 v% q. ~* T* ]

6 Q" T' E4 G9 SAIC_IASR

9 Y; s& ^" F/ z5 S- 嵌入式底层驱动开发技术学习网站

0xFFF8.2104

R
# M$ Z+ }/ l0 k  v

( [" y. D" b# w* t' F- 嵌入式底层驱动开发技术学习网站Interrupt Active Status Register
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。7 v) ~7 f0 N+ N4 F' N! q9 A  O
0x0000.0000mcuos.com9 d1 C4 I5 y: T) e8 Q5 G
mcuos.com  ^% D8 |" ^  [5 ^
AIC_ISR

' k' w+ {( ^5 i# G: l3 r- 嵌入式底层驱动开发技术学习网站

0xFFF8.2108

R
7 ~9 a/ x: Q, o% n本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
mcuos.com% c3 \* B2 @* [
Interrupt Status Register

' E2 [2 |" ^% E  i5 Q0 d' w/ i% j/ T: G嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0x0000.0000- 嵌入式底层驱动开发技术学习网站2 c) O5 |! N! F# i. n( S! S
4 s' b* Q6 b1 K+ ?7 h; K4 Z7 n$ Q8 K4 M
AIC_IPER

6 n) Q1 {* G! ~本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。

0xFFF8.210C

R- 嵌入式底层驱动开发技术学习网站3 v6 i3 S5 h5 }$ o1 _. L
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1 f# d# E# b- j5 f) ?
Interrupt Priority Encoding Register

$ w0 o  P* Q. ?
0x0000.0000嵌入式开发联盟: q7 g# D& V4 y6 D# A/ L

7 W2 I9 g) U2 x! S: ?  u: Z本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_ISNR

6 m2 l+ f6 B. j+ B嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习

0xFFF8.2110

R3 D9 j2 j) ?. a+ T  Y

- i% y4 S- D: O! W* {mcuos.comInterrupt Source Number Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1 ~, u. Z: ~1 r( I4 ^  P
0x0000.0000嵌入式开发联盟: q. v; k+ y  h* v9 r

. A- K: _9 l# a! P$ R嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习AIC_IMR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习& [, a1 \2 ?' E; @' R) V% q( c8 r

0xFFF8.2114

R- 嵌入式底层驱动开发技术学习网站# d, q; b+ x5 V: x' ?

; F: p$ V+ ~; C& \: K4 I本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Interrupt Mask Register
- 嵌入式底层驱动开发技术学习网站$ \; U+ J- c: Q3 q: Q* v- k* b
0x0000.0000  H. Y5 b$ _9 @6 |7 w5 m5 Z8 C2 k6 d/ Z7 f
mcuos.com, B/ \5 I) X  Q1 w; N) x5 z  ^
AIC_OISR
- 嵌入式底层驱动开发技术学习网站6 }" i. w, O1 Z. G3 q- A9 {

0xFFF8.2118

Rmcuos.com  H9 l# q4 N/ F' S! i2 }

3 o( N8 a8 X0 C# b: b$ M- 嵌入式底层驱动开发技术学习网站Output Interrupt Status Register
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习% M4 \4 v6 b- ~2 r, v! K
0x0000.0000
9 e/ w8 i. Y% Dmcuos.com
嵌入式开发联盟: @2 W5 h1 x( ~
AIC_MECR
嵌入式开发联盟+ b, N1 R' a. m

0xFFF8.2120

W
+ V$ D$ M6 K7 x* q) o6 M- 嵌入式底层驱动开发技术学习网站
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。! h! d4 X+ D8 h- G2 m
Mask Enable Command Register

$ W; b/ i: J! x+ k0 Q5 f嵌入式开发联盟

Undefined


( }9 t+ G" F9 Y4 b# ^* R本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。AIC_MDCR
) V) d" H  q& w9 @, a. e& S" W# ]8 }

0xFFF8.2124

W
% h0 f( B3 M6 h9 g嵌入式开发联盟

7 A5 {6 c7 r4 c# R# V& \+ t本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。Mask Disable Command Register

  e: y6 V) m5 K

Undefined


4 l& C3 a, r$ O% \: n* h9 fmcuos.comAIC_SSCR

! U% i& K, h( M" b5 c" [嵌入式开发联盟

0xFFF8.2128

W
- y& c6 i. `1 C$ |4 _+ u  P嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
mcuos.com! |; B: {2 h2 ]
Source Set Command Register
" r1 D# F5 z8 H* |  f" x

Undefined

本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ f. O% a5 `; H# ]' S
AIC_SCCR
- 嵌入式底层驱动开发技术学习网站8 O$ K" c4 h  U" u3 u' j& f3 Z

0xFFF8.212C

W嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 B( Q. h  V% u: d" v
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  ^2 k% f1 F2 j( t# ^3 S
Source Clear Command Register

) g- M+ R1 T6 v" q

Undefined


1 |3 s, h2 h- e# a- 嵌入式底层驱动开发技术学习网站AIC_EOSCR
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习9 S/ I- n8 ^& M1 o( g

0xFFF8.2130

W
" O, D2 ~" ]6 l本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
- 嵌入式底层驱动开发技术学习网站, L+ C* G- O: n2 N/ a7 k6 z
End of Service Command Register
mcuos.com0 Q8 R$ f8 P  W' a

Undefined

AIC_TEST

0xFFF8.2200

W
: a# ^4 W( f7 g$ b" a" \) y" u本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
mcuos.com' a$ Y( p* v2 w5 E6 W% L/ u
ICE/Debug mode Register
- 嵌入式底层驱动开发技术学习网站# z; H1 B8 h" e/ i5 i4 r

Undefined

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习$ H; {3 x6 d, i7 d: ]

/ c6 H% I' H! R' r% \3 i& [- 嵌入式底层驱动开发技术学习网站: x: p# ~. [& g  i; f

" R7 H7 E8 K6 ~本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
  ]6 r2 ~/ o1 s% H* z5 [. S) V嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.2.
( c- ^: D- |! Q0 c" w8 G2 b9 D嵌入式开发联盟
功能描述
& ^3 m; A8 b7 n& x, A
mcuos.com6 \; Z6 C: j* [1 @4 A) z
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。0 T  l2 j6 Q( \# j8 {% I3 F. ~

% [3 y6 O. C- \. W+ _本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.2.1.
9 R' c$ o4 }& [' W% E1 H嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
配置中断通道
每个中断通道都有一个独立的控制寄存器来设置其类型和优先级。W90P910所有内部外部中断类型都是正电平触发的,这在通常的操作中不会被改变。 对于通道2345,设备驱动必须根据外部设备来设置相应的中断类型,每个中断通道的优先级别完全取决于中断设备。开机或重启之后,所有通道都会由AIC分派0-7的优先级。图2-2显示了源控制寄存器的内容。
; `+ ^) t5 E" K5 L6 Q% _
! `( y" r, V, r' l+ U嵌入式开发联盟, U' ^/ `5 V% l  L% K( Q
2本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。' s5 D1 ]6 v4 V. P, u6 S0 ]/ {

6 m( \9 P8 ]6 y" c- A) a6 Q+ l2mcuos.com; ~2 r9 B6 J- X5 B2 b# }5 a0 U  Q
mcuos.com6 y5 S6 M6 f2 e

. I4 ~) W$ w# W+ o嵌入式开发联盟- c$ s9 w; f- R9 d
; K& [& a9 J' v- n- G
  o. G. n# U5 G. [
嵌入式开发联盟% J/ q* a0 G1 C/ [+ E2 A7 A+ t
源控制寄存器嵌入式开发联盟' ~* |$ e( y# ^+ U4 D

+ D6 E& V7 p1 Z$ l& f5 d本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。* l3 u) |( n. {5 S6 ?  \
mcuos.com( c: d) g$ ^8 x4 u; \2 W
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习6 w4 R6 L' r( `4 \
- 嵌入式底层驱动开发技术学习网站( |0 A! f3 Y" \. u- ~3 y1 h0 k
嵌入式开发联盟1 w9 m- [- K& @( e. q; J$ n, |

& j9 g% \. |- F8 d8 X. j6 j嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
8 z% T  i; H0 p9 k/ a, D4 w( V0 v嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.1.1.本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。+ ^* C1 b* U4 a) y7 E6 `4 @$ ^$ u
中断屏蔽
W90P710 AIC 提供了一组可以屏蔽个别中断通道的寄存器。中断使能命令寄存器(AIC_MECR)嵌入式开发联盟7 O4 u1 u6 f: y) L7 @
是用来使能中断的,在MECR相应位写1就会使能相应的中断通道。相反,中断屏蔽命令寄存器 (AIC_MDCR)mcuos.com! K# K4 s1 y1 G+ E
是用来屏蔽相应的中断,在MDCR相应位写1就会屏蔽掉相应的中断通道。在AIC_MECR AIC_MDCR任意位写0都是没有作用的。这样,驱动可以任意修改这两个寄存器而不用保存它们原始的值。如果需要的话,驱动可以读中断屏蔽寄存器 (AIC_IMR)来获知某个中断通道是否被使能或屏蔽,如果是使能的,则相应位为1,否则为0.mcuos.com( x9 X" C. W7 K% U& s0 X

) R* R) F  \# y! h- O* U' Y* @0 }5 c本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。1.1.2.mcuos.com9 e5 d5 q& k, z3 R/ F' t$ h8 a
中断清除和设置
对于中断通道是电平敏感的,设备驱动不需要写Source Clear Command Register (AIC_SCCR)
- t4 d  N5 h) q0 i- f9 Z, t嵌入式开发联盟
或者
7 \0 B1 L3 D/ J8 S1 U- 嵌入式底层驱动开发技术学习网站End of Service Command Register (AIC_EOSCR)
来清空任何AIC 状态。设备的中断状态一被清除,AIC就禁止中断请求。对于中断通道是边缘触发的,设备驱动必须清除AIC的状态来禁止中断请求。要清除AIC状态,驱动程序可以写Source Clear Command Register (AIC_SCCR)
% H/ p. L) ?! vmcuos.com
或者 End of Service Command Register (AIC_EOSCR)。在AIC_SCCR的某位写1就会清除相应的中断。AIC_EOSCR 的使用会在硬件优先级这节讨论
" a( m6 E; n) z$ T, W寄存器 Source Set Command Register (AIC_SSCR)mcuos.com' R  p1 t) N2 N  M
是用来激活中断通道的,当他被设置成边缘触发的时候,在AIC_SSCR 某位写1会设置相应的中断,这个功能对于自动测试或软件调试是有帮助的。 & n" m( a6 I# }+ ~7 W% {
mcuos.com: w- k/ w( v/ @% }
1.1.3.
, q3 t: o) ~- k本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
软件优先级
AIC提供了一个Interrupt Status Register (AIC_ISR)寄存器来标识中断源,如果一个中断通道被使能并且是活跃的话,AIC_ISR 中相应位会被设置成1FIQIRQ的中断处理函数能够通过读AIC_ISR来获取中断源,并且服务顺序是完全取决于软件算法的。
* E4 t# U5 m! T  A) K) j嵌入式开发联盟通常有一个函数表来保存内部和外部设备的中断服务程序。当有中断被CPU识别时,FIQIRQ的异常处理会被首先执行,然后它会按照AIC_ISR的内容来调用正确的中断处理函数。图 2-3 给出了一个执行顺序示例,其中,通道1有最高优先级,1718是最低优先级。
  d2 Q9 w6 F3 u2 }- 嵌入式底层驱动开发技术学习网站 嵌入式开发联盟% t8 \* a, V1 H$ z

/ }: o  t' s- a- ` 嵌入式开发联盟1 n6 `3 y2 j* u: Z5 X
嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习0 E) D3 j7 x3 F5 p: L3 W
图 2‑3 Sequential Priority Scheme- 嵌入式底层驱动开发技术学习网站7 k) U# M9 t- o# S1 s
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。2 p) J2 n. K+ K% b

6 N+ P' k! A/ l' h+ D2 C本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。/ v3 T. n# y* b1 y1 |- J5 g! D
1.1.1.
$ ?9 p& N' x. D! tmcuos.com
硬件优先级
AIC实现了一个私有的8级优先体系,要使用这个机制,应该在使能中断通道之前设置特定的AIC_SCRx寄存器。同样,当有中断被识别时,FIQIRQ的异常处理函数会被首先执行。这个异常处理和中断服务程序会按照预订的规则让这个机制正确工作。规则如下:
* a- x0 W6 `7 t" p嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习1.
/ O' B2 |" V9 c* W嵌入式开发联盟
读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。
& D. r" @9 m: l% |& j- 嵌入式底层驱动开发技术学习网站2.
6 Q' i) x$ V8 K1 {* a- 嵌入式底层驱动开发技术学习网站
通过添加向量到中断向量表来跳到相应的中断服务程序执行。7 v' _, r: g8 c1 @2 n
3.
5 S1 z% e% B& j% [5 j$ t; {% a  |( \嵌入式开发联盟
写任意值到AIC_EOSCR来结束中断。3 Y/ _. P. i8 f6 E$ b) Y* n$ g
被使能并且是活跃的中断优先级被视为当前优先级。当读AIC_IPER时它会被放到优先级编码器 中。同时,AIC_ISNR 会装载当前编码过的中断通道号,这样可以防止AIC响应一个低优先级的中断请求。因此,中断服务程序必须写AIC_EOSCR 寄存器使当前优先级从优先级编码器中让出,让AIC服务低优先级的中断。这种硬件优先级控制对于中断嵌套系统是有帮助的。本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。4 \8 ]: q7 h/ b
与软件优先级对比,向量提供了更快的方法调用中断服务程序,把向量加到中断向量表可以轻松获取服务程序地址。图 2-4 是一段汇编示例代码! W; r. w0 \, x4 g" ]
嵌入式开发联盟8 [8 @; \* k3 S# z
本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。; A5 z6 n; Q  l! N- F% q) P
注意,一旦ISRAIC_IPER,它必须写AIC_EOSCR 来回复正常中断状态。否则,下一个中断可能不会被正确响应。图2-5 显示使用硬件优先级的流程
; t2 K4 `  Z) C  c1 r! d; gmcuos.com
0 G+ e( d! c" @& Z6 D! F5 E. U; |嵌入式开发联盟 2‑5 Using hardware priority schemeD
" k# [% |7 g7 f( Y/ h7 xmcuos.com
: u' V( J, f9 P! H- 嵌入式底层驱动开发技术学习网站 嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  S. b0 W2 A0 B* g% Y

" R& Q" z" i; y" O/ V. T本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
! s0 \3 O9 ^2 e8 R) e嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0 f, _! i* n7 s' Vmcuos.com
+ |8 W3 I- x: s) F6 g6 B1 Jmcuos.com 本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。% q! n1 m2 ?4 D$ V( C3 Y# _
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

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