Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

PIC18xxx linkeri skripti anomaaliad

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    PIC18xxx linkeri skripti anomaaliad

    Õhtast, PICutajad!
    Tekkis probleem ühe koodi assembleerimisega kasutades Microchipi linkeri skripte. Seni pole neid kasutanud, seepärast ka algaja küsimused.
    Koodi juurde kirjutades antakse pidevalt teada et "org2" (aadress) ei ole "word-aligned". Samas nagu oleks: algab aadressilt 0x2A. Mängisin aadressidega nii ja naa aga ei saa edasi. Krdi Macrochip, milleks nii näkku panna Skripti ennast aga olen sunnitud rakendama, kuna muidu ei tunta direktiivi "code_pack" ehk ühebaidiseid muutujaid EEPROMis.
    Tra, mai või enam...ehk keegi aitab edasi.
    Kood lisatud.
    Tähh!

    PS: asi on üle GSMi suhtlev (suvila) tule ja liikumisandurite monitoorimise süsteem. Apollo andurite osa töötab, katsetasin PIC16F88-l. Porteerimisel võis muidugi vigu tekkida. Muu on veel üsna alfa...
    Lisatud failid
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    #2
    Vs: PIC18xxx linkeri skripti anomaaliad

    Palun vabandust diletantliku märkuse pärast, aga ehk on viimast org'i õigem kirjutada vormis "org .42" ?

    1.
    org .0
    2.
    org .8
    3.
    org 0x002A
    If you think education is expensive, try ignorance.

    Comment


      #3
      Vs: PIC18xxx linkeri skripti anomaaliad

      See trikk kahjuks ei aita. Huvitav on see, et kui kirjutada 1 võrra suurem või väiksem aadress, pahandatakse et aadress peab olema "word-aligned" (18-l on ju 16-bitised käsud). Pannes kenasti paarisnumbriga aadressi, öeldakse et pole word-aligned ja seda ei saa kasutada got/call sihtmärgiks !!??
      Tundub, et tegelik viga on ikkagi kusagil mujal.
      0x2A tuleneb linkerist, kes reserveerib mälu alguse katkestuste jaoks. Milleks, ei mõista. Linkeri päises hoiatatakse: ei ole C-keele jaoks. Asmis ma ju defineerin ise, mida tahan. Milleks selline mälu raiskamine...
      - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
      - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

      Comment


        #4
        Vs: PIC18xxx linkeri skripti anomaaliad

        Ehk aitab edasi, kui panna mälu algus nulle täis:
        de 0
        de 0
        de 0
        kuni jõutakse niisamagi selle maagilise aadressini 0x2A-ni?


        P.S. assembleris progemiseks on sellel elukal flashi nii et tapab, võid ju raisata
        viimati muutis kasutaja andreie; 17 m 2007, 08:46.
        If you think education is expensive, try ignorance.

        Comment


          #5
          Vs: PIC18xxx linkeri skripti anomaaliad

          üldiselt on kombeks katkestuste viidad täis kirjutada, st kui katkestus ei ole kasutusel siis seal asub RETI vöi JMP to_analyysi_miks_keelatud_katkestus_toimus.
          C kompilaator genereerib selle automaatselt, ASMi puhul leiab standartse headeri.

          Comment


            #6
            Vs: PIC18xxx linkeri skripti anomaaliad

            Jah, hea komme. järgin edaspidi seda kindlasti.
            Aga viga käes! Nimelt olid vanad koodijupid, millised uude projekti pasteerisin, tõepoolest miite-paarisarv aadressidega. Stiilis goto $-1. Linker aga viitas jälgede segamiseks hoopis esimesele org'ile, millel polnud häda midagi. Krdi Makrochips...!!!
            Enne mõtle, siis pasteeri (V-Maarja vanasõna )

            Igal juhul tänud kaasa mõtlemast!
            - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
            - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

            Comment

            Working...
            X