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

81

    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. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5604
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      32
      4940
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      29
      2834
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2384
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      2078
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      2038
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1657
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1621
    9. Ei tämä etene ikinä

      Kun kumpikaan ei enää ota yhteyttä. Mä en ainakaan uskalla.
      Ikävä
      26
      1582
    10. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      29
      1509
    Aihe