Arduino cu asamblare?

Pentru aventura mea în microprocesare, am decis să merg cu Atmel AVR datorită vastelor resurse disponibile. Arduino pare să aibă și multe, ca să nu mai vorbim de kit-urile lor de start, care par mai ” la nivelul meu.

Problema este că mai întâi vreau să o învăț în asamblare, apoi să merg la C / C ++ sau la orice folosește Arduino, dar am „auzit că Arduino nu va câștiga” asamblarea AVR. E adevărat? Există vreo cale în jurul valorii de asta?

Edit: aș merge cu ATMEL STK500, dar pentru un prim cronometru pare FOARTE complicat. Există vreun motiv pentru care nu pot să obțin doar un AVR de 8 biți și să-l pun pe un panou de testare și să experimentez așa? (Cred că ar trebui să aflu cum să le interfațez ca atare.)

Edit2: la asta mă gândeam

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193

Comentarii

  • Cum merge? Deci, ce soluție ați luat în considerare? Am cumpărat Arduino Uo și căutam o modalitate de a mă dezvolta și în asamblare
  • Aș sugera să folosesc controlerul 89c51 (8051) pentru limbajul de asamblare

Răspuns

Plăcile Arduino pot fi programate în asamblare. Tot ce aveți nevoie este un cablu ICSP (In Circuit Serial Programmer) și lanțul de instrumente AVR (gratuit de la ATMEL) pentru a scrie pe tablă. Obțineți apoi avantajul de depanare la bord.

După cum ați sugerat, puteți pur și simplu să plesniți un cip ATMEL pe o placă de calcul și să mergeți în oraș.

Setul la care ați făcut referire arată ca un excelent punct de plecare. Puteți să scoateți cipul de pe tablă și să-l lipiți pe propria dvs. placă de măsurare (atâta timp cât are o putere reglată corect și aveți în vedere ceasul).

EDIT: Se pare că nu aveți nevoie de un ICSP pentru a încărca programele de asamblare. Pentru detalii, consultați comentariul de mai jos.

Comentarii

  • Da, ‘ vreau să rămân cu Nu-l pun pe propriul meu panou chiar acum lol Nu sunt atât de grozav cu circuite.
  • @Sauron – hah – în orice sens este bine. Orice te-ar prinde! Lucrul bun este că jetoanele individuale sunt destul de ieftine (vreo doi dolari sau cam așa).
  • Acest răspuns este în mod esențial înșelător: NICI ISP NU ESTE NECESAR . Bootloader-ul folosit de Arduino este anterior proiectului Arduino și nu are nicio idee dacă fișierul încărcat provine dintr-un compilator sau un asamblator. Vă rugăm să nu ‘ t perpetuează concepția greșită că bootloader-ul într-un Arduino are vreo legătură cu metoda de scriere a programelor pentru a viza hardware-ul; este pur și simplu un mecanism convenabil pentru a introduce codul de orice origine în cip.
  • @ChrisStratton – vă mulțumim pentru feedback. Am ‘ am actualizat răspunsul meu pentru a încorpora feedback-ul dvs.

Răspuns

ID-ul Arduino poate fi „fixat” pentru a găzdui codul de asamblare. Iată wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods

Comentarii

  • adresa URL pare a fi ruptă

Răspunde

Din câte știu, ar trebui să nu aveți nimic specific despre încărcătorul de încărcare Arduino care vă poate împiedica să utilizați ansamblul în loc de C. ID-ul Arduino poate face dificilă încărcarea propriilor fișiere .hex, dar se pare că încărcătorul de încărcare Arduino este compatibil STK500 , deci ar trebui să îl puteți folosi cu avrdude.

Comentarii

  • Da, de fapt, ID-ul Arduino în sine folosește avrdude pentru a efectua încărcarea.

Răspuns

Nu este deloc dificil.

http://www.dwelch.com/arduino/

Trebuie să te uiți la cred că ser.c pe pagina mea pentru a alege care carte. unii folosesc în mod implicit viteze diferite de port serial și diferite scheme de resetare pentru a intra în modul de programare. Dacă te uiți la firmware-ul arduino, descoperi că aproape niciuna dintre comenzile de programare avr nu este acceptată. Nu aveți nevoie de ele oricum.

Răspuns

arduino poate fi programat cu asamblare utilizând GCC-AVR Inline Assembler verificați acest link pentru Carte de bucate GCC-AVR Inline Assembler

http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf

Răspuns

Plăcile Arduino (Uno și Duemilanove, în orice caz) au un conector standard de programare AVR, care este acceptat de programatorii și depanatorii Atmel prin AVR Studio. Studio acceptă asamblarea și C. Un programator potrivit este AVRISP MkII, iar AVR Dragon oferă atât programare, cât și depanare. L-aș primi pe acesta din urmă, este mai scump la 50 USD, dar facilitatea de depanare este neprețuită. Puteți utiliza, de asemenea, aceste instrumente cu un cip AVR standard (nu Arduino) conectat la o placă de calcul sau un PCB.

Comentarii

  • Deși este ‘ adevărat că au un antet ICSP, există ‘ nu este nevoie să-l utilizați. Bootloader-ul funcționează la fel de bine cu orice mijloc de autor al programului și, de fapt, chiar și Arduino IDE se bazează pe programul de utilitate pre-existent pentru linia de comandă avrdude pentru a opera bootloader-ul.

Răspuns

Arduino este alcătuit din două piese: hardware și IDE. IDE vă limitează în principal (dacă nu complet) la C și C ++ (cu o cantitate de zahăr sintactic pe care dezvoltatorii l-au aruncat pentru a-l face un pic mai mult ca Procesare / Java). Există „șansa ca IDE să recunoască fișierele .s sau .S în același director ca o schiță standard (.pde), dar nu aș așeza pălăria pe asta.

Nu există nimic special despre hardware. Este „o placă drăguță, prietenoasă, cu o mulțime de caracteristici inteligente pe care neofiții µC o vor aprecia, dar dacă doriți să programați doar AVR prin antetul ISP, puteți face și asta. Veți avea nevoie de ceva de genul Atmel AVRISP mkII sau de orice alt programator care funcționează cu conectorul 2×3 rând de pe placa Arduino. Căutați altele care sunt compatibile cu programul avrdude pe care îl veți folosi pentru a vă încărca aplicațiile. Stai departe de USBtinyISP de la Adafruit; am avut noroc oribil și am cumpărat-o pe cea Atmel pe care am legat-o cu mai puțin de 40 USD de la Mouser.

Comentarii

  • Ciudat, ‘ nu am avut decât experiențe bune cu Atmel IDE și usbtiny. De asemenea, buspirate se va dubla ca un isp pentru mai multe platforme diferite, un mic instrument excelent
  • Nu ‘ nu este nevoie de un adaptor ICSP, bootloaderul funcționează bine cu orice mijloc de autor al programului

Răspuns

Aruduino poate fi absolut programat în asamblare. Și nici măcar nu aveți nevoie de un cablu ICSP pentru a face acest lucru!

Bine, corect, acest lucru nu este nu același lucru cu programarea în asamblare pură de la bază.

Dar puteți asambla inline în C. Ceea ce înseamnă că puteți încărca cod pe Arduino care are asamblare inline, care va fi apoi executat. Luați în considerare biblioteca TVOut , care permite Arduino să emită NTSC / PAL către un televizor.

Biblioteca respectivă este foarte sensibilă la timp (deoarece este trimisă către un televizor, fiecare linie de scanare trebuie să fie scrisă în dreapta timp.) Deci, folosește asamblarea în linie pentru a accelera procesul. Privind linia 89 a acestui fișier din bibliotecă, autorul folosește o parte din macro-uri de asamblare pe care le-a scris.

Acum. Bănuiesc că nu le-a scris folosind IDE-ul Arduino implicit. Dar această bibliotecă apelează la linia sa cod asm, pe care oricine îl poate importa, compila și executa prin interfața sa.

Mult noroc!

Comm ents

  • De fapt, puteți face și fișiere sursă de asamblare, trebuie doar să omiteți IDE-ul Arduino și să interacționați cu instrumentele back-end, cum ar fi avr-gcc (sau orice folosiți ca asamblor) și avrdude direct.

Răspuns

Eu folosesc Linux ca platformă gazdă, dar eu cred că aceste instrumente sunt disponibile și pentru soiurile Windows.

Folosesc ” avra ” pentru asamblare în cod hex. converter (compilator)

Apoi programez cipul folosind un programator USBTiny și instrumentul de programare ” avrdude „.

Cred că ambele instrumente sunt open source.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *