Direkt hardver elérés

Direkt hardver elérés

Hozzászólások

Hm, elég szomorú, hogy kissé üres ez a fórum... Abban bíztam, hogy itt találok hozzáértőt.
Mindegy, azért felteszem a kérdésem: lehetséges e, és hogyan, kernel kód írása nélkül a hardver direkt elérése Linux alatt? Konkrétan a printer portot szeretném használni mikrovezérlő programozás céljából, és nem tűnik kellemesnek, hogy ehhez mindig DOS-t kelljen indítanom...

Sziasztok!

Van egy regi P1-es gepem, es ebbol szeretnek csinalni egy kis jatekszert. (Konkretan motor-fordulatszamvezerles es nehany A/D atalakito kimenetenek a tovabbitasa egy PC fele lenne a feladata.)

Ket kerdesem van ehhez kapcsolodva:
1. Ra lehet-e venni valahogy ezt a gepet, hogy videokartya nelkul is boot-oljon?
2. Ra lehet-e venni, hogy ROM-ban levo programot inditson, ahelyett, hogy a hattertarakon keresne boot rekordot?

Elore is koszonom a valaszokat!

Gondoltam mar erre is. Csak attol felek, hogy a gyari BIOS inicializalja ugyan az alaplapon a mindenfele chip-eket, de en ezt nem biztos, hogy meg tudnam tenni, es attol felek, hogy enelkul nem mukodnenek az alaplapra integralt periferiak. Pedig szamomra pont ez lenne az elonye ennek a megoldasnak, mondjuk egy mikrokontrollerrel szemben. (Arrol nem is beszelve, hogy nem vagyok jartas a mikrokontrollerek vilagaban.)

Most jutott eszembe egy masik otlet, hogy a sajat programomat, ugy helyeznem el gepben, mint egy standard BIOS bovites. (Mint pl. a videokartyak BIOS-a)
Es ezzel megprobalnam becsapni az alaplapi BIOS-t, ugy hogy amikor az en ROM-ban levo rutinjaimra allitanam be az interrupt-tablaban a 13h es a 19h (ha jol emlekszem ezzel a hivassal tolti be a BIOS a boot sector-t) interruptok cimeit.
Szerintetek ez a megoldas mukodhet?

hmm... standard BIOS bővítéshez AFAIK szükséges valami kártya (esetleg egy meglévő video kártyának a BIOSát írod felül). Csak ehhez kártyát csinálni sem lenne járható út számomra legalábbis. Régi video kártyát használni az szóba jöhetne, de ez sem egyszerű dolog, általában EPROM-ban van a kódjuk, ahhoz pedig kell EPROM író, azt törölni kell UV fénnyel, stb. stb.

Nem tudnál találni valami egyszerűbb megoldást, mint pl. rávenni a mostani BIOS-t hogy bebootoljon egy pen driveról?

Azonkívül ha már A/D átalakító és motor fordulatszámmérésre kell az egész, akkor szerezz egy rendesebb PIC-et, meg tudod oldani vele a RS232 kommunikációt a PCvel és akkor nincs szükség erre az egész alaplapos biosos dologra. Ha jól értettem.

"Nem tudnál találni valami egyszerűbb megoldást, mint pl. rávenni a mostani BIOS-t hogy bebootoljon egy pen driveról?"
Ez konkretan biztos, hogy nem fog menni, ugyanis nincs USB vezerlo az alaplapon.

A BIOS bovites nekem nem tunik olyan bonyolultnak, valoban egy kartya kell hozza, a kartyan egy eleg egyszeru logikat kell csak megvalositani, hogy a ROM-ot a CPU a memoria reszekent lassa. Konkretan ilyet meg nem csinaltam, de ISA buszra mar keszitettem primitiv cuccokat. Ez sem tunik sokkal bonyolultabbnak.

A PIC-eket meg nem nagyon ismerem, majd utanajarok, hogy mire is kepesek igazabol. Lehet, hogy tenyleg ez lenne a legegyszerubb megoldas.
Mindenesetre koszonom a valaszokat!

Még mindig azt mondom, hogy egy PIC-kel nagyon könnyen meg lehet ezt csinálni. Nekem sincs sok tapasztalatom vele, de egy 16F84gyel kísérletezgettem 1x. Történetesen egyidejűleg vezérelt egy egyenáramú motort, egy ledet és közben kommunikált a soros porton (parancsokat fogadott és válaszolt). És az egészhez nem kell más mint egy programmer (http://www.jdm.homepage.dk/newpic.htm), egy PIC és néhány áramköri elem. Az AD átalakítók kimenetének a továbbítását is meg lehet vele oldani. És sokkal kevesebbet fog fogyasztani, kisebb helyen elfér, nem kell neki pontos 5V, egyszerűbb hardver kevesebb gond, stb. stb.
Ami a soros kommunikációt illeti, még az RS232 jelszíntátalakítókat is megspóroltam (http://www.geocities.com/uirr/index.htm).

Szóval gondolkozz el a PICes megoldáson... Ami a programozását illeti, azt is egy hétvége alatt átvettem. Van open source szoftver is hozzá (gnupic, picprog, stb.)...

Ha a programod elfér 128kb-ban, akkor kell csinálnod egy isa-s kártyát, amin pl. epromban ott csücsül a kód, a kártya pedig ezt az epromot illeszti a d000:0000 ill. e000:0000 tartományba.
Ha az itt látható memória megfelel bizonyos szabályoknak (ha jól emlékszem, 0x55, 0xaa-ra kell végződnie, de ez nem tuti), akkor a bios inicializáláskor rá fog ugrani.
Részletesebben nekem is utána kell néznem, addig viszont ajánlanám Abonyi Zsolt "PC Hardware kézikönyv" című könyvét.

Tipp: ha nem akarsz kártyát tervezni/gyártani ezért, akkor keríts egy hálókártyát, amin van eprom-foglalat (általában 32k-s 24256-os szokott rátervezve lenni), és tedd be abba mint boot epromot, vagy a d-s vagy az e-s blokk első felére lesz illesztve :)...

De nem értem viszont, hogy ez miben lenne jó egy magasszintű (pl. linux-os) vezérléshez, hiszen ezzel max. a bios-t tudod átverni, azt meg a linux ívesen figyelmen kívül hagyja, ha meg az egész kódot asm-ben írnád, akkor inkább javaslok én is pic-et (www.microchip.com, 16Fxxx szériát javasolnám, flash-es, nem kell neki külön égetőfesz, elég sok minden van benne, az ára meg 2-300Ft-tól 2-3eFt-ig terjed. Nézz meg egy-két adatlapot!)

Ha viszont mégis linuxot akarsz rajta futtatni, de rom-ból, akkor valamilyen compactflash-ide illesztőt javasolnék, (erről már volt szó itt a hup-on valamelyik fórumban,) és akkor egyszerűen vinyónak látszik, és kész.

Koszi a link-eket!

Nezegetem a Parallax-ot is, meg a Microchip-et is. Biztatonak tunik mindketto.

"...egy magasszintű (pl. linux-os) vezérléshez..."
Nem akarok ra komoly op. rendszert. Csak felmerult bennem az otlet, hogy ezt a regi gepet hasznalom fel ilyesmire. Igazabol igy tenyleg agyuval lovok a verebre.
Ugyhogy egyre valoszinubb, hogy PIC-el lesz a problema megoldva. Van nehany ismerosom akik mar eleg sokat foglalkoztak vele, toluk biztosan tudok majd segitseget is kerni.
A halokartyas otlet nagyon tetszik, ezt mindenkeppen ki kell probalnom! Van is a gepben egy regi darab. :)

CF kartyat ra lehet rakni IDE portra, mint winyot, arrol siman tudsz bootolni. Kell egy atalakito, ilyet keress. Semmi aktiv cucc nincs benne, akar csinalni is lehet viszonylag egyszeruen szerintem.