Sida 1 av 1

En snabb guide med AVRisp mkII med Linux som värd.

Postat: 9 september 2009, 14:54:35
av psynoise
Kompilera C-koden:

Kod: Markera allt

$ avr-gcc -g -Os -mmcu=atmega88 -c demo.c
-g ger oss debug-information.
-Os ger optimering för minskad kod storlek.
-mmcu, här ställer vi in målprocessor.
-c säger att vi ska kompilera.

Länka ihop en binärfil:

Kod: Markera allt

$ avr-gcc -g -mmcu=atmega88 -o demo.elf demo.o
-o ger utdata till fil.

Skapa intel-hexfil:

Kod: Markera allt

$ avr-objcopy -j .text -j .data -O ihex demo.elf demo.hex
-j kopiera endast nämnd sektion.
-O väljer objektformat för utmatningsfil.

Skriv till mikrokontrollern:

Kod: Markera allt

$ avrdude -P usb -p m88 -c avrispmkII -e -U flash:w:demo.hex
-P välj port för identifiering av programmerare.
-p målprocessor.
-c programmerare.
-e raderar innehållet i flash och eeprom hos målprocessor.
-U utför minneshantering enligt parametrar, i exemplet ovan skriver vi till flash-minnet.


För mer utförligare information se:
$ avr-gcc --help
$ man gcc
$ man avr-objcopy
$ man avrdude
samt dokumentationen för avr-libc, finns under /usr/share/doc/avr-libc/avr-libc-user-manual/ i Ubuntu Linux.

Re: En snabb guide med AVRisp mkII med Linux som värd.

Postat: 14 september 2009, 22:24:39
av psynoise
Vill man komma ännu enklare undan kan jag rekommendera Mfile för att skapa en Makefile.

http://www.sax.de/~joerg/mfile/

Ladda ner tarballen och kopiera innehållet till /usr/local/share/mfile:

Kod: Markera allt

$ wget http://www.sax.de/~joerg/mfile/mfile.tar.gz
$ tar xzvf mfile.tar.gz
$ sudo cp -R mfile/ /usr/local/share/
I Ubuntu Linux kan man ändra tcl-interpreter till standard Wish genom att ändra första raden i /usr/local/share/mfile/mfile.tcl från

Kod: Markera allt

#!/usr/local/bin/tixwish
till

Kod: Markera allt

#!/usr/bin/wish
För att kunna starta Mfile enkelt via terminalen skapar vi en symbolisklänk:

Kod: Markera allt

$ sudo ln -s /usr/local/share/mfile/mfile.tcl /usr/local/bin/mfile
Sedan är det bara att starta Mfile i din källkodskatalog.

Kod: Markera allt

$ mfile &
Nu kan du välja avr-model, källkodsfiler, optimeringar, programmerare...

För att kompilera och länka ihop alla filer kör vi:

Kod: Markera allt

$ make
För att programmera våran mikrokontroller kör vi:

Kod: Markera allt

$ make program
Vill vi städa efter oss och tabort alla objektfiler kan vi även köra:

Kod: Markera allt

$ make clean

Re: En snabb guide med AVRisp mkII med Linux som värd.

Postat: 12 oktober 2009, 13:24:52
av jadler
Tips 1: Jag hade till en början problem med behörigheterna på AVRisp mkII under Ubuntu 9.04 64-bit, och löste det med enkla udev-regler. Första försöket var lite klumpigt, kom jag på i efterhand, och jag tog fram en bättre lösning.

Senaste lösningen: Improved udev rules for mcu programmers and usb serial adapters
Bakgrundsinformation: AVRISP MkII, permission problems with avrdude and Ubuntu 9.04 amd64

Själva udev-regeln för AVRisp mkII respektive PicKit II:

Kod: Markera allt

SYSFS{idVendor}==”03eb”, SYSFS{idProduct}==”2104″, MODE=”0660″, GROUP=”plugdev”, SYMLINK+=”avrispmkII-%n”
SYSFS{idVendor}==”04d8″, SYSFS{idProduct}==”0033″, MODE=”0660″, GROUP=”plugdev”, SYMLINK+=”pickit2-%n”
Symlink är inte nödvändig för att det skall fungera, men jag kan lätt se vad som är inkopplat. Läs gärna hela mina texter för att se hur jag gjort, det var lite trial and horror för att komma fram till en vettig lösning.

Jag har också använt liknande teknik för att hålla koll på och skapa mer beskrivande symlink:s till alla olika USB till serie-adaptrar (FTDI etc), vilket jag också beskriver på dessa sidor.

Tips 2: Vad gäller avrdude rekommenderar jag att man skapar filen ~/.avrduderc

Kod: Markera allt

default_programmer = "avrispmkII";
default_parallel = "usb";
för att slippa ange programmerare varje gång (förutsatt att man använder en och samma typ för det mesta). Jag har inte testat att sätta USB-port som default på detta sätt, men det lär skall fungera. Direktiven i denna fil anger defaultvärden för kommandoradens -c och -P. Läs mer i man-sidan, pdf-dokumentationen eller på http://www.nongnu.org/avrdude/.

Tips 3: (Någonstans har jag läst en rekommendation att använda det längre namnet på resp µC, t.ex. attiny2313 istället för t2313, när man anger vad man vill programmera för krets. Jag minns ej motivering, men det fungerar bra. Man minskar ju risken att råka skriva 2313 som i själva verket betyder AT90S2313.)

Bonustips: Använd http://www.engbedded.com/fusecalc/ för att räkna ut fuse-värden för AVR.

Nyckelord (för forum-sökning): linux, ubuntu, udev rules, udevadm, udevinfo
Felmeddelande, behörighet: avrdude: usb_open(): cannot read serial number "error sending control message: Operation not permitted"

Re: En snabb guide med AVRisp mkII med Linux som värd.

Postat: 23 oktober 2009, 12:58:07
av remne
..eller så använder man Eclipse och AVR pluginet till Eclipse - så sköter den allting automagiskt :)

Re: En snabb guide med AVRisp mkII med Linux som värd.

Postat: 23 oktober 2009, 14:32:17
av jesse
psynoise: tack för en liten introduktion i kompilatorernas värld.

remne: kan du utveckla det? Finns det ett särskilt AVR plugin för Eclipse att ladda ner nånstans? Vad ingår i det? AVR-libs,avrdude,simulator???

EDIT: eeh. förresten, jag hittade det här.
Tack för tipset!