abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

    Ladislav Hagara | Komentářů: 3
    včera 13:00 | Nová verze

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 1
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    13.1. 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 5
    13.1. 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (45%)
    Celkem 434 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník

    Dotaz: Programování hardware

    8.11.2003 11:21 Petr
    Programování hardware
    Přečteno: 898×
    Zdravím
    Chtěl bych se zeptat, jestli někdo nenarazil na nějaký článek, nebo publikaci (pokuď možno česky psanou), která by vysvětlovala, jak programovat hardware (jazykem C ) - upřestním: To že se s různým hardware komunikuje pomocí tzv. speciálních souborů je vcelku jasné (např: /dev/dsp - zvukovka) - mě by zajímalo, jak tato komunikace probíhá.
    Jak zjistím, u určitého spec. souboru (/dev/*)(např.: ttyS0 - port 0x3F8), který modul ho má nastarost a naopak (jaký soubor "ukazuje" na port 0x70 - kde by měl bý CMOS) (pokud není obsluha v jádřě).
    Jak se nastavují ruzné registry portu(např v dosu-pascal: port[0x3f8+4]=1; {nahozeni RTS} - jak to udelat v C v Linuxu (UNIX)).
    Jak funguje přerušení a jeho obsluha.
    Jak probíhá komunikace mezi programem - modulem a modulem - hardwarem. a podobně.
    Předem díky za každou odpověď.

    Odpovědi

    8.11.2003 15:39 Lubos
    Rozbalit Rozbalit vše Prog. hardware
    Kniha:: Linux programuje profesionalne. www.vltava.cz a INTERNET
    9.11.2003 09:13 Petr
    Rozbalit Rozbalit vše Prog. hardware
    To ze je na internetu skoro vsechno, to je celkem jasny. Horsi je to najit, a kdyz to najdes, tak abys tomu vubec rozumel. Rosipanou rejsi pouze jim. Co se tyce teto publikace, uz jsem se na ni dival, ale asi ctvrtina knihy se blizi tomu, co bych chtel vedet, takze vuci cene knihy bych vyhodil pres pet stovek jen tak do vzduchu a na to opravdu nemam.
    9.11.2003 17:16 David Jež | skóre: 42 | blog: -djz | Brno
    Rozbalit Rozbalit vše Prog. hardware
    Ahoj,
    Mno, v C se hardware programuje uplne stejne jako v jakemkoliv jinem jazyce, posilanim/prijimanim dat ze zarizeni. Nejlepsi bude vzit si nejaky manual k Ccku, prip. Advance Linux Programing.

    Co se linuxu tyce, rozdil mezi linuxem a dosem je v kompletni zmene chapani celeho systemu, asi tak, jako rozdil mezi programovanim procesoru z celniho panelu procesoru versus psanim programu v pascalu. Pokud umis treba pascal, muzes psat program pro komunikaci s nejakym zarizenim primo ctenim/psanim na porty. Tento program ale pobezi pouze rootovi. Proto jsou zde specialni soubory, jejich komunikace s okolim je snad jasna. Ktery soubor prisulsi kteremu modulu je psano treba v dokumentaci k jadru.

    Tve priklady jsou z pohledu UN*Xu naprosto irelevantni: nejake 0x378 zna tak akorat pouze PCcko. Na jakekoliv jine architekture to bude jinak, proto se z userspace s porty nesetkas :-). Tedy v konkretnim pripade, jestli dato pujde na 0x378 nebo treba nekam do PCI serioveho radice (nebo na jine architekture treba poplavou data po DMA kanalech...) vi akorat ovladac seroveho portu.

    Nahazovani ruznych registru lze udelat z ovladace nejakeho zarizeni v jadre. At uz porty, nebo PCI. Priklad z RTS nechapu: na co je to dobre? Pokud chces posilat data na standardni port, pouzijes jaderny ovladac. Pokud potrebujes jinou praci s portem, budes si muset napsat neco podobneho (tedy ovladac do jadra).

    Komunikace mezi /dev souborem a HW pomoci ovladace, do neho se dostanou tak, ze data ze souboru zachyti jadro systemu a to pozna podle tabulky cisel komu ho ma dat.

    Preruseni funguje tak, jak by clovek ocekaval ze ma fungovat. Tabulku preruseni obsluhuje jadro, preruseni oblsuhuje jadro a jeho ovladace. Z toho plyne, neocekavej nejake int 33h apodobne vylomeniny :-) Userspace toto prakticky nikdy nepouzije. Napr. mys se tedy resi pomoci knihoven a opet zarizeni, ne pomoci preruseni.

    Programovani hardwaru z userpsace sice trosicku mozne je, nicmene treba sahani na tabulku preruseni je v UN*Xech barbarstvi. Zapisy na port nejak mozne jsou (pod rootem) nicmene pokud bude port ovladat i jaderny ovladac neni jiste jak se to bude chovat. Tot asi vse, ve skratce se da rict ze na hardcore asm z dob dosu muzes bud rychle zapomenout, nebo nastudovat zdrojaky jadra a uplatnit zkusenosti tam. Je to proste trosicku jiny svet kteremu se musis nejak prizpusobit :-). Hodne stesti.
    -djz

    "Yield to temptation; it may not pass your way again." -- R. A. Heinlein
    9.11.2003 18:01 Petr
    Rozbalit Rozbalit vše Prog. hardware
    Diky za odpoved, ale tohle vsechno jsem vicemene tusil, jenom jsem to mozna blbe napsal. Nerikam ze tvuj prispevek neni pekny, ale z meho pohledu uplne na nic - jsem tam kde jsem byl pred tim a porad nevim, jak presne to funguje, abych mohl implementovat programy (a moduly) pro (i svuj) hardware. (
    9.11.2003 18:58 David Jež | skóre: 42 | blog: -djz | Brno
    Rozbalit Rozbalit vše Prog. hardware
    Aha, tak v tom pripade je to tezke, alespon z meho uhlu, kdyz vlastne nevim, co poradne vlastne chces. Abys vedel, jak naimplementovat (programy asi ne, viz. vyse...) moduly, tak zdrojaky jadra, pripadne dokumentace k nemu. Nic vice nepotrebujes. Vzhledem k tomu, ze byva dobrym zvykem cas od casu s novym jadrem hodne veci menit, asi nejakou tistenou knihu a navic v cestine nenajdes. Nicmene zdrojaky k jadru mas i v distribuci, tam najdes vse co potrebujes.
    Nekde jsem cetl vetu: "Nachystej si hodne hrnku kafe, obrn se hrosi kuzi, nenech se odradit a vzhuru do toho :-)"
    -djz
    "Yield to temptation; it may not pass your way again." -- R. A. Heinlein
    Josef Kufner avatar 9.11.2003 19:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Prog. hardware
    v knizce Linux – zaciname programovat, je docela pouzitelne popsano psani ovladacu. Doporucuju si tu knizku spis nekde pucit, nez ji kupovat. Je to rozepsany asi na 80 strankach (celkem jich je cca 800). A naucit se to z toho a udelat si vypisky :) (moc jich nebude).
    Hello world ! Segmentation fault (core dumped)
    11.11.2003 13:36 Petr
    Rozbalit Rozbalit vše Prog. hardware
    Diky za typ, zkusim se na to mrknout.
    16.11.2003 20:58 Beda
    Rozbalit Rozbalit vše Programování hardware
    jeste jednoduseji: man termios teda pro to seriove rozhranni. (a mozna i paralelni) to je ta naprosto idealni vrstva nad hardwarem, pod kterou uz vazne softwarak nema strkat nos.
    16.11.2003 21:03 Beda
    Rozbalit Rozbalit vše Programování hardware
    a jestli mas svuj hardware a mermomoci mu chces udelat vlastni zarizeni, prestoze jde o periferii na seriovem nebo paralelnim portu, tak napis modul do jadra. ps: necekej, ze se dostane do mainstreamu, pokud nedela neco opravdu dulezityho, co by tu cinnost pasovalo na jadernou stranu cary.
    16.11.2003 21:07 Beda
    Rozbalit Rozbalit vše Programování hardware
    koukni na to. verim, ze dost z toho plati i pro /dev/lp* zarizeni

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.