Home › Forum › Microcontrôleurs & microprocesseurs › desassembleur programme PIC30

Forum

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Sujet: desassembleur programme PIC30

Auteur Message

broqua37

13 messages

De passage
De passage

Read post 05-07-2010 21:57

bonsoir a tous,

voilà je viens d'arrivé sur le forum, j'ai deux amis qui m'ont dit de venir ici pour mon probleme et ont même dit (tu vas voir le forum elektor est vraiment cool) alors j'ai regardé quelque sujet et éfectivement le forum ne ressemble vraiment pas aux autres
alors me voilà...

jai deux petit problemes le 1er est que je n'arrive pas a trouvé de désassembleur de programme HEX pour mes PIC30

j'esplique en quelque mots: mon programme souche était dans l'un de mes disc-dur qui est HS et pour ne pas avoir a l'écrire de nouveau (A/Z)
je voudrais le décompiler.

et 2eme petite chose
j'ai 2 ligne utile a écrire (ligne de commande Blanc au noir)

Frame 1 : ligne 622 = Blanche
Frame 2 : ligne 310 bit #1 (noir=0, blanc=1)
Frame 3 : ligne 622 = Noir
Frame 4 : ligne 310 bit #2 (noir=0, blanc=1)
Frame 5 : ligne 622 = Noir
Frame 6 : ligne 310 bit #3 (noir=0, blanc=1)

Frame 7 : ligne 622 Blanche
...
etc....

le mot Binaire est 100000 100000 100......
le mot est utilisé pour initialiser le generateur pseudo aléatoire. a chaque fois que la ligne 622 est blanche, on re-initialise le generateur pseudo aléatoire avec le dernier code récupéré dans les 6 demi trames d'avant.
pour la phase agrémentation, les 3 images ( 6 demi-trames) contiennent la valeur d'initialisation du décodeur. cette initialisation a lieu au début de la 4eme images (7eme demi-trame) et le code d'initialisation change toutes les 3 images.

mais je ne vois pas comment je peux m'y prendre pour écrire la fonction sur le PIC

y aurait il quelqu'un qui pourrait m'aidée pour mon probleme??

Merci

YMasquel

2503 messages

Expert
Expert

Read post 05-07-2010 22:24

Bonjour "broca37",

Pour le désassembleur tu pourrais essayer celui-ci.

C'est sans la moindre garantie car je n'ai pas testé le produit.

Amicalement, Yves.

broqua37

13 messages

De passage
De passage

Read post 05-07-2010 23:34

Salut Yves,

merci mais j'ai déjà le soft et je n'arrive pas a faire de sauvegarde avec!


as tu une explication au probleme???


@+

Modifié par broqua37 le 05-07-2010 23:35

Modifié par broqua37 le 05-07-2010 23:35

YMasquel

2503 messages

Expert
Expert

Read post 06-07-2010 07:13

Bonjour "broca37",

La réponse est dans la description :
Save functionality is disabled, you can compare the output with MPLAB Program Memory

car c'est la version de démonstration d'un produit commercial.

Désolé. Si j'ai d'autres pistes je te le ferai savoir.

Amicalement, Yves.

broqua37

13 messages

De passage
De passage

Read post 06-07-2010 09:35

salut Yves,

ah!!! je n'avais meme pas fait attention a ça!!!

j'étais partie sur la façon dont je pourrais retrouvé mon programme...!

j'suis vraiment naze là!!!

broqua37

13 messages

De passage
De passage

Read post 07-07-2010 22:26

bonsoir a tous,

y a personne pour me dépatouiller sur mon 2eme probleme???

Modifié par broqua37 le 07-07-2010 22:26

YMasquel

2503 messages

Expert
Expert

Read post 07-07-2010 23:12

Bonjour "broca37",

D'abord pour ton premier problème si tu as le fichier LST issu d'une compilation ou même le résultat papier (après scan et OCR) tu pourrais retrouver rapidement ton source. C'est plus rapide de faire du nettoyage que de tout retaper de zéro.

Pour ton deuxième problème je dois dire que je n'y ai rien compris.

Amicalement, Yves.

broqua37

13 messages

De passage
De passage

Read post 08-07-2010 10:01

bonjour Yves,

ébien en gros j'ai besoin de créer dans un signal vidéo des ligne utile qui sont au niveau des lignes en bas de limage d'un signal video (ligne 310 et 622)

le programme doit prendre 3 images complete, donc 6 demis images, 1 image complete est = 2 demis images = 1imagne (paire)et 1 image (impaire)

la fonction que je dois donnée fait partie de la fonction d'initialisation pour la présence du codage de mon image

cette fonction des lignes utile a pour but de préparer la phase d'inisialisation au programme de décodage

la fonction doit donnée la séquence suivante ->

1ere image compete:
ligne 622 = Blanche 1ere image trame paire -> 2eme image ligne 310=noir trame impaire

2eme image complete:
ligne 622 = noir 1ere image trame paire -> 2eme image ligne 310=noir trame impaire

3eme image complete:
ligne 622 = noir 1ere image trame paire -> 2eme image ligne 310=noir trame impaire
...
...
...
a la fin du mot de 3bits pour les 6 image ont reset la séquence pour repartire de zero et a la 7eme image on reprend la séquence de la 1ere image (ligne 622 au blanc) etc...

si je dois écrire la séquence schématiquement cela donne:
1Tr 622=blanche -> 310=noir, 2Tr 622=noir -> 310=noir et 3Tr 622=noir -> 310=noir

et 7eme image comme pour la premiere 622=blanche on reprend la séquence en boucle

comme là

Frame 1 : ligne 622 = Blanche
Frame 2 : ligne 310 bit #1 (noir=0, blanc=1)
Frame 3 : ligne 622 = Noir
Frame 4 : ligne 310 bit #2 (noir=0, blanc=1)
Frame 5 : ligne 622 = Noir
Frame 6 : ligne 310 bit #3 (noir=0, blanc=1)

Frame 7 : ligne 622 Blanche
...
...

Modifié par broqua37 le 08-07-2010 10:05

RISC

54 messages

Visiteur occasionnel
Visiteur occasionnel

Read post 10-07-2010 01:20

Salut,

Pour tous les PICs il est possible de désassembler dans MPLAB, y compris pour les dsPIC30.
MPLAB intègre en standard plusieurs types de "Window" dans le menu View. Il est possible de désassembler tout fichier binaire sous forme d'un fichier assembleur.
Passer en mode Debugger > MPLAB Sim
Charger le fichier .hex
View > Program Memory > onglet [machine] ou [symbolic]

NB : les instructions sont sur 24 bits

a+

Anneo

1273 messages

Expert
Expert

Read post 10-07-2010 16:16

Bonjour Broqua,ton 2-eme probleme reste assez obscure.Pas etonnant le reaction de Yves!
J'ai l'impession q'il s'agit de decoder les informations dans les lignes 622 et 310,niveau video noir/blanc donnant 1/0.
Sans plus d'information,comptage des lignes ,mesure du niveau video,traitement des donnees etc. on reste dans le noir.
Tout cela me fait penser au codage de canal+ sur le cable,pour savoir quel ligne a deplacer et de combien.
Anne

broqua37

13 messages

De passage
De passage

Read post 10-07-2010 21:52

Salut Anneo,

alors je vais etre tres claire pour justement nepas avoir d'autre remarque du meme type.

déjà je suis abonné a canalsat depuis 15ans j'ai fait les premieres install de canal+ et canalsat en numérique j'ai été abonné a canal+ que j'ai aussi pirater dans les années 80/90 et j'étais sur paris quand j'étais plus jeune donc pour moi alors que aulourd'hui encore j'aurais pu si je l'avais voulu avoir canal+ en pirate depuis 2000 chose que je n'ai jamais fait car si canal+ était une chaine (pas comment les autres) comme il le disait!!!les temps changes!!!! et aujourd'hui je suis dans la Haute-Marne et ici Y A RIEN!!! meme pas le CABLE!!! seule contre tous je suis en quelque sorte "l'irréductibles gaulois" qui a juste besoin d'information pour créer deux lignes utile pour piloter un codeur et le decodeur qui va avec et apres beaucoup de recherche le seul moyen est de faire le meme systeme de détection qui était utilisé autre fois pas canal+ mais celà n'a vraiment plus rien a voir avec du piratage déjà parce que aujourd'hui je suis contre et parce que dans quelque mois pour avoir une chaine dit (piraté) il faudrait etre plus que bon dans la programmation!!!

moi je voudrais juste générer les deux lignes utile sur le meme principe du Discret pour piloté mon codeur et mon decodeur rien de plus et rien de moin

par contre peut etre que le brevet d'époque aiderait sur mon probleme????

si besoin est je peux le donnée...?

YMasquel

2503 messages

Expert
Expert

Read post 10-07-2010 22:42

Bonjour "broqua37",

Je dois être fatigué car je n'ai toujours pas compris la totalité. Pour éclaircir un peu le raisonnement je vais exposer les éléments que j'ai interprété :
- Tu souhaites d'abord coder un flux vidéo en forçant le niveau de luminosité de deux lignes du signal.
- Il y a une ligne dans la première 1/2 image de la trame (ligne 310 d'UNE TRAME COMPLETE) et une ligne dans la deuxième 1/2 image de la trame (ligne 622 d'UNE TRAME COMPLETE).
- Le codage est "circulaire" sur une séquence de 6 1/2 images (3 trames ou images complètes).

Maintenant il reste la partie floue consécutive aux explications multiples qui n'ont fait qu'embrouiller les choses (en tout cas c'est mon cas). Sur la description d'une série de 4 images consécutives que doit-on obtenir en considérant que le comptage de lignes repart à zéro à chaque image complète :
-IMAGE 1
- PREMIERE 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 310 = BLANC ou NOIR ?????
- DEUXIEME 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 622 = BLANC ou NOIR ?????
-IMAGE 2
- PREMIERE 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 310 = BLANC ou NOIR ?????
- DEUXIEME 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 622 = BLANC ou NOIR ?????
-IMAGE 3
- PREMIERE 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 310 = BLANC ou NOIR ?????
- DEUXIEME 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 622 = BLANC ou NOIR ?????
-IMAGE 4 (identique à IMAGE 1)
- PREMIERE 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 310 = BLANC ou NOIR ?????
- DEUXIEME 1/2 IMAGE => NIVEAU DE LUMINOSITE DE LA LIGNE 622 = BLANC ou NOIR ?????

Avec les réponses à ce tableau tu verra probablement toi-même ce qu'il faut faire et de notre côté nous serons plus à l'aise pour t'aider.

Amicalement, Yves.

Anneo

1273 messages

Expert
Expert

Read post 10-07-2010 23:17

Mon cher Broqua,j'avais nullement l'intension de te accuser de piratage!
Seulement je me disais,si il s'agit bien de canal+,le codage ne se limite pas a 1bit/ligne.
Il y avait au moins 4 ,si pas plus,de transitions noir/blanc sur 1 ligne.
Alors a partir du debut de ligne,a interval regulier,tester le niveau
pour restituer les bits et pas 1bit/ligne.
Enfin,tant que on ne connait pas les details...
Anne

broqua37

13 messages

De passage
De passage

Read post 11-07-2010 00:13

Salut,

ébien pour etre le plus objectif possible

la premiere image est au BLANC et le reste des 5 images qui suit au NOIR et a la fin de la 6eme image on reprend la séquence:

Frame 1 : ligne 622 = Blanche
Frame 2 : ligne 310 bit #1 (noir=0, blanc=1)
Frame 3 : ligne 622 = Noir
Frame 4 : ligne 310 bit #2 (noir=0, blanc=1)
Frame 5 : ligne 622 = Noir
Frame 6 : ligne 310 bit #3 (noir=0, blanc=1)

Frame 7 : ligne 622 Blanche

une fois traduit la séquence est->
1ere trame:
1/2 Trame 622 au BLANC
1/2 Trame 310 au NOIR

2eme trame:
1/2 trame 310 au NOIR
1/2 trame 622 au NOIR

3eme trame:
1/2 trame 310 au NOIR
1/2 trame 622 au NOIR

a la 7eme ligne on reprond la séquence:
1/2 trame 622 au BLANC
1/2 trame 310 au NOIR

ETC.......

toute les 7 images on retrouve la ligne au BLANC

le mot de 3 bits est en boucle sur toute la durée du codage!
le mot doit etre generer pour que le codeur et le decodeur soit synchronisé a l'image

j'espere que cela sera plus claire pour vous?????

broqua37

13 messages

De passage
De passage

Read post 11-07-2010 13:36

AnneoMon cher Broqua,j'avais nullement l'intension de te accuser de piratage!
Seulement je me disais,si il s'agit bien de canal+,le codage ne se limite pas a 1bit/ligne.
Il y avait au moins 4 ,si pas plus,de transitions noir/blanc sur 1 ligne.
Alors a partir du debut de ligne,a interval regulier,tester le niveau
pour restituer les bits et pas 1bit/ligne.
Enfin,tant que on ne connait pas les details...
Anne


Salut Anneo,

oui je me doute bien qu'il n'y avait aucune intension!

j'ai juste voulu le dire pour que les choses soit claire.

y a aucun problemes pour moi
@+

broqua37

13 messages

De passage
De passage

Read post 11-07-2010 16:58

je vous joint le fichier PDF du brevet de cette détection au BLANC/NOIR

mais aussi le COMPTEUR JONHSON qui est expliqué dans le 1er article

Attachmentcircuit recnnaissance de cryptage.pdf

Attachmentcompteur JONHSON.pdf


Modifié par broqua37 le 11-07-2010 16:59

Anneo

1273 messages

Expert
Expert

Read post 12-07-2010 22:40

Bonsoir Broqua,
quel misere ce document!Surement le travail d'avocat plutot que de technichien ou autre ingenieur.
Par ex. p.4 (lingne5-10)"derniere ligne de chaque trame"avec 625 lignes 622 ou 310 ne sont guere les derniers!
"ligne 622 pour la trame impaire",si 622 est impaire,moi je suis Napoleon!
Normalement on compte les lignes sur l'image de haut vers le bas:1,2,3,4,....Premier trame 1,3,5,...deuxieme 2,4,6,...
L'image est alors transmit 1,3,5,...625 (au milieu de 625 on revient vers le haut) 2,4,6,...624 et on rcommence 1,3,...
Si on compte de la sorte ligne 310 est au milieu de l'image!
Dans le brevet on compte apparement les lignes transmit:
1,2,3,...moitier313=demitrame1 ,autre moitier313,314,315,...,625=demitrame2.
Quand je lis votre explication,on commence toujour avec ligne622 blanc.Ce n'est pas ca,dans la suite 310 622 310 622 ...doit se trouver 100000, n'importe si le 1 provient d'une ligne 310 ou 622.
Pour decoder toutcela avec un PIC il y a d'abord le probleme d'identifier la ligne 1.Le signal sync du video a une broche qui permet l'interruption externe on peut mesurer la duree de l'impulsion(normalement 4µs)plus long au fin de trame.
Maintenant avec le sync ausi branche a une entree qui permet de augmenter le registre d'un timer dans le PIC et de le precharger d'un valeur qui fait deborder le registre quant on arrive a la ligne 310 et/ou 622 pour provoquer un interruption on peut faire le decodage.
Pour cela on utilise une variable nomme par ex.Code(originale non?)un octet qq,zero pour commencer.
A l'interruption:
doubler Code ,si video=blanc Code+1
tester bit 6 de Code ,si zero on a fini
tester Code =100000? ,si oui : trouvee!
remetre Code a zero , fini

J'espere que tout ca te sert a quelque chose
Anne

broqua37

13 messages

De passage
De passage

Read post 13-07-2010 10:09

Anneo
Pour cela on utilise une variable nomme par ex.Code(originale non?)un octet qq,zero pour commencer.
A l'interruption:
doubler Code ,si video=blanc Code+1
tester bit 6 de Code ,si zero on a fini
tester Code =100000? ,si oui : trouvee!
remetre Code a zero , fini
Anne


Bonjour Anneo,

j'avoue que là j'ai pas tres bien compris le principe que tu m'expose, je crois que je vais vraiment galerer sur cette histoire..


pour l'ordre "logique" des choses oui pour moi aussi le fait d'avoir 622 au blanc était bizard mais je m'étais dit que peut etre la premiere information serait au niveau impaire de cette meme trame mais bon!!! il est vrai aussi que le brevet n'est pas tres claire sur la transparence de la fonction utile...

Anneo

1273 messages

Expert
Expert

Read post 13-07-2010 20:34

Ebien Broqua37,je vais essaier d'etre plus claire.
Au moment que la ligne 310 ou 622 passe le prog.principale est interrompu pour executer une petite routine pour traiter l'evenement.
Doubler Code resulte en glisser les bits 1 place vers la gauche (ou ver le haut,si on veut)apres quoi on peut remplier le bit0 avec 1 ou 0 suivant le niveau video.
Quand un blanc (1) arrive au 6-eme place suivi par 00000 il y a ut 5 noir apres, cela indique q'il s'agit d'emission code.
Pour recommencer Code doit etre zero.
Pourquoi?:
Supose q'on a recu 100100 suivi de 3x0 on obtien 100100000 qui n'est pas le bon code mais le programme ne vois que les 8 dernier bits 00100000 et tire le movais conclusion.

Apres tout cela,tu vois que la"deuxieme petite probleme"n'est pas si petite !

Anne

Modifié par Anneo le 13-07-2010 20:37

broqua37

13 messages

De passage
De passage

Read post 20-07-2010 12:41

salut,
je suis bien d'accord avec toi mais dans le brevet ils parlent d'une boucle sur les deux ligne donc toujours le meme nombre, une sequence de 100000 100000 100000 etc....

donc si pour la premiere image on trouve 1 a la 7eme le nombre sera toujours 1 puisque cette information est toujours la meme non????

broqua37

13 messages

De passage
De passage

Read post 20-07-2010 20:11

AnneoApres tout cela,tu vois que la"deuxieme petite probleme"n'est pas si petite !

Anne


salut,

oui vu comme cela les choses ne sont pas si simple!

donc je ne vais jamais m'en sortir..!

bon je demande des fois que... on ne sait jamais???

pourrais tu éventuellement m'écrire le programme en question? meme si j'ai un peu peur de la reponse.

Anneo

1273 messages

Expert
Expert

Read post 20-07-2010 23:27

Tu a raison,le 1 revient toujour a la meme ligne,mais au depart quand le codage demare,on ne sait pas laquelle.
Le PIC30 je connais pas,de plus il faut connaitre les entrees utilisee,la polarite du sync.,comment reconaitre le niveau video,controler quoi une fois la code reconnue,etc.
En plus les sync,pour reconnaitre linge 1,sont ils conforme aux normes?
Ce ne serait pas mieux de debuter avec un projet plus simple?
Bon courage,
Anne

FabLab

107 messages

Visiteur régulier
Visiteur régulier

Read post 21-07-2010 10:21

soyons franc, le debut de cette discutions est incomprehensible.
toutefois les nuages se sont dispersés sur la fin, si j'ai bien compris (c'est pas sur du tout) vous cherchez a 'lire' un signal video a la recherche d'une image bien particuliere contenant une ligne blanche.

je programme des pics depuis plusieurs années, recement LUCIO DI JASIO a publié 2 ouvrages chez NEWNES oui il traite des interfaces complexes appliquées au PIC.
Il y a tout un chapitre consacré a la video, dont le debut est bien construit puisqu'on y apprend la constitution bout a bout d'un signal video; NTCS, PAL, COMPOSITE, VGA il y a une section toute reservée au NOIR et BLANC.
J'ai bossé sur ces livres et je vous les conseille vivement, il y en a deux car chacun est destiné a un type de PIC en particulier :
le premier est destiné au pic24, c'est a dire les 16 bits, le second est reservé au gros 32bits mais la ce n'est plus vraiment un PIC car le coeur utilisé est un coeur MIPS M4K.

Dans votre cas, c'est un ds-pic que vous utilisez donc un 16 bits, regardez du coté du premier ouvrage :

http://www.amazon.com/Programming-16-Bit-PIC-Microcontrollers-Technology/dp/0750682922

A propos de l'auteur :
ce type la est ce que les americains appellent un insider, cconcretement c'est l'un des gars qui ont conçus les coeurs PIC.
c'est rassurant de se faire expliqué des truc par l'un des types qui l'a construit et pensé.

fabrice

broqua37

13 messages

De passage
De passage

Read post 22-07-2010 09:19

FabLabsoyons franc, le debut de cette discutions est incomprehensible.
toutefois les nuages se sont dispersés sur la fin, si j'ai bien compris (c'est pas sur du tout) vous cherchez a 'lire' un signal video a la recherche d'une image bien particuliere contenant une ligne blanche.

fabrice


bonjour,

merci pour le lien!

oui tout a fait mon codage doit détecter le signal dans les lignes 310 et 622 (Blanc/Noir) pour etre autonome sans les informations le codage ne fait rien
@+

Modifié par broqua37 le 22-07-2010 09:19

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Elektor 6/2012 en kiosque

Elektor-Hebdo gratuit !

Mon adresse électronique :

Unités de crédit Elektor

Nos blogs-ateliers