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

93

    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. SDP palauttaa Suomen kansalle kulta-ajat

      Hyvinvointivalto on pääosin SDP:n ja osin myös Maalaisliiton rakentama. Hyvinvointivaltion ylläpito edellyttää oikeude
      Maailman menoa
      141
      13076
    2. Purran tuhoja tuskin saadaan koskaan korjatuksikaan

      Purra on aiheuttanut Suomen taloudelle karmaisevat tuhot. Sen lisäksi Purra on ajanut myös suuren osan Suomen kansasta k
      Maailman menoa
      213
      11966
    3. Marinin tuhojen korjaaminen kestää kahdeksan vuotta

      Nyt on vasta neljännes mennyt ja ensimmäiset korjausliikkeet saatu liikkeelle. Innokkaimmat olivat odottaneet että jo t
      Maailman menoa
      162
      10125
    4. Aamun Riikka: työttömyydessä lähestytään viime laman synkintä vaihetta

      Nopeasti mentiiin upean Marinin hallituksen ennätystyöllisyydestä toiseen ääripäähän, kohti Suomen historian kurjimpia t
      Maailman menoa
      72
      9581
    5. Älkää vassarit kuvitelko, että Marinin kulta-ajat palaavat

      Vaikka demarit voittaisivat seuraavat vaalit, se ei palauta Marinin taskut-täyteen-kelasta-aikaa takaisin, ei voi eikä h
      Maailman menoa
      94
      9064
    6. Suomen velka kasvoi ennätysvauhtia - Mäkynen repostelee

      – Velka kasvoi eniten tilaston historiassa, Mäkynen kirjoittaa. – Vuoden 2025 toisella neljänneksellä selvästi eniten k
      Maailman menoa
      13
      7695
    7. Se oli Orpo joka rynni Eagle S -alukselle

      Vastoin kaikkia kansainvälisen merenkäynnin sääntöjä. Kunpa olisi ollut purjehtija Harkimo Suomen johdossa silloin. ht
      Maailman menoa
      18
      7547
    8. Giorgia Meloni vs Riikka Purra

      Kyllä Italian pääministeri on kauniimpi ja seksikkäämpi, kuin Suomen valtiovarainministeri Riikka Purra. Mitä jotkut näk
      Maailman menoa
      38
      6684
    9. 140
      6089
    10. Demarikultin uhri kertoo

      Demarikultin uhri kertoo: “En saanut mennä edes suihkuun ilman lupaa” – Seksuaalisen hyväksikäytön uhri kertoo vuosistaa
      Maailman menoa
      91
      5925
    Aihe