logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zacząć przesiadkę z '51 na AVR? Literatura i podstawy asemblera AVR

Darson55 05 Lip 2005 20:07 1610 9
REKLAMA
  • #1 1631504
    Darson55
    Poziom 10  
    Posty: 46
    Do tej pory wszystki projekty opierały sie na '51 ale z wielu źródeł słysze ze AVR jest prockiem o wiele lepszym i postanowiłem to sprawdzić w praktyce, tylko nie wiem co powinieniem wsumie o nim wiedzieć od czego zacząć?? Moze zna ktoś jakąć sprawdzoną literatute??
    Z języków programowania znam tylko asemblera.
    Zgóry dzięki za zainteresowanie się temetem.
  • REKLAMA
  • #2 1631537
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    "Mikrokontrolery AVR w praktyce" J.Dolinski. Ksiazka w sam raz dla Ciebie, zawiera opis peryferiow i architektury, liste rozkazow. Skoro znasz asembler to znaczy ze jestes blisko "sprzetu" wiec nie bedziesz mial wiekszych klopotow. Wieksza roznica w stosunku do C51 to fakt ze to procesor RISC wiec ma duza liczbe rejestrow (32) roboczych na ktorych wykonuje sie wszelkie operacje. Wiec zeby np. dodac dwie zmienne znajdujace sie w pamieci trzeba je najpierw skopiowac do rejestrow roboczych i dopiero mozna zrobic instrukcje add. Nie mozna tak jak to jest w C51 dodac zawartosc akumulatora do jakiegos bajtu w pamieci. Pisze o tym bo czesto sie na tym lapalem gdy sam przechodzilem przesiadke ;) Niestety duza wada AVR jest to ze nie wszystkie instrukcje dzialaja ze wszystkimi rejestrami. Glownie instrukcje odpowiedzialne za stale moga byc wykonywane tylko z rejestrami od R16 do R31, ale to wszystko jest w ksiazce i kompilator zglasza bledy jesli sie uzyje zlego rejestru.
    Pozdro
    Dexter
  • REKLAMA
  • #3 1631543
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    http://www.atmel.com/dyn/products/datasheets.asp?family_id=607 (Noty katalogowe)
    http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 (Noty aplikacyjne )
    http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 (AVRStudio - spory kombajn do AVRasm v.2 z symulatorem)
    http://www.elektronika.qs.pl/asm_prog001.html (Pierwsze kroki - LED itp.)
    www.google.pl ;) (Tu mieszka wróżka... ;))
    Jakiś troszkę bardziej skomplikowany przykład do analizy :
    https://www.elektroda.pl/rtvforum/topic294724.html#1478311
    --
    Pozdrawiam, Daniel
  • #5 1637540
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Na początek proponowałbym jako kompilator i środowisko uruchomieniowe AvrStudio.
  • REKLAMA
  • #6 1638968
    Darson55
    Poziom 10  
    Posty: 46
    A jakieś ewentualnie namiary na to AVRStudio czy coś innego i jakis dobry kompliatro??
    Z Góry dzieki
  • REKLAMA
  • #7 1639544
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    AVRStudio jest na stronach Atmela, w pakiecie jest kompilator asemblera.
    Pozdro
    Dexter
  • #8 1639768
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Darson55 napisał:
    A jakieś ewentualnie namiary na to AVRStudio czy coś innego i jakis dobry kompliatro??
    Z Góry dzieki
    No to widzę, że szanowny kolega olał moje linki, co podałem u góry... nieładnie... ;)
  • #9 1642292
    Darson55
    Poziom 10  
    Posty: 46
    O soróweczka noty katalogowe widziałem ale AVRStudio zupełnie przeoczyłem!!
    Sorki

    Dodano po 20 [minuty]:

    A dzięki bardzo Light'I!!
    ale czy tam gdzieś jest jakis kompilator asemblera pod avera??
  • #10 1642399
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    Darson55, czy Ty naprawdę nie umiesz czytać? Przecież Light'I wyraźnie napisał w swoim pierwszym poście, że AVRStudio to taki kombajn (zintegrowane środowisko) do kompilatora assemblera avrasm2. Oczywiście, możesz sobie ściągnąć samego avrasm2.exe i kompilować programy z linii poleceń (ja tak czasem robię jeśli nie mam pod ręką Linuksa) albo możesz ściągnąć sobie starszą wersję avrasm/wavrasm ze strony Atmel'a.
    Możesz też ściągnąć kompilator AVRA lub TAVRASM. Obydwa działają pod DOS/Windows/Linux. Podobno są między nimi jakieś różnice ale ja dotychczas jak napiszę jakiś programik to kompiluję wszystkimi i wychodzi kod identyczny. Aha, używam jeszcze kompilatora GAVRASM. Możesz o nim poczytać na najlepszej (to moja subiektywna opinia) stronie o nauce assemblera dla mikrokontrolerów AVR czyli http://www.avr-asm-tutorial.net/ - niestety, po angielsku lub po niemiecku.
    Z książek to jeszcze bym polecał coś pana Arkadiusza Krysiaka ale nakład powoli się wyczerpuje.

Podsumowanie tematu

LABEL_AI_GENERATED
Przy przejściu z mikrokontrolerów 8051 na AVR warto zacząć od poznania architektury RISC AVR, która posiada 32 rejestry robocze i wymaga kopiowania danych do rejestrów przed operacjami arytmetycznymi, co różni się od modelu 8051. Polecana literatura to "Mikrokontrolery AVR w praktyce" J. Dolińskiego oraz książki Arkadiusza Krysiaka. Do nauki asemblera AVR dostępne są liczne przykłady i tutoriale, m.in. na stronach http://www.avr-asm-tutorial.net oraz w linkach do not katalogowych i aplikacyjnych Atmela. Jako środowisko programistyczne rekomendowane jest AVRStudio, które zawiera kompilator asemblera avrasm2 oraz symulator. Alternatywne kompilatory asemblera to AVRA, TAVRASM oraz GAVRASM, działające pod różnymi systemami operacyjnymi. Dokumentacja i narzędzia dostępne są na oficjalnej stronie Atmela. Wskazano również na różnice w dostępności instrukcji dla poszczególnych rejestrów AVR, co jest istotne przy pisaniu kodu asemblerowego.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA