cs:avr_programming
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verzePoslední revizeObě strany příští revize | ||
cs:avr_programming [2015/04/14 21:26] – [Nahrání programu do MCU] kaklik | cs:avr_programming [2017/02/13 10:16] – [Známé problémy] kaklik | ||
---|---|---|---|
Řádek 5: | Řádek 5: | ||
==== Vývojové prostředí ==== | ==== Vývojové prostředí ==== | ||
- | * [[http:// | + | [[http:// |
- | + | ||
- | ==== Knihovny ==== | + | |
- | + | ||
- | + | ||
- | ==== Nahrávání programu ==== | + | |
- | + | ||
- | Vedle klasického způsobu pálení firmwaru | + | |
===== Linux ===== | ===== Linux ===== | ||
Řádek 19: | Řádek 12: | ||
$ sudo apt-get update | $ sudo apt-get update | ||
- | $ sudo apt-get install gcc build-essential | + | $ sudo apt-get install gcc build-essential |
=== Code Blocks IDE === | === Code Blocks IDE === | ||
Řádek 25: | Řádek 18: | ||
[[http:// | [[http:// | ||
|Code Blocks IDE for avr-gcc and avrdude (Ubuntu)]] | |Code Blocks IDE for avr-gcc and avrdude (Ubuntu)]] | ||
- | ==== Kompilátor ==== | ||
- | |||
- | sudo apt-get install gcc-avr | ||
- | |||
- | ==== Knihovny ==== | ||
- | |||
- | $ sudo apt-get install gcc-avr gdb-avr binutils-avr avr-libc avrdude | ||
==== Nahrání programu do MCU ==== | ==== Nahrání programu do MCU ==== | ||
Řádek 47: | Řádek 33: | ||
Stažený balík pak nainstalujeme příkazem | Stažený balík pak nainstalujeme příkazem | ||
sudo dpkg -i název_balíku.deb | sudo dpkg -i název_balíku.deb | ||
+ | |||
=== Známé problémy === | === Známé problémy === | ||
Řádek 58: | Řádek 45: | ||
Přes to, že tato chybová hláška vypadá podivně, tak obvykle znamená, že se s programátorem pokoušíte komunikovat na jiném portu, než na který je fyzicky připojen. Tj. např. /// | Přes to, že tato chybová hláška vypadá podivně, tak obvykle znamená, že se s programátorem pokoušíte komunikovat na jiném portu, než na který je fyzicky připojen. Tj. např. /// | ||
+ | |||
+ | == Permission denied == | ||
+ | |||
+ | < | ||
+ | Arduino: 1.6.13 (Linux), Board: " | ||
+ | |||
+ | / | ||
+ | |||
+ | avrdude: Version 6.3, compiled on Sep 12 2016 at 15:21:49 | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | User configuration file is "/ | ||
+ | User configuration file does not exist or is not a regular file, skipping | ||
+ | |||
+ | Using Port : usb | ||
+ | Using Programmer | ||
+ | avrdude: usbdev_open(): | ||
+ | avrdude: usbdev_open(): | ||
+ | |||
+ | avrdude done. Thank you. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Řešení: | ||
+ | |||
+ | sudo vim / | ||
+ | | ||
+ | vložit následující obsah: | ||
+ | |||
+ | < | ||
+ | SUBSYSTEM!=" | ||
+ | |||
+ | # Atmel Corp. JTAG ICE mkII | ||
+ | ATTR{idVendor}==" | ||
+ | # Atmel Corp. AVRISP mkII | ||
+ | ATTR{idVendor}==" | ||
+ | # Atmel Corp. Dragon | ||
+ | ATTR{idVendor}==" | ||
+ | |||
+ | LABEL=" | ||
+ | </ | ||
+ | |||
+ | Pak vytvořit sybolický link: | ||
+ | |||
+ | cd / | ||
+ | sudo ln ../ | ||
+ | |||
+ | A nakonec restartovat udev service | ||
+ | |||
+ | sudo service udev restart | ||
+ | |||
+ | Více na: | ||
+ | |||
+ | http:// | ||
+ | ==== Bootloader ==== | ||
+ | |||
+ | Vedle klasického způsobu pálení firmwaru v [[http:// | ||
+ | |||
+ | === Xboot === | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Stáhneme zdrojové soubory bootloaderu z githubu. | ||
+ | |||
+ | git clone https:// | ||
+ | cd xboot | ||
+ | |||
+ | Dále je potřeba vytvořit konfiguraci bootloaderu podle požadované aplikace. V tomto případě si zkopírujeme referenční konfiguraci pro MCU ATMEGA328P, který je například v modulu [[cs: | ||
+ | |||
+ | cp conf/ | ||
+ | | ||
+ | V kopii konfiguračního souboru je třeba změnit proměnnou '' | ||
+ | | ||
+ | make arduino328p.conf.mk | ||
+ | |||
+ | Pokud proces proběhl bez chyb, tak bootloader zkompilujeme a nahrajeme do MCU. | ||
+ | make | ||
+ | make program | ||
+ | |||
+ | Pokud předchozí krok proběhl bez chyb, tak by jsme nyní v MCU měli mít nahraný funkční bootloader Xboot, kterým je možné do MCU nahrát aplikační firmware. To uděláme například následujícím příkazem. | ||
+ | |||
+ | avrdude -P / | ||
+ | | ||
+ | Kde soubor Blink.cpp.hex je vygenerovaný testovací program z Arduino IDE. | ||
+ | | ||
+ | |||
+ | |||
+ | |||
==== Reference ==== | ==== Reference ==== |
cs/avr_programming.txt · Poslední úprava: 2022/01/28 16:21 autor: kaklik