Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:upload_with_avrdude_to_avr

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
contiki:upload_with_avrdude_to_avr [2016/02/14 09:59] – [Grundsätzlicher Ablauf] admincontiki:upload_with_avrdude_to_avr [2017/01/24 18:49] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
  
 Das Entwickeln mit Instant Contiki kann weiter vereinfacht werden, wenn auf AVR Studio verzichtet wird. Durch den Einsatz von [[http://www.nongnu.org/avrdude/|avrdude]] kann auch der Upload auf den Mikrocontroller direkt aus Instant Contiki erfolgen. Dazu muss avrdude auf Instant Contiki installiert werden. Das Entwickeln mit Instant Contiki kann weiter vereinfacht werden, wenn auf AVR Studio verzichtet wird. Durch den Einsatz von [[http://www.nongnu.org/avrdude/|avrdude]] kann auch der Upload auf den Mikrocontroller direkt aus Instant Contiki erfolgen. Dazu muss avrdude auf Instant Contiki installiert werden.
-<code c> +Mit Datum vom 15.2.2016 wird allerdings immer noch ''avrdude'' 6.0.1 aus den Paketquellen installiert. Es empfiehlt sich auf die Version 6.2 zu wechseln (selbst kompilieren, siehe unten). 
- +
-sudo apt-get install avrdude+
  
 +<code bash>
 + sudo apt-get install avrdude
 </code> </code>
  
 +:!: avrdude 6.2 on OSX (''$ brew install avrdude'')
 ===== Grundsätzlicher Ablauf ===== ===== Grundsätzlicher Ablauf =====
  
Zeile 13: Zeile 14:
 Der Aufruf von avrdude geschieht über die Kommandozeile mit Der Aufruf von avrdude geschieht über die Kommandozeile mit
  
-<code c>+<code bash> 
 + sudo avrdude -[Programmiergerät] -P [Anschlussport der Programmers] -p [AVR Typbezeichnung] -Uflash:w:[Name der Datei zum Upload] 
 +</code>
  
-sudo avrdude -c [Programmiergerät] -P [Anschlussport der Programmers] -p [AVR Typbezeichnung] -Uflash:w:[Name der Datei zum Upload]+wobei der letzte Befehlsteil -U wie Upload besagt, dass der flash-Speicher beschrieben (wie write) werden soll. Wird z.B. als Programmer der JTAG MKII benutzt, als Zielmikrocontroller der Raven USB Stick (AT90USB1287), als Quelldatei die Datei ''ravenusbstick.hex'' und als Zielspeichertyp das Flashrom des Mikrocontrollers, dann sieht der Befehl aus wie folgt.
  
 +<code bash>
 + sudo avrdude -c jtagmkII -P usb -p usb1287 -U flash:w:ravenusbstick.hex
 </code> </code>
  
-wobei der letzte Befehlsteil -U wie Upload besagt, dass der flash-Speicher beschrieben (w wie write) werden soll. Wird z.B. als Programmer der JTAG MKII benutztals Zielmikrocontroller der Raven USB Stick (AT90USB1287), als Quelldatei die Datei ''ravenusbstick.hex'' und als Zielspeichertyp das Flashrom des Mikrocontrollers, dann sieht der Befehl aus wie folgt.+Soll auf den gleichen Mikrocontroller der EEPROM beschrieben werden, so funktioniert folgender Befehl.
  
-<code c>+<code bash> 
 + sudo avrdude -jtagmkII -P usb -p usb1287 -U eeprom:w:ravenusbstick.eeprom 
 +</code>
  
-sudo avrdude -c jtagmkII -P usb -p usb1287 -Uflash:w:ravenusbstick.hex+:!: Seit avrdude Version 6.2 kann auch direkt die elf-Datei als Quelle verwendet werden:
  
 +<code bash>
 + sudo avrdude -c jtag3 -P usb -p usb1287 -U flash:w:ravenusbstick.elf
 + sudo avrdude -c jtag3 -P usb -p usb1287 -U eeprom:w:ravenusbstick.elf
 </code> </code>
  
-Soll auf den gleichen Mikrocontroller der EEPROM beschrieben werden, so funktioniert folgender Befehl.+==== avrdude Device-Parameter für ausgewählte Microcontroller im Labor ====
  
-<code c>+^ Board      ^ Mikrocontroller      ^ avrdude-Parameter          ^ 
 +| Atmel Raven USB-Stick    |    AT90USB1287  | usb1287 
 +| Atmel Raven    |    ATmega1284P  | m1284p 
 +| AN Solutions           ATmega1281  | m1281  | 
 + 
 +==== avrdude Parameter für ausgewählte Programmieradapter ==== 
 + 
 +^ Programmieradapter  ^ avrdude-Parameter      ^  
 +| Atmel JTAG ICE mkII   | jtagmkII   | 
 +| Atmel AVR JTAGICE3 in JTAG mode  | jtag3 |  
 + 
 +==== Abfrage der Device Signatur ====
  
-sudo avrdude -c jtagmkII -P usb -p usb1287 -Ueeprom:w:ravenusbstick.eeprom+Bevor versucht wird den Mikrocontroller neu zu programmieren ist es ratsam zu überprüfen, 
 +ob die Parameter richtig gewählt wurden. Mit der Kommandozeilenoption ''params'' lässt sich die 
 +Device Signatur abfragen und vergleichen:
  
 +<code bash>
 +  sudo avrdude -c jtag3 -p m1281 params
 </code> </code>
 +===== Installation einer aktuelleren Version von ''avrdude'' =====
  
 :!: **AVR JTAGICE3**  :!: **AVR JTAGICE3** 
-InstantContiki installiert aus den Paketquellen immer noch 6.0.1. Es wird mindestens avrdude 6.1 benötigt, da Atmel das Protokoll geändert hat. +InstantContiki installiert aus den Paketquellen immer noch 6.0.1. Der JTAGICE3 mit neuerer Firmware benötigt 
 + mindestens ''avrdude'' 6.1, da Atmel das Protokoll geändert hat. 
  
-Mit den folgenden Befehlen wird ''libusb'' installiert (wird für die Übersetzung von ''avrdude'' benötigt)+Mit den folgenden Befehlen werden benötigte Bibliotheken für die Übersetzung von ''avrdude'' installiert
  
-  sudo apt-get install libusb-dev +<code bash> 
-  sudo apt-get install libusb-1.0-0-dev+ sudo apt-get install libusb-dev 
 + sudo apt-get install libusb-1.0-0-dev 
 + sudo apt-get install libelf-dev 
 +</code>
      
 avrdude kann hier heruntergeladen werden: http://download.savannah.gnu.org/releases/avrdude/ \\ avrdude kann hier heruntergeladen werden: http://download.savannah.gnu.org/releases/avrdude/ \\
 Es wird anschließend mit: Es wird anschließend mit:
 +<code bash>
   ./configure   ./configure
   make   make
   sudo make install   sudo make install
 +</code>
 übersetzt und installiert. übersetzt und installiert.
    
Zeile 73: Zeile 105:
 Alle zuvor besprochenen Schritte können natürlich gleich im Makefile automatisiert werden. Da dieses für die Kompilierung sowieso verwendet wird genügt es dieses mit den vorher gezeigten Befehlen zu ergänzen. Zum Beispiel das folgende ''Makfile'' für den ''ravenusbstick'':  Alle zuvor besprochenen Schritte können natürlich gleich im Makefile automatisiert werden. Da dieses für die Kompilierung sowieso verwendet wird genügt es dieses mit den vorher gezeigten Befehlen zu ergänzen. Zum Beispiel das folgende ''Makfile'' für den ''ravenusbstick'': 
  
-<code c>+<code make>
  
 all: all:
contiki/upload_with_avrdude_to_avr.1455443993.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)