Cette réponse ne répond pas directement à la question, mais aboutira toujours au même résultat final.
L'IDE Arduino utilise des répertoires temporaires pour stocker les fichiers de construction, y compris l'esquisse d'origine, ainsi que les fichiers HEX et intermédiaires.
Sur un Mac, ceux-ci se trouvent par défaut dans / var /, et sur un ordinateur Windows, ils se trouvent dans… \ Local Settings \ Temp \ (qui, selon la version de Windows, pourrait se trouver à plusieurs endroits).
J'ai constaté qu'en particulier dans Windows, ces fichiers de construction ne sont pas supprimés lorsque vous fermez l'esquisse ou l'EDI; ils peuvent donc exister sur votre ordinateur plus longtemps que prévu.
De plus, par défaut, Crashplan, Backblaze et Time Machine sauvegardent ces emplacements. Par conséquent, même s'ils ont été supprimés, ils peuvent toujours figurer dans une sauvegarde.
L'avantage ici est que vous récupérerez le code C plutôt que ASM.
Vous pouvez télécharger le vidage hexadécimal du fichier, mais il n’existe pas de moyen simple d’obtenir tout le code C ++ et ses commentaires. Si vous comprenez assemblage, vous pouvez recréer le programme, mais cela prendrait un certain temps. Il existe des dissasembleurs disponibles pour certains appareils, je ne connais pas Arduino.
Je pense qu'il y a une autre façon de faire cela, sans extraire le code de la carte Arduino. Conservez la date à laquelle vous créez l'esquisse et recherchez-la dans C: \ Utilisateurs \ Utilisateur \ AppData \ Local \ Temp \ (Par exemple: C: \ Utilisateurs \ Utilisateur \ AppData \ Local \ Temp \ untitled4390292704786567977.tmp \ sketch_jan19a). Vous pourriez trouver votre code non enregistré à moins qu'il ne soit supprimé par un "programme d'espace libre". Bonne chance!
Comme vous pouvez le constater, ce n'est pas particulièrement utile pour reproduire ce que votre dessin a fait. Il y a probablement deux scénarios:
Votre croquis était court, auquel cas vous pourriez, après des semaines de travail, reconvertir le code assembleur en C
Votre croquis était long, auquel cas il serait pratiquement impossible de le reconvertir en C
Dans le cas du "sketch", il est préférable de réécrire à partir de zéro. Ce serait plus rapide, presque certainement. Dans le cas du "long sketch", cela ne vaut tout simplement pas la peine. Aucun des noms de variable n'est préservé, et la manière dont le compilateur optimise le code, même la structure du code, serait difficile à déterminer.
Réponses:
Cela devrait être possible tant que le bit de sécurité n'est pas activé. Cette question a été posée sur EE il y a quelque temps.
Est-il possible d'extraire le code d'une carte Arduino?
Mais vous ne récupérerez pas le code Arduino que vous avez écrit. Le code est compilé en assemblage et vous devrez le reconvertir vous-même.
la source
Cette réponse ne répond pas directement à la question, mais aboutira toujours au même résultat final.
L'IDE Arduino utilise des répertoires temporaires pour stocker les fichiers de construction, y compris l'esquisse d'origine, ainsi que les fichiers HEX et intermédiaires.
Sur un Mac, ceux-ci se trouvent par défaut dans / var /, et sur un ordinateur Windows, ils se trouvent dans… \ Local Settings \ Temp \ (qui, selon la version de Windows, pourrait se trouver à plusieurs endroits).
J'ai constaté qu'en particulier dans Windows, ces fichiers de construction ne sont pas supprimés lorsque vous fermez l'esquisse ou l'EDI; ils peuvent donc exister sur votre ordinateur plus longtemps que prévu.
De plus, par défaut, Crashplan, Backblaze et Time Machine sauvegardent ces emplacements. Par conséquent, même s'ils ont été supprimés, ils peuvent toujours figurer dans une sauvegarde.
L'avantage ici est que vous récupérerez le code C plutôt que ASM.
la source
/tmp/
répertoires de Linux (et même de Mac). cf arduino.cc/en/Hacking/BuildProcessVous pouvez télécharger le vidage hexadécimal du fichier, mais il n’existe pas de moyen simple d’obtenir tout le code C ++ et ses commentaires. Si vous comprenez assemblage, vous pouvez recréer le programme, mais cela prendrait un certain temps. Il existe des dissasembleurs disponibles pour certains appareils, je ne connais pas Arduino.
la source
atmega disassembler
).Je pense qu'il y a une autre façon de faire cela, sans extraire le code de la carte Arduino. Conservez la date à laquelle vous créez l'esquisse et recherchez-la dans C: \ Utilisateurs \ Utilisateur \ AppData \ Local \ Temp \ (Par exemple: C: \ Utilisateurs \ Utilisateur \ AppData \ Local \ Temp \ untitled4390292704786567977.tmp \ sketch_jan19a). Vous pourriez trouver votre code non enregistré à moins qu'il ne soit supprimé par un "programme d'espace libre". Bonne chance!
la source
Sauf si votre objectif est simplement de copier le code identique sur un autre appareil, la réponse simple est: non
Comme cela a été souligné dans d'autres réponses, vous pouvez reconvertir le code hexadécimal de l'appareil en code assembleur.
Par exemple (une fois que vous avez copié le code de l'appareil sur votre disque):
Exécuté sur l’un des fichiers du chargeur de démarrage, j’obtiens ces résultats (en partie):
Comme vous pouvez le constater, ce n'est pas particulièrement utile pour reproduire ce que votre dessin a fait. Il y a probablement deux scénarios:
Dans le cas du "sketch", il est préférable de réécrire à partir de zéro. Ce serait plus rapide, presque certainement. Dans le cas du "long sketch", cela ne vaut tout simplement pas la peine. Aucun des noms de variable n'est préservé, et la manière dont le compilateur optimise le code, même la structure du code, serait difficile à déterminer.
la source