{"id":212,"date":"2009-02-11T21:07:41","date_gmt":"2009-02-11T18:07:41","guid":{"rendered":"http:\/\/yeti.albascout.ro\/blog\/?p=212"},"modified":"2009-02-11T21:07:41","modified_gmt":"2009-02-11T18:07:41","slug":"avr-plugin-pentru-eclipse","status":"publish","type":"post","link":"https:\/\/yeti.albascout.ro\/blog\/avr-plugin-pentru-eclipse\/","title":{"rendered":"AVR plugin pentru Eclipse"},"content":{"rendered":"<p>De c\u00e2nd am f\u0103cut marea trecere pe linux, g\u0103sesc tot mai multe tooluri la \u00eendem\u00e2n\u0103 pentru lumea noastr\u0103, a geek-\u0219ilor, \u0219i tot mai pu\u021bine pentru lumea ailalt\u0103, \u0219ti\u021bi voi, aia real\u0103. Totu\u0219i, nu pot dec\u00e2t s\u0103 m\u0103 bucur c\u00e2nd g\u0103sesc ceva s\u0103-mi simplifice task-urile &#8230; creative.<\/p>\n<p>Acum un an am avut o materie numit\u0103 Proiectarea cu Microcontrollere (sau a\u0219a ceva, ideea e c\u0103 numele de cod este PM), unde, pentru prima oar\u0103 \u00een 4 ani (atunci) de \u0219coala trebuia s\u0103 construim noi un dispozitiv. Ideea e c\u0103 am fost pu\u0219i fa\u021b\u0103 \u00een fa\u021b\u0103 cu seria <a href=\"http:\/\/www.atmel.com\/dyn\/products\/Product_card.asp?part_id=2010\">ATMega de la Atmel<\/a>, \u0219i ni s-au dat pa\u0219i concre\u021bi spre realizarea unei chestiu\u021be care s\u0103 chiar MEARG\u0102. De atunci, toate planurile de world domination includ cel pu\u021bin un ATMega :).<\/p>\n<p>Anyway, post-ul \u0103sta exist\u0103 pentru c\u0103 am g\u0103sit ceva util. Procesoarele AVR au mai multe feluri de programatoare (\u0219i chiar de Debuggere real-time), exist\u0103 pl\u0103ci de dezvoltare and stuff like that. (<a href=\"http:\/\/www.avrfreaks.net\/\">AVRFreaks<\/a> este site-ul recunoscut ca cea mai bun\u0103 surs\u0103 de informa\u021bii :P). \u00ces <em>en\u0219pe<\/em> mii de variante de procesoare, care se folosesc destul de larg \u00een orice &#8222;home brewed&#8221; device. Anul trecut, ca s\u0103 le program\u0103m, sub Windows, trebuia s\u0103 scriem sursa cumva, s\u0103 facem un Makefile (care era oarecum complicat, din ce \u021bin eu minte) \u0219i s\u0103 folosim un soft (<a href=\"http:\/\/www.lancos.com\/prog.html\">PonyProg<\/a>) ca s\u0103 \u00eenc\u0103rc\u0103m proiectul pe procesor.<\/p>\n<p>Exist\u0103 destul de multe tool-uri pentru lucrul cu AVRuri (<a href=\"http:\/\/winavr.sourceforge.net\/\">WinAVR<\/a> are \u0219i un IDE integrat, am \u00een\u021beles c\u0103 exist\u0103 ceva numit <a href=\"http:\/\/www.codevision.gr\/\">CodeVision<\/a>, mai sunt), dar eu n-am reu\u0219it s\u0103 le fac s\u0103-mi mearg\u0103 pe Windows (par\u021bial pentru c\u0103 nu exist\u0103 suport pentru programatorul neavansat pe care \u00eel folosim noi, par\u021bial pentru c\u0103 eram prea t\u0103nt\u0103l\u0103u). Tool-ul general preferat de mine, din anul II, de la tema cu bridge-ul (prietenii \u0219tiu de ce) este <a href=\"http:\/\/www.eclipse.org\">Eclipse<\/a>, care e extrem de configurabil \u0219i sunt sigur c\u0103 m\u0103car compilarea se putea rezolva de &#8222;m\u00e2n\u0103&#8221; \u0219i \u00eenainte.<\/p>\n<p>Dar acum nu mai e nevoie. Exist\u0103 <a href=\"http:\/\/avr-eclipse.sourceforge.net\/wiki\/index.php\/The_AVR_Eclipse_Plugin\">plugin-ul \u0103sta super<\/a>, care este construit peste pluginul CDT (partea de C\/C++ a Eclipse) \u0219i are ni\u0219te unelte de compilat automat, uploadat pe device direct cu <a href=\"http:\/\/savannah.nongnu.org\/projects\/avrdude\/\">avrdude<\/a>. Am vazut c\u0103 avrdude exist\u0103 \u0219i pe Windows, deci nu v\u0103d de ce tool-ul \u0103sta n-ar merge la fel de beton cum \u00eemi merge \u0219i mie pe linux. Am avut plugin-ul instalat \u0219i pe Windows, da nu m-am sim\u021bit \u00eempins nicicum s\u0103-l fac s\u0103 mearg\u0103.<\/p>\n<p>Am g\u0103sit prin <a href=\"http:\/\/www.avrfreaks.net\/index.php?name=PNphpBB2&amp;file=viewtopic&amp;t=65879\">avrfreaks<\/a> <a href=\"http:\/\/www.vimeo.com\/1216553\">doua<\/a> <a href=\"http:\/\/www.vimeo.com\/1248523\">link-uri<\/a> cu cum s\u0103-l aranjezi s\u0103-\u021bi mearg\u0103 (trebuie setat programatorul fizic ce se folose\u0219te, noi am folosit <a href=\"http:\/\/www.lancos.com\/siprogsch.html\">SI-Prog<\/a>, dar am v\u0103zut c\u0103 acum se face la PM o treab\u0103 pe USB care nu \u0219tiu exact cum func\u021bione\u0219te &#8230; \u00eenc\u0103!). De ce ar face cineva tutoriale pentru oameni <em>tehnici <\/em>\u00een format video n-am \u00een\u021beles, a\u0219a c\u0103 pe scurt despre ce trebuie s\u0103 face\u021bi s\u0103 v\u0103 programa\u021bi ATMega-ul dintr-un foc (*credit-ul pentru indica\u021bii merge la baie\u021bii din link-urile de mai sus, eu doar \u00eencerc s\u0103-l fac un pic mai cursiv, pentru oameni nerabd\u0103tori ca mine :P):<\/p>\n<p>1. V\u0103 trebuie compilatorul (avr-gcc), \u0219i alte c\u00e2teva juc\u0103rii (avrdude e downloader\u00a0 \/ uploader, libusb trebuie dac\u0103 folosi\u021bi un device care se programeaz\u0103 pe USB, avr-libc e biblioteca standard)<\/p>\n<blockquote><p>sudo apt-get install binutils-avr, avr-gcc, avr-libc, avrdude, libusb<\/p><\/blockquote>\n<p>Cred c\u0103 pachetul \u0103sta se numea altfel mai demult (gcc-avr), dar mie cu \u0103sta mi-o mers<\/p>\n<p>2. V\u0103 trebuie <a href=\"http:\/\/www.eclipse.org\/downloads\">Eclipse<\/a> (recomand 3.4, dac\u0103 nu ave\u021bi motive serioase de a r\u0103m\u00e2ne la 3.3) \u0219i CDT &gt;= 4 (eu \u00eel am pe ultimu stable de la Ganymede)<\/p>\n<p>3. Instala\u021bi plug-in-ul AVR (care <a href=\"http:\/\/avr-eclipse.sourceforge.net\/wiki\/index.php\/Plugin_Download\">are site de update pentru Eclipse<\/a>, just add the site to the Eclipse sources list .P)<\/p>\n<blockquote><p>http:\/\/avr-eclipse.sourceforge.net\/updatesite\/<\/p><\/blockquote>\n<p>4. Face\u021bi un proiect C nou \u00een Eclipse, alege\u021bi <strong>AVR Cross Target App<\/strong>, Alege\u021bi Toolchain-ul cu <strong>avr-gcc<\/strong> (dac\u0103 mai ave\u021bi \u0219i altele), alege\u021bi tipul de device \u0219i frecven\u021ba (ATMega16\/32 au o frecven\u021b\u0103 bazat\u0103 pe un oscilator intern, la 1MHz. La PM am \u00eenv\u0103\u021bat cum s\u0103-l ducem la maximul poten\u021bialului, cu un cristal de 16MHz &#8211; trebuie setate ni\u0219te fuse-uri prin el).<\/p>\n<p>5. Windows &gt; Preferences &gt; AVR &gt; AVRDude. Bifa\u021bi chestia aia cu <strong>Log output to console<\/strong> dac\u0103 vre\u021bi s\u0103 vede\u021bi ce face (recomandat). Ad\u0103uga\u021bi o configura\u021bie nou\u0103, \u00een func\u021bie de programatorul vostru (avrdude are suport pentru o gramada de configura\u021bii, eu folosesc cea mai simpl\u0103, probabil, SI-Prog.). Poate e o idee bun\u0103 s\u0103 \u00eei spune\u021bi acolo \u0219i ce port serial folosi\u021bi \u00een cazul \u00een care mai programa\u021bi pe serial\u0103 :).<\/p>\n<p>* Pa\u0219ii 4 \u0219i 5 sunt independen\u021bi \u0219i interschimbabili<\/p>\n<p>6. Project &gt; Preferences &gt; AVRDude &gt; alege\u021bi configura\u021bia pe care tocmai ce a\u021bi salvat-o.<\/p>\n<p>7. Project &gt; Preferences &gt; C \/ C++ Build ave\u021bi o op\u021biune <em>Additional Tools in Toolchain<\/em>, ar trebui s\u0103 ave\u021bi selectat AVRDude \u0219i Generate HEX file for Flash Memory cel pu\u021bin selectate. Eu am selectat \u0219i Print Size \u0219i Generate Extended Listing (de\u0219i nu \u0219tiu exact daca nu-s numa chestii de raportare \u0219i nu de programare efectiv)<\/p>\n<p>8. Tot acolo ave\u021bi posibilitatea s\u0103 configura\u021bi comanda c\u0103tre avrdude (dac\u0103 nu \u00eel ave\u021bi \u00een path sau dac\u0103 ave\u021bi nevoie de drepturi de root s\u0103 folosi\u021bi portul pe care vre\u021bi s\u0103-l folosi\u021bi, tipu de la care preiau chestia asta o pus un <em>sudo avrdude<\/em> acolo. Eu mi-am modificat permisiunile pentru serial\u0103)<\/p>\n<p>9. (Recomandat) Seta\u021bi nivelul de optimizare la AVR Compiler la <em>-Os<\/em> (size optimization)<\/p>\n<p>10. La urm\u0103torul build, dac\u0103 ave\u021bi legat controllerul \u00een programator, avrdude o s\u0103 descarce hex-ul \u00een controller.<\/p>\n<p>Mai sunt ni\u0219te viewuri pe-acolo pe care le pute\u021bi folosi, \u0219i este un buton direct de upload pe device (care pe mine m\u0103 enerveaz\u0103 c\u0103 se pune acolo sus in bar\u0103 \u0219i la alte viewuri dec\u00e2t ale pluginului \u0103stuia)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De c\u00e2nd am f\u0103cut marea trecere pe linux, g\u0103sesc tot mai multe tooluri la \u00eendem\u00e2n\u0103 pentru lumea noastr\u0103, a geek-\u0219ilor, \u0219i tot mai pu\u021bine pentru lumea ailalt\u0103, \u0219ti\u021bi voi, aia real\u0103. Totu\u0219i, nu pot dec\u00e2t s\u0103 m\u0103 bucur c\u00e2nd g\u0103sesc ceva s\u0103-mi simplifice task-urile &#8230; creative. Acum un an am avut o materie numit\u0103 Proiectarea &hellip; <a href=\"https:\/\/yeti.albascout.ro\/blog\/avr-plugin-pentru-eclipse\/\" class=\"more-link\">Continu\u0103 s\u0103 cite\u0219ti <span class=\"screen-reader-text\">AVR plugin pentru Eclipse<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[561,564,557],"tags":[569,570,612,807,719],"class_list":["post-212","post","type-post","status-publish","format-standard","hentry","category-linux","category-roboti","category-facultate","tag-atmega","tag-avr","tag-eclipse","tag-linux","tag-util"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/comments?post=212"}],"version-history":[{"count":0,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/212\/revisions"}],"wp:attachment":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/categories?post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/tags?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}