extraction du code arduino d'une carte

Bonjour,

je cherche comment faire extraire le code de ma carte arduino UNO quand j'utilise un autre ordinateur.

Merci.

Salut,

Impossible

Impossible n'est pas Français mais c'est jouer sur les mots :grin:.
Tout ce que tu peux récupérer c'est le code hex (voir manuel d'avrdude).
Tu peux cloner un arduino dont tu ne connais pas le programme.

Quand à connaitre le source "C" autant dire que B@tto a raison : a moins que tu saches désassembler et reconstituer le code C à partir de l'assembleur .................. :relaxed:

Sur le principe c'est possible. L'IDE arduino, il me semble, vérifie le téléverssage en comparant le programme .hex avec celui programmé dans la zone programme de l'arduino.

Il peut aussi s'amuser à améliorer/modifier son code en assembleur :astonished:

Tu comprendras facilement que extraire un programme d'un microcontrôleur compromettrait de nombreux système embarqué. Surtout quand ils sont brevetés.

Cependant, ce serait intéressant si quelqu'un avait un soft pour désassembler du assembleur de chez ATMEL.

Clément

L'IDE arduino, il me semble, vérifie le téléverssage en comparant le programme .hex avec celui programmé dans la zone programme de l'arduino

Non ce n'est l'IDE qui fait cela mais c'est l'utilitaire Atmel "avrdude" qui est utilisé par l'IDE pour transférer le programme dans le micro.
Ce n'est pas fondamental en soit mais c'est juste pour dire que l'IDE n'est pas obligatoire et qu'on peut utiliser avrdude directement en ligne de commande.

68tjs:

L'IDE arduino, il me semble, vérifie le téléverssage en comparant le programme .hex avec celui programmé dans la zone programme de l'arduino

Non ce n'est l'IDE qui fait cela mais c'est l'utilitaire Atmel "avrdude" qui est utilisé par l'IDE pour transférer le programme dans le micro.
Ce n'est pas fondamental en soit mais c'est juste pour dire que l'IDE n'est pas obligatoire et qu'on peut utiliser avrdude directement en ligne de commande.

Ah =) je ne savais pas

Merci beaucoup 68 tjs pour l'information. Je ne savais pas qu'on pouvait utiliser un autre programme.
Cela m'arrange car l'IDE n'est pas trés esthétique quand on a beaucoup de ligne de code.

Clément

oh là ne confond pas IDE et utilitaires constructeur.
Un IDE ou "Environnement Intégré de Conception " en français c'est une carcasse graphique qui inclue différents programmes et utilitaires dont un compilateur, souvent un deboggueur et en ce qui concerne les micro-controleurs divers utilitaires dont celui qui sert à transférer le programme dans la mémoire du micro.

Ces utilitaires sont intimement liés au micro-controleur et c'est le concepteur du micro (ici Atmel) qui les conçoit en parallèle à ses micro.

Ce que tu cherche est différent : c'est un autre IDE configurable.
Cela existe : Eclipse ou Code::Blocks.

La documentation se trouve sans difficulté sur internet. Il existe des plugins pour les rendre capable de compiler un programme pour avr.
Des membres du forum ont même préparé des versions "prêtes à l'emploi" d' Eclipse et de Code::blocks --> voir sur le forum en anglais.

Merci de m'avoir repris
Je n'y connais pas trop bien en soft

Je vais aller y jeter un coup d'œil

Merci

Clément

derder9161:
Il peut aussi s'amuser à améliorer/modifier son code en assembleur :astonished:

Tu comprendras facilement que extraire un programme d'un microcontrôleur compromettrait de nombreux système embarqué. Surtout quand ils sont brevetés.

Cependant, ce serait intéressant si quelqu'un avait un soft pour désassembler du assembleur de chez ATMEL.

Le problème fondamental n'est pas l'impossibilité technique de le faire, mais bien la réinterprétation du code. Rien que compiler un programme, récupérer l'assembleur et le retranscrire en C++ tu vas te dire "c'est pas mon programme ça !" et pourtant si ... Les langage info sont des langages humain, une machine ne résonne absolument pas de la même manière

Tu comprendras facilement qu'extraire un programme d'un microcontrôleur compromettrait de nombreux système embarqué. Surtout quand ils sont brevetés.

Il existe d'autres procédés bien plus efficaces pour éviter ceci.

B@tto:
Rien que compiler un programme, récupérer l'assembleur et le retranscrire en C++ tu vas te dire "c'est pas mon programme ça !"

C'est bien là que se trouve la difficulté. Ne pas oublier qu'en plus le compilateur fait des optimisations et que le même compilateur, mais en versions différentes, n'optimisera pas de manière identique.

Merci pour vos réponses les experts,
mais sachant qu'il s'agit de mon programme sauf que j'ai besoin des fois de faire des modifs mais je n'ai pas sur moi mon portable c'est juste ça
Alors comment faire ????

Ben faut avoir ton portable avec toi... ou alors prévoir dans ton prog la possibilité de dialoguer via port série (ou USB à condition que le PC utilisé ait le bon driver) s'il ne s'agit que de modifier des valeurs...

Il te faut donc prévoir cette fonctionnalité avant de sortir ton nono de la maison...

Côté protection du code, de nombreux µc ont un fuse (mais là, un vrai, qui une fois cramé est impossible à reprogrammer) qui rend l'écriture/lecture flash totalement inopérante.

Super Merci,

Comment je fais pour dialoguer avec le programme via USB ????

Moniteur série