a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 198|回复: 3

[LPI认证] linux学习:LPI硬件和体系结构(四)

[复制链接]
发表于 2012-8-4 12:13:19 | 显示全部楼层 |阅读模式
  清单 4. /proc/interrupts
& O8 N$ y/ u$ }. S1 J$ j  CPU08 c+ Y) F  S) L3 o& Y
  0: 226300426 XT-PIC timer
& E1 Y8 f' d, z5 c. U  1: 92913 XT-PIC keyboard9 t+ j& D* ?. \
  2: 0 XT-PIC cascade
' N8 u# H; i# X0 I2 e  5: 0 XT-PIC usb-uhci6 c+ N) d. x- e; l; r# @
  8: 1 XT-PIC rtc% S) [7 n) f; s
  9: 2641134 XT-PIC ehci-hcd, eth0, Intel ICH4" m7 t$ s% j1 p5 d
  10: 0 XT-PIC usb-uhci
0 C& p  g1 J, l. `# a  11: 213632 XT-PIC usb-uhci8 l$ U" Q; N+ a7 T: g! P
  14: 1944208 XT-PIC ide0) X$ F' R: l% \  i+ ~/ |
  15: 3562845 XT-PIC ide1
7 s( R" P9 U$ T9 l) R$ g/ o  NMI: 0
0 j, x! m  s7 c& m  ERR: 0
( v" K/ d! T, k1 x# z) r1 V. _  这一次,中断数字是从 0 到 15 的十进制数。同样,将这些中断与清单 5 所示的 PC 标准 IRQ 分配进行比较。
; N: ~5 f; y5 g- s  清单 5. 标准 IRQ 设置  ]  e& d# ~5 J" `' _
  IRQ 0 - System Timer, t+ q. T5 K+ g9 f
  IRQ 1 - Keyboard
6 d  z6 p- P5 y8 d/ }  R  IRQ 2(9) - Video Card: @: y2 P- p8 O! E. J& Q0 C& X
  IRQ 3 - COM2, COM4
9 o& u& s0 P8 L, V" M% j( ]  IRQ 4 - COM1, COM31 J5 h$ e- n) [4 s. u4 X( q
  IRQ 5 - Available (LPT2 or Sound Card)
4 B. D  M/ J0 ?4 D' `: l  IRQ 6 - Floppy Disk Controller2 |6 W8 h, d! A, j
  IRQ 7 - LPT1
% F+ w' i/ J1 ]  IRQ 8 - Real-Time Clock
5 B) |9 r& D" k- N  IRQ 9 - Redirected IRQ 2, L5 |; i$ W6 S5 _& B+ i! y
  IRQ 10 - Available+ Z5 }2 T' h+ \0 J: [
  IRQ 11 - Available- \0 R$ S& O0 T  {# H. ~8 _+ O) K
  IRQ 12 - PS/2 Mouse
. Q% b0 y3 T8 ~* J  IRQ 13 - Math Co-Processor' X2 D  I. y+ e! D& N0 P6 \
  IRQ 14 - Hard Disk Controller
& B4 c( Z* d' t5 y/ R% W8 @0 V3 D  IRQ 15 - Available% N: f' k9 ?1 L) Z& B
  最初,每个设备都有自己的私有 IRQ。做为示例,注意,在清单 5 中,IRQ5 通常用于声卡 或者 第二个并行端口(打印机)。如果两个都要使用,那么不得不去寻找一个能够配置的卡(通常是通过硬件跳线设置)来使用另一个 IRQ,比如 IRQ1
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:13:20 | 显示全部楼层

linux学习:LPI硬件和体系结构(四)

5。
# ^* U  }$ d/ Z. q; ^0 z' d/ C" S2 q# I$ I( W0 a
  目前的 PCI 设备是共享 IRQ 的,所以,当某个设备中断 CPU 时,会有一个中断处理程序检查它并判断那个中断是否为它所用的中断,如果不是,则将它传递给链中的下一个处理程序。清单 4 和 5 并没有向我们展示这种共享。在后面的教程中我们将会学习 grep 命令,不过,现在我们可以使用它来过滤 dmesg 命令的输出,来查看关于 IRQ 的引导消息,如清单 6 所示。在此突出显示了共享的中断。
2 `6 K8 f* ?# Q, E* Y% ^) L  h  清单 6. 引导过程中发现的中断# K3 E& f# D. I) `
  [ian@lyrebird ian]$ dmesg | grep -i irq: Q' Y0 v0 }! I2 W2 E" P& C$ Z
  PCI: Discovered primary peer bus 01 [IRQ], G  G' w% r2 L# _. q
  PCI: Using IRQ router PIIX [8086/24c0] at 00:1f.07 ]$ a& n4 g, W& T- d* i9 n
  PCI: Found IRQ 5 for device 00:1f.1
: Q, s7 C" n# d! [/ v# L  PCI: Sharing IRQ 5 with 00:1d.2
  C8 Y& k; D2 D' X- z. e% s3 C4 [  Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT% U' R5 g- [! m' p! m) {4 H3 o
  SHARE_IRQ SERIAL_PCI ISAPNP enabled
& ^, X5 K' t. E4 I5 f( U  ttyS0 at 0x03f8 (irq = 4) is a 16550A
" z0 x8 j# x1 F6 I/ c  ttyS1 at 0x02f8 (irq = 3) is a 16550A
& g6 C8 N4 i  a# ~" ^5 @  PCI: Found IRQ 5 for device 00:1f.1
1 ?; n& A9 P8 X, v" w# C  PCI: Sharing IRQ 5 with 00:1d.2
1 ]" r" d, z; D3 A; w3 z  ICH4: not 100% native mode: will probe irqs later# ?0 a: l3 I4 q+ R1 y$ T  y' B2 ^: a
  ide0 at 0x1f0-0x1f7,0x3f6 on irq 141 G. }9 Z0 d: A2 L
  ide1 at 0x170-0x177,0x376 on irq 15
6 U1 ]9 y0 W- @! X, J  PCI: Found IRQ 11 for device 00:1d.02 c& m+ \$ G4 ]
  PCI: Sharing IRQ 11 with 00:02.09 v' r! F1 Y9 ^7 l( i
  usb-uhci.c: USB UHCI at I/O 0x1800, IRQ 11# W# L' x% O9 B3 R) M  r) a1 U
  PCI: Found IRQ 10 for device 00:1d.1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:13:21 | 显示全部楼层

linux学习:LPI硬件和体系结构(四)

usb-uhci.c: USB UHCI at I/O 0x1820, IRQ 10   PCI: Found IRQ 5 for device 00:1d.2+ ~- F: H" K7 K0 @' v
  PCI: Sharing IRQ 5 with 00:1f.1
( X  |0 n0 h, o' D* u' M  usb-uhci.c: USB UHCI at I/O 0x1840, IRQ 5
! [9 Q' P! a: N  PCI: Found IRQ 9 for device 00:1d.7
3 Z1 Z8 l: p% r% ~  ehci-hcd 00:1d.7: irq 9, pci mem f885d000: s' Q7 s6 M! \% y  b
  parport0: irq 7 detected' Z4 G% b  Q* }! x
  PCI: Found IRQ 9 for device 02:08.0
* Y  x7 N! \% o$ T& |* k  PCI: Found IRQ 9 for device 02:08.0" u" r; y2 _9 F) `
  parport0: irq 7 detected% ^* W. D2 r, _
  PCI: Found IRQ 11 for device 00:02.0( O8 ~# j$ H1 F6 ?0 t9 l9 x  Z$ I
  PCI: Sharing IRQ 11 with 00:1d.0, [5 b5 g6 |4 ]
  PCI: Found IRQ 9 for device 00:1f.5
( c- L. W$ b  N  PCI: Sharing IRQ 9 with 00:1f.3; f% s9 B! Q5 {7 n6 |: ^9 t) A
  i810: Intel ICH4 found at IO 0x18c0 and 0x1c00, MEM 0xc0080c00 and0 B/ l+ J( C& O. V
  0xc0080800, IRQ 9& n0 m" Y2 y# r: T
  DMA: D( k  E8 t  c7 X$ ]" T2 A
  先前提及的与外围设备通过 IO 端口进行的通信,每次传递一个或者两个字节。对于快速的设备,服务中断会用掉大量 CPU 处理能力。更快的方法是使用 直接内存访问(Direct Memory Access,DMA),使用很少 IO 指令告诉设备到 RAM 中哪个位置去读或写数据,然后 DMA 控制器提供 RAM 和外围设备之间数据实际传输的硬件管理。5 t" j2 X6 j: K9 ^9 P/ P5 N
  谁可以猜出在哪里可以找到关于正在使用的 DMA 通道的信息,请举手。如果您说它是在 /proc/dma 中,那么就说对了。运行 cat /proc/dma 命令,可以看到如清单 7 所示的输出。
( Q- T( }4 y+ H5 x  清单 7. /proc/dma" {/ `  N4 r: P0 w$ p
  4: cascade
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:13:22 | 显示全部楼层

linux学习:LPI硬件和体系结构(四)

,在我们的示例中 /proc/dma 经常看起来是几乎是空的。也可以像前面处理 IRQ 那样,扫描引导消息来查找具有 DMA 能力设备的证据。 3 `7 y0 ^  o0 e7 E
  清单 8. /proc/dma
0 u: @. n/ g+ G  [ian@lyrebird ian]$ dmesg | grep -i dma
* ?# A: g- h1 M3 P9 N0 G/ B  ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
+ {. G/ U1 [! A" g& u  ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:DMA9 `! ^% M: t" A' `7 W- o& e
  hda: 312581808 sectors (160042 MB) w/8192KiB Cache,9 `; t& i% F" S- s
  CHS=19457/255/63, UDMA(100)( G& \) ?2 M- \, N6 p# @
  hdc: 398297088 sectors (203928 MB) w/7936KiB Cache,
- l2 A' V$ O1 z) {  CHS=24792/255/63, UDMA(33)
) @+ C8 K$ Y8 z6 O+ z, G* n  ehci-hcd 00:1d.7: enabled 64bit PCI DMA
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 09:29 , Processed in 0.470556 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表