Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Epp citanje podataka sa paralelnog porta

[es] :: C programiranje :: Epp citanje podataka sa paralelnog porta

[ Pregleda: 1174 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

myrmidon
B.Robert
Tungusia

Član broj: 10428
Poruke: 55
*.63.eunet.yu.



Profil

icon Epp citanje podataka sa paralelnog porta16.12.2004. u 21:30

Imam problem prilikom citanja podataka na paralelnom portu u EPP modu. U BIOS-u sam podesio epp mod ali nikako ne mogu procitati nista na D0-D7.

Da li treba nesto u XP-u ili Linux-u jos dodatno podesiti (kako)?

Saljem deo jednostavnog koda(linux) koji ispisuje nesto na Data port zatim pokusava da cita sa porta, ali bezuspesno. POMOC!

#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>

#define BASEPORT 0x378 /*lpt0*/

int main()
{


/* otvaranje porta */
if (ioperm(BASEPORT,3,1))
{
perror("ioperm");
exit(1);
}





outb(32,BASEPORT);

printf(" Written 32 ....\n");
usleep(50000);

printf(" Read : %d\n",inb(BASEPORT+4));

/*Zatvaranje porta*/
if (ioperm(BASEPORT,3,0))
{
perror("ioperm");
exit(1);
}


exit(0);

}
Myrmidon
16.12.2004. u 21:30 

Dejan Lozanovic
Senior Software Developer - Team Leader , www.limores..
Beograd

Moderator
Član broj: 691
Poruke: 1991
195.178.35.*

Jabber: null@elitesecurity.org
Sajt: www.limores.net


Profil

icon Re: Epp citanje podataka sa paralelnog porta17.12.2004. u 08:36
Predpostavljam da ovaj kod pokusavas da pokrenes kao root, jer kao obican korisnik neces moci da pozivas ioperm.

Drugo sto ne koristis /dev/lp0 i ako ti trebaju neka dodatna podesavanja koristis ioctl

Trece ako bash moras da koristis ioperm, potrudi se onda u kernelu da ti parport ikompajliran kao modul, i potrudi se da ne bude ucitan, tj da skine lock sa porta kojem zelis da pristupas.


"E tako se to radi , kratko ali j.e.b.i.t.a.c.n.o"
Degojs car - http://www.elitesecurity.org/t306994
17.12.2004. u 08:36 

myrmidon
B.Robert
Tungusia

Član broj: 10428
Poruke: 55
*.ptt.yu.



Profil

icon Re: Epp citanje podataka sa paralelnog porta17.12.2004. u 14:20
uopste nemam problema sa ioperm-om ili sa outp funkcijama.

Sve to skljaka kako treba.

Problem je u citanju podataka sa data portova (baseport+4).

Hvala na odgovoru ali bilo bi dobro da kazes neke konkretne korake za nesto sta preporucujes.


Myrmidon
17.12.2004. u 14:20 

Dejan Lozanovic
Senior Software Developer - Team Leader , www.limores..
Beograd

Moderator
Član broj: 691
Poruke: 1991
*.vdial.verat.net.

Jabber: null@elitesecurity.org
Sajt: www.limores.net


Profil

icon Re: Epp citanje podataka sa paralelnog porta17.12.2004. u 20:29
Pa konkretan odgovor ti nazalost ne mogu dati jer nikada nisam radio sa paralelnim portom. Ali moj je savet da se ne spustas na nivo ioperm i da koristis inb i outb. vec koristi ioctl sistemski poziv da konfigurises paralelni port, a svo citanje i pisanje da radis preko fajla /dev/lp0 (tacnije da budem jos precizniji preko major 6 minor 0) za lpt 1:

spisak svih ioctlova ces videti sa man 2 ioctl_list, a header fajl je /usr/include/linux/lp.h
"E tako se to radi , kratko ali j.e.b.i.t.a.c.n.o"
Degojs car - http://www.elitesecurity.org/t306994
17.12.2004. u 20:29 

Odin D.

Član broj: 37292
Poruke: 254
*.dialup.sezampro.yu.



Profil

icon Re: Epp citanje podataka sa paralelnog porta19.12.2004. u 00:05
#include <unistd.h>
#include <sys/io.h>

Nisam bas siguran u ovo sto cu napisati, a ni u te biblioteke koje koristis, jer nisam sa njima radio, ali kad sam ja nekad davno hteo da pristupim portovima, a radio u Windowsu XP, saznao sam da on iz bezbedonosnih razloga ne dozvoljava pristup portovima kao sto je to bio slucaj kod raniji verzija Windowsa, vec to mora da ide preko drajvera ili tako nesto. U tu svrhu sam sa interneta skinuo neke dll biblioteke (cini mi se nesto kao ioport32.dll ili nesto slicno tome), ali to mi nije proradilo.
Znaci, ili nadji neki vec gotov drajver za tu svrhu, ili moras sam da ga napises.
Ima i jedna knjiga (hardversko elektronicarskog tipa) koja se zove PC INTERFEJSI, a koju je napisao Vojo Milovanovic (bilo je nedavno da se kupi u Radio Klubu, Timocka 18, www.radioklub.co.yu), u kojoj je opisano kako se prave interfejsi za paralelni, serijski, usb, game port itd. Uz nju dolazi i neki CD na kom su potrebne biblioteke za pristup tim portovima, navodno radi na svim verzijama Windowsa, ukljucujuci i XP (u knjizi se radi na C-u, Visual Basic-u, Turbo Pascal-u, QBasicu i Delphi-u)
19.12.2004. u 00:05 

Burgos
Zrenjanin

Član broj: 12484
Poruke: 1242
*.smin.sezampro.yu.

ICQ: 290190857
Sajt: www.last.fm/user/Burgos


Profil

icon Re: Epp citanje podataka sa paralelnog porta06.04.2005. u 14:25
Izvinite sto vadim temu, ali mozda nekom zatreba:

Greska je u tome sto ti nije otvoren port za citanje (nisi ga otvorio sa ioperm())

Definicija:

Code:
ioperm(from, num, turn_on)


Gde je

from Pocetna adresa porta
num Broj portova koji da se otvore (otvorice se svi portovi u opsegu from + num)
turn_on 1 za otvoriti, 0 za zatvoriti

Ti sa inb(BASEPORT+4) pokusavas da otvoris port 0x37C (0x378 + 0x4), a ti si sa

ioperm(BASEPORT, 3, 1) otvorio portove samo od 0x378 do 0x37A

znaci moras pozvati ioperm(BASEPORT, 5 , 1) da ne bi dobijao gresku

"Segmentation Fault" koja oznacava da nisi otvorio port kome zelis da pristupis.
"Don't you worry about wikipedia, we'll change it when we get home... We'll change a lot of things..."
Homer J. Simpson
Ovo mora u potpis:
"Portability is for people who cannot write new programs" Linus T.
06.04.2005. u 14:25 

[es] :: C programiranje :: Epp citanje podataka sa paralelnog porta

[ Pregleda: 1174 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.