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í verze | ||
| cs:avr_programming [2015/01/31 22:14] – [Pálení programu] kaklik | cs:avr_programming [2025/08/27 09:24] (aktuální) – 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 44: | Řádek 30: | ||
| **Nastavení pojistek je třeba upravit pro konkrétní aplikaci. Nevhodným nastavením si můžete mikroprocesor zablokovat proti dalšímu zápisu** | **Nastavení pojistek je třeba upravit pro konkrétní aplikaci. Nevhodným nastavením si můžete mikroprocesor zablokovat proti dalšímu zápisu** | ||
| - | Nové verze avrdude nefungují a je potřeba použít starší verzi programu avrdude (5.10). | ||
| === Známé problémy === | === Známé problémy === | ||
| + | |||
| + | == avrdude: stk500v2_ReceiveMessage(): | ||
| + | |||
| + | avrdude: stk500v2_ReceiveMessage(): | ||
| + | avrdude: stk500v2_ReceiveMessage(): | ||
| + | avrdude: stk500v2_ReceiveMessage(): | ||
| + | | ||
| + | V téhle situaci je potřeba zkontrolovat nastavení bitové rychlosti pro komunikaci s programátorem. Nejlepší je zkusit nechat nastavení na automatické. | ||
| == avrdude: stk500v2_recv(): | == avrdude: stk500v2_recv(): | ||
| Řádek 55: | Řádek 48: | ||
| avrdude: stk500v2_recv(): | avrdude: stk500v2_recv(): | ||
| - | 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ř. ///dev/ttyUSB1// místo /// | + | 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ř. ///dev/ttyUSB0// místo /// |
| + | |||
| + | == 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.1422742464.txt.gz · Poslední úprava: 2015/01/31 22:14 (upraveno mimo DokuWiki)
