Portin lukeminen lazaruksella

aikaa_vierinyt

Tuli mieleeni kysyä, että onko Lazaruksessa tukea io-portin luennalle muuta
kuin 8-bittisenä? Tiedän kyllä tämän x := port[0x378]; tavan hoitaa portista luku,
mutta nyt pitäisi lukea 32-bittisiä lukuja portista. Kyllähän tämä tuolla 8-bit tavallakin hoituu, mutta olisi tehokkaampaa saada luetuksi vähän isommissa paloissa. Mitenkä asm-upotus menee?

16

106

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Lukemalla 4 tavua kerrallaan ja pyörittelemällä bittejä...?

      • L_a_z_z_o

      • L_a_z_z_o kirjoitti:

        Pascal tarjoaa monia mahdollisuuksia pyöritellä bittejä.
        Joitakin esimerkkejä löydät:
        http://wiki.freepascal.org/Bit_manipulation

        Tuo on kömpelöä. Normaalisti on operaattorit >> ja <<

        Ehkä kannattaa valita käyttötarkoituksiin sopivampi työkalu.


      • Turbo_P
        M-Kar kirjoitti:

        Tuo on kömpelöä. Normaalisti on operaattorit >> ja <<

        Ehkä kannattaa valita käyttötarkoituksiin sopivampi työkalu.

        Noita vastaavia käskyjä on Pascal:ssa SHR ja shl.


      • M_Kar
        Turbo_P kirjoitti:

        Noita vastaavia käskyjä on Pascal:ssa SHR ja shl.

        >> on nopeempi kirjottaa kuin shr


      • D-Mar

        Mutta jos on mekaaninen kytkin mustilla kytkimillä, shr on nopeampi, lisäksi jos vielä aurinko on hitusen vielä päivän puoella shr on vielä nopeampi, paitsi jos sataa vettä.


    • Lue_se_manuaali

      Mahtaako lazarukseen mitään asm-koodia saada upoteltua...

      • L_a_z_z_o

    • L_a_z_z_o

      Se miten luetaan riippuu prosessorista. Esim. Free Pascal:ssa on tuettuna noin 200 eri ARM prossua. Lisäksi on esim. Intel 86 johdannaiset ymv. Eri prossuilla voi olla erilainen i/o. Ehkäpä tässä tapauksessa prossu kohtaisen assy koodin upottaminen olisi jokin ratkaisu

      • 7or7

        Juuri tätä itse asiassa hain. Kun vertaa tuota esimerkin assemblerin tasoa siihen, mitä löytyy esim. linuxin io.h:sta c:ssä, on ero melko järkyttävä. Tästä syystä mm. olen siirtymässä kokonaan pois c:n käytöstä ja kohti Lazarusta. Se nyt vaan sattuu toimimaan useammalla tasolla selkeämmin kuin c. Nytpä saan sen hw-tuen täydennettyä! Ei asm koskaan taida portattavaa ollut - ainakaan luettavana. Helpompi kuitenkin lukea _selkeää_ assembleria sen porttauksen toteuttamiseksi, varsinkin kun toteutettava toiminnallisuus on kuvatta kommenteissa Pascal:lla.


      • 7or7 kirjoitti:

        Juuri tätä itse asiassa hain. Kun vertaa tuota esimerkin assemblerin tasoa siihen, mitä löytyy esim. linuxin io.h:sta c:ssä, on ero melko järkyttävä. Tästä syystä mm. olen siirtymässä kokonaan pois c:n käytöstä ja kohti Lazarusta. Se nyt vaan sattuu toimimaan useammalla tasolla selkeämmin kuin c. Nytpä saan sen hw-tuen täydennettyä! Ei asm koskaan taida portattavaa ollut - ainakaan luettavana. Helpompi kuitenkin lukea _selkeää_ assembleria sen porttauksen toteuttamiseksi, varsinkin kun toteutettava toiminnallisuus on kuvatta kommenteissa Pascal:lla.

        Kuullostaa kyllä silti siltä, että teet jotain väärin. Mikähän laite siellä portissa mahtaa olla? Normaalisti kun tehdään pipe eikä hinkata mitään matalantason juttuja.


      • kaikki_oikein_tehtynä

        Itse rakentamani AVR-kontrolleri, joka ottaa vastaan 32-bittistä dataa siirtorekisterin kautta. Tällä tavalla saan optimoitua tiedonsiirron laitteiden välillä 1 asm-käsky/32bittiä dataa. Lisäksi kun tuohon ottaa DMA:n mukaan, on prosessorikuorma melko vähäinen. Tällä hetkellä se kerää mittausdataa nopeudella 1mbit/s prossukuorman ollessa vanhalla 120MHz penalla n. 35%.


      • kaikki_oikein_tehtynä kirjoitti:

        Itse rakentamani AVR-kontrolleri, joka ottaa vastaan 32-bittistä dataa siirtorekisterin kautta. Tällä tavalla saan optimoitua tiedonsiirron laitteiden välillä 1 asm-käsky/32bittiä dataa. Lisäksi kun tuohon ottaa DMA:n mukaan, on prosessorikuorma melko vähäinen. Tällä hetkellä se kerää mittausdataa nopeudella 1mbit/s prossukuorman ollessa vanhalla 120MHz penalla n. 35%.

        Suorituskyky ei ole yleensä ikinä minkäänlainen ongelma.


      • 21or21

        Kyllä se silloin on, kun rakennetaan sen varaan, mitä on saatavilla ilman lupaa ostaa mitään uutta. Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa. Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista. Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla. Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi ja tilalle on astunut tekniikan korvaaminen vähän avoimemmalla tekniikalla - ilman turhia välistä vetäjiä. Miksi käyttää tekniikkaa, joka pystyy n. 10ns tarkkuuteen, kun vaadittu tarkkuus on luokkaa 0,1s.


      • 21or21 kirjoitti:

        Kyllä se silloin on, kun rakennetaan sen varaan, mitä on saatavilla ilman lupaa ostaa mitään uutta. Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa. Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista. Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla. Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi ja tilalle on astunut tekniikan korvaaminen vähän avoimemmalla tekniikalla - ilman turhia välistä vetäjiä. Miksi käyttää tekniikkaa, joka pystyy n. 10ns tarkkuuteen, kun vaadittu tarkkuus on luokkaa 0,1s.

        "Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa."

        Kerrotko mistä ostit ja mitä? Kiinnostaa.

        "Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista."

        Ei nyt kuullosta miltään hurjalta kehityksen tahdilta kun on joku vanha Pentium siinä käytössä.

        "Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla."

        Nykypäivänä tietoteknisten ongelmien ratkaisu on hyvin halpaa kun uuden tietokoneenkin saa muutamalla kympillä ja ohjelmat maksutta.

        "Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi"

        Miksi niitä pitäisi päivittää?


    • maailman_menot

      No näitä tuli käytettyä:
      http://www.futurlec.com/ICAtmel.shtml
      -tarkemmin sanoen se oli tuo mega 168, eli arduinon serkku
      -noissa tinyissä olen myös 2313:sta käyttänyt, se on 0,95 dollarin hinnalla
      sopivan halpa - jos ei tarvita AD-muunninta siis. Silti siinä on rs232/spi/i2c, millä pärjää jo pitkälle. Ja jos loppuu nastat, niin näitähän saa laitettua levyllä vaikka kaksi!
      Laitemyyjät haluavat myydä tuon penan tilalle jo jotain uudempaa - ei siis onnistu enää ostaa "vanhaan" uutta korttia vaan pitäisi päivittää koko järjestelmä. Ja edelleenkin se 0.1s reagointitaso riittää, eikä uudelle luvattu 10ns tulisi edes käyttöön. Ohjaussofta on tehty aikanaan Delphillä.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vasemmistohallitus palauttaa hintasääntelyn, esim. bensalitra vain 1e.

      Tuleva vasemmistolaisista koostuva hallitus ottaa käyttöön vanhat hyvät keinot pitää hinnat kurissa. Tähän tarkoitukse
      Maailman menoa
      86
      4660
    2. Vasemmistolainen valehteli jälleen - Purra tai persut eivät luvanneet "euron bensaa"

      Väite "euron bensasta" on ensisijaisesti poliittisten vastustajien käyttämä puhdas vale. Persut kyllä kampanjoivat näky
      Maailman menoa
      109
      3857
    3. Arman Alizadin viesti puna-aktivisteille: "Pitäkää lärvinne nytkin kiinni"

      Arman Alizad kritisoi vasemmiston kaksinaismoralismia. Iranissa syntynyt suosikkijuontaja Arman Alizad pakeni perheensä
      Maailman menoa
      189
      3694
    4. Minja Koskela nostanut vasemmistoliiton kannatuksen ennätykseen

      Koskela valittiin puolueen johtoon lokakuussa 2024, ja silloin Ylen kysely antoi puolueelle 9,3 prosentin kannatuksen.
      Maailman menoa
      69
      2108
    5. Antti johtaa Petteriä jo 7,1 prosenttiyksiköllä

      Tällä menolla sdp menee kokoomuksesta kierroksella ohi jo tällä vaalikaudella. https://yle.fi/a/74-20213575
      Maailman menoa
      75
      1941
    6. Mitä on tullut

      Entisen abcn rakennuksen tilalle se oli tyhjillään monta vuotta siellä oli jo nyt valot onko huoltoasema? 5:30.
      Haapavesi
      79
      1298
    7. Harmi nainen kun

      olet niin elähtäneen näköinen. Miestä et koskaan löydä itelles. j
      Ikävä
      130
      1172
    8. Palosta selvinnyt 18 vuotias munira tarvitsi tulkin kun puhui Iltalehdelle

      Suomessa asuva 18 vuotias tarvii tulkin !!! Tää Suomea puhumaton on palossa kuolleen naisen veli ja asui perheen kanssa.
      Vantaa
      153
      1127
    9. Minne pyydän sut?

      Jotta saan nähdä 🤨
      Ikävä
      51
      1034
    10. Mikä homma?

      https://share.google/NvruSS4P4EzjTWPov Poliisilla oli keskiviikkona 4. maaliskuuta yksityisasunnossa Saarijärvellä tehtä
      Saarijärvi
      30
      914
    Aihe