Linux Device Drivers (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Device Drivers (3rd Edition) [Electronic resources] - نسخه متنی

Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید








10.1. Preparing the Parallel Port


Although the parallel interface is simple,

it can trigger
interrupts. This capability is used by the printer to notify the
lp driver that it is ready to accept the next
character in the buffer.

Like most devices, the parallel
port
doesn't actually generate interrupts before
it's instructed to do so; the parallel standard
states that setting bit 4 of port 2 (0x37a,
0x27a, or whatever) enables interrupt reporting. A
simple outb call to set the bit is performed by
short at module initialization.

Once interrupts are enabled, the
parallel interface generates an interrupt whenever the electrical
signal at pin 10 (the so-called ACK bit) changes from low to high.
The simplest way to force the interface to generate interrupts (short
of hooking up a printer to the port) is to connect pins 9 and 10 of
the parallel connector. A short length of wire inserted into the
appropriate holes in the parallel port connector on the back of your
system creates this connection. The pinout of the parallel port is
shown in Figure 9-1.

Pin 9 is the most significant bit of the parallel data byte. If you
write binary data to /dev/short0, you generate
several interrupts. Writing ASCII text to the port
won't generate any interrupts, though, because the
ASCII character set has no entries with the top bit set.

If you'd rather avoid wiring pins together, but you
do have a printer at hand, you can run the sample interrupt handler
using a real printer, as shown later. However, note that the probing
functions we introduce depend on the jumper between pin 9 and 10
being in place, and you need it to experiment with probing using our
code.


    / 202