Teade

Collapse

Foorumi reeglid.

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

AVR jaoks C kood vaja Basic'u jaoks söödavaks teha

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

    AVR jaoks C kood vaja Basic'u jaoks söödavaks teha

    Tere.

    Olemasolev kontrolleri kood on kirjutatud Basicus Bascom-AVR abil. Testitud ja toimib kenasti.
    Nüüd oleks sinna juurde vaja lisada mõningane hulk C koodi, st. teha nii, et see oleks miskitmoodi 'söödav'/kasutatavs sellessamas Bascom-AVR keskkonnas.
    C koodi lugeda ma enamvähem suudan.

    Basicu koodi hetkel C-sse 'tõlkima' ei hakkaks, esiteks see nõuaks suhtkoht palju tööd + testimine ning teiseks C koodi on tunduvalt vähem kui Basicu oma.

    Milline oleks kõige otstarbekam/kiirem viis selle C koodi Basicusse saamiseks?
    Lihtsalt julmalt tõlkida või saab selle C kuidagi ASMi pööratud ning tulemuse otse Basicusse vahele lükata?
    Pole AVRStudio 4 võimalustega väga kursis.
    C koodist mingi teek teha ning see kuidagi Bascom-AVR abil otse Basicus kasutatavaks saada pole vist võimalik?

    Ideid/Ettepanekuid?

    Tore kui mõni eriti kogenud AVR-guru oleks nõus oma teadmisi MSN vahendusel jagama.

    #2
    Vs: AVR jaoks C kood vaja Basic'u jaoks söödavaks teha

    C koodijupid saab kompileerida kas objektifailideks (laiendiga ".o" või ".obj") või arhiivifailideks (laiendiga ".a" või ".lib").

    Käsurealt esimene (mälu järgi, näidis):
    Kood:
    avr-gcc -Wall -O2 -mmcu=atmega16 -c ckood.c
    ja teine variant:
    Kood:
    avr-gcc -Wall -O2 -mmcu=atmega16 -c ckood.c
    avr-ar cru ckood.a ckood.o
    Kui Bascom neid sööb, siis saab hakkama.


    Soovitan tõlkida. Erinevatest keeltest kokkulaotud projektides on probleemiks:
    1) pole võrdselt tugev kõikides keeltes
    2) kompileerimiseks peab olema vastavalt N korda rohkem kompilaatoreid käepärast (antud näite puhul Basic JA avr-gcc).

    Basic ja C on sarnasemad kui esmapilgul paistab. PC programmi puhul peaks saama tõlkida kiirusega 1000 rida koodi päevas, mikrokontrolleri koodi puhul tõenäoliselt aeglasemalt.

    Sõltumata valitud variandist pead tutvama vähem või rohkem põhjalikult selle C koodijupiga.
    If you think education is expensive, try ignorance.

    Comment


      #3
      Vs: AVR jaoks C kood vaja Basic'u jaoks söödavaks teha

      Tundub et Basicus siiski pole väliste .obj või .lib failide kasutamise võimalust.
      Lubab ainult assemblerit sisse haarata. Linker kui selline pole seal vist kasutusel seega.

      C koodiga on ka üks paras jama, tehtud teine IAR kompilaatori jaoks ning too miskipärast ei paku C -> ASM teisendamist välja.
      Huvitav, kui kood kohandada avr-gcc (WinAVR) jaoks ringi, kas siis saaks assembleri kätte?

      C koodi iseenesest pole üldse palju aga see koosneb enamasti hirmsast bitinikerdamisest, pole sugugi kindel, et kas see saab ka õigesti Basicusse kirjutatud... Eks uurin edasi.

      Comment


        #4
        Vs: AVR jaoks C kood vaja Basic'u jaoks söödavaks teha

        Esmalt postitatud bladerunner poolt Vaata postitust
        Huvitav, kui kood kohandada avr-gcc (WinAVR) jaoks ringi, kas siis saaks assembleri kätte?
        Vaata siia: AVR freaks: mixed C and assembler output

        Assembleri süntakseid on erinevaid, nii et Sa ei tarvitse toksimisest pääseda ja ühtlasi ka ringitoksimisest tekkinud vigadest.
        If you think education is expensive, try ignorance.

        Comment

        Working...
        X