47 votes

Compilation et téléchargement Arduino en ligne de commande ?

Comment puis-je compiler et télécharger Arduino croquis à partir de la ligne de commande sur Mac et Linux ? J'ai installé l'environnement de programmation Arduino. Y a-t-il des exemples de fichiers makefile quelque part ?

0 votes

Cette question est similaire à la question suivante sur Arduino StackExchange : arduino.stackexchange.com/questions/15893/

3voto

wesen Points 440

Vous pouvez en fait utiliser l'interface graphique arduino pour compiler et télécharger, et définir l'éditeur comme externe dans les préférences. De cette façon, vous pouvez éditer les fichiers C++ (PDE) à partir de xcode, et faire en sorte qu'arduino génère le CPP réel et construise l'ensemble.

Vous pouvez également utiliser XCode pour écrire du C++/C pur pour l'arduino, en utilisant le compilateur avr-gcc.

Jetez un coup d'œil : https://stackoverflow.com/a/8192762/153835

Vous pouvez ensuite utiliser l'outil de téléchargement simple avrdude pour programmer l'arduino. Jetez un coup d'oeil à : http://www.ladyada.net/library/arduino/bootloader.html

Avant, le protocole utilisé par Arduino était une modification du protocole STK500, et seul l'avrdude fourni avec Arduino pouvait l'utiliser. Je ne sais pas si l'avrdude principal a été mis à jour, ou si vous devez toujours avoir recours à l'avrdude dans le dossier Arduino.

3voto

hithwen Points 774

Vous pouvez utiliser bicode (c'est un projet sur lequel je travaille) qui est basé sur CMake (mais vous n'avez pas besoin d'écrire de fichier cmake) et qui est aussi un outil pour gérer les bibliothèques Arduino.

Ses principales caractéristiques sont les suivantes :

  • Résolution des dépendances, de manière transitive, comme le fait maven, mais sans fichiers de configuration : lit les dépendances directement à partir du code source.
  • Référentiel central, tout le monde peut télécharger ses bibliothèques. Elles peuvent être explorées, naviguées et découvert sur le web
  • Contrôle des versions : il vérifie la compatibilité des versions et permet des mises à jour sûres des dépendances.
  • Vous pouvez l'utiliser avec n'importe quel éditeur de texte (il dispose de l'option intégration d'eclipse )
  • Il gère la configuration et les compilations du projet, flashe le firmware généré sur la carte.

Vous pouvez voir une démonstration rapide ici et en savoir plus dans le documentation .

0 votes

Le projet s'est maintenant déplacé vers conan.io mais je ne sais pas s'il supporte toujours Arduino. Je ne suis plus impliqué

2voto

Cougar Points 422

Si vous pouvez utiliser cmake alors il y a quelques liens dans le même web ( este y este par exemple). GNU makefile est un peu différent de cmake mais rien de compliqué. Il suffit de chercher un peu sur Google et vous trouverez beaucoup d'exemples de Makefile pour compiler du code AVR.

2voto

stevux Points 21

J'utilise platformio, je l'aime bien. Il a aussi des extensions dans Visual Studio Code, donc vous pouvez tout faire à partir de là. Il a un gestionnaire de bibliothèque et un uploader intégrés.

Ma configuration est un disque NFS où j'ai le code, monté sur mon ordinateur portable linux, et également monté sur mon Raspberry Pi qui se trouve à côté de mes Arduino.

Quand il est temps de compiler, je le fais sur mon ordinateur portable, et comme le RPi est à côté de l'Arduino, je télécharge à partir de là .

Après l'installation et la configuration, les bases sont simples ; platformio run' compilera votre code. 'platformio run -t upload' compilera et téléchargera.

J'ai aussi une fonction bash pour télécharger sans compiler ;

function th(){
    if [ "${1}" = "upload" ];then
    if [ ! -f platformio.ini ]; then
        echo platformio.ini not found
    else 
        UPLOAD_PORT=`cat platformio.ini | grep upload_port | awk '{print $3}'`
        if [ "${UPLOAD_PORT}" = "" ]; then
            echo no upload port
        else
            if [ "${2}" != "" ]; then
                FIRMWARE=${2}
            else
#the firmware location seems to have moved
#               FIRMWARE='.pioenvs/megaatmega2560/firmware.hex'
                FIRMWARE='.pio/build/megaatmega2560/firmware.hex'
            fi
            if [ -f "${FIRMWARE}" ]; then
                avrdude -v -p atmega2560 -C /home/stevenk/.platformio/packages/tool-avrdude/avrdude.conf -c wiring -b 115200 -D -P "${UPLOAD_PORT}" -U flash:w:$FIRMWARE:i
            else
                echo ${FIRMWARE} not found
            fi
        fi
    fi
    else 
            wget --timeout 8 -qO- http://192.168.178.212/$1
    fi
}

1voto

Udo Klein Points 3038

Si vous n'insistez pas sur make, il existe aussi scons/sconstruct. scons/sconstruct . Comme il est écrit en Python, il est beaucoup plus simple à modifier que make. De plus, il peut être débogué avec n'importe quel débogueur Python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X