2010-06-03 3 views
6

J'ai rencontré un problème avec un contrôleur PIC Micro.Décompilateurs Hex pour PIC

J'ai un micro-contrôleur programmé par moi depuis longtemps et j'ai perdu le code source pertinent et les diagrammes schématiques. Maintenant, j'ai besoin d'inverser la valeur d'un port. Je peux le faire en utilisant quelques portes NON mais c'est un gros problème à le faire. ou alternativement je devrai écrire le programme entier en arrière.

Je ne m'attends pas à voir le code en PIC C ou MikroC. Avoir un code d'assembly compréhensible serait suffisant.

Est-ce que quelqu'un a déjà une expérience sur un bon décompilateur HEX que je peux utiliser à cette fin? Des commentaires basés sur votre expérience? :)

EDIT: Appareil PIC 16F84A

Répondre

6

La décompilation est peu susceptible d'être une solution pratique, et il est encore moins probable qu'un outil pour votre combinaison spécifique de compilateur et de jeu d'instructions existe même.

Cependant, le désassemblage est simple, bien que le fait de savoir si vous pouvez donner un sens au code résultant est différent car aucun commentaire ou symbole n'est conservé dans le fichier HEX; Si vous avez le code d'objet original, cela peut rendre le désassemblage plus lisible. Il y a beaucoup de désassembleurs PIC disponibles, juste Google; Je ne peux pas vous orienter vers une famille spécifique car il existe un certain nombre de familles PIC avec des ensembles d'instructions différents, et vous ne les avez pas spécifiées. Une méthode simple de désassemblage serait simplement de charger votre fichier HEX dans MPLAB et de sélectionner View-> Disassembly Listing, puis faites un clic droit sur les fenêtres et sélectionnez «Output to File». Cette sortie peut nécessiter un certain massage pour qu'il soit adapté à l'entrée d'un assembleur.

1

Vous devriez être en mesure de charger le fichier hexadécimal dans le MPLAB IDE et voir le code assembleur à partir de là, ainsi que l'exécuter et parcourir le code dans le simulater si je ne me trompe pas.

Vous pouvez également l'utiliser pour lire le code d'un périphérique s'il n'est pas protégé par un code.

2

Il existe une liste des désassembleurs PIC à la référence technique PICList officielle.

Beaucoup de gens n'utilisent jamais un désassembleur autonome, mais préfèrent utiliser le désassembleur dans leur simulateur PIC préféré.

http://piclist.com/techref/microchip/dissassemblers.htm

http://piclist.com/techref/microchip/simulators.htm

+0

Ces deux liens sont morts. En fait, le site semble être «vide» et en thaï – brewmanz

+0

@brewmanz: OK, j'ai corrigé les liens rompus - les nouvelles URL du même contenu semblent fonctionner pour moi maintenant. –