
Flowcode: .hex non créé
#1
Posté 06 avril 2012 - 07:21
je voudrais programmer un pic (16F88) avec Flowcode. Je dessine donc mon algo, je règle les paramètre du quartz etc et je fais compiler vers hex. Il me créé les fichier .OBJ, .msg et .c mais aucune trace du .hex (le plus important...)
Quelqu'un saurait il à quoi c'est dû? (j'essaye de simuler mon programme avec Proteus)
EDIT: il ne me le compile pas non plus en asm car quand je fais "voir fichier asm" il me dit que celui-ci n'existe pas. je devrais peut-être télécharger un autre compilateur et utiliser celui-là en le choisissant dans les options de Flowcode...
#2
Posté 06 avril 2012 - 07:52
Je ne sais pas à quoi peut être dû ton problème, je n'y ai jamais été confronté (peut être que tu as indiqué un chemin différent pour la compilation ?).
Par contre, j'interviens surtout pour ta remarque :
Si tu fais référence aux fichiers formats ".asm", c'est normal qu'il n'y en ait pas. Ces fichiers ne s'obtiennent pas par compilation. Tu obtiens ce format en enregistrant un document texte puis en le renommant en "machin.asm". Ils servent pour programmer dans le langage qui s'appelle "assembleur" (ce n'est pas le langage machine) ; ils servent par exemple (je ne sais pas s'il y a d'autres applications) pour programmer un pic sous mplab.il ne me le compile pas non plus en asm car quand je fais "voir fichier asm" il me dit que celui-ci n'existe pas.
#3
Posté 06 avril 2012 - 10:39
Salut,
Je ne sais pas à quoi peut être dû ton problème, je n'y ai jamais été confronté (peut être que tu as indiqué un chemin différent pour la compilation ?).
Par contre, j'interviens surtout pour ta remarque :
Si tu fais référence aux fichiers formats ".asm", c'est normal qu'il n'y en ait pas. Ces fichiers ne s'obtiennent pas par compilation. Tu obtiens ce format en enregistrant un document texte puis en le renommant en "machin.asm". Ils servent pour programmer dans le langage qui s'appelle "assembleur" (ce n'est pas le langage machine) ; ils servent par exemple (je ne sais pas s'il y a d'autres applications) pour programmer un pic sous mplab.
Oui mais je pensais que le fichier .asm serait créé directement à la compilation. Un prof m'a montré la compilation d'un algo flowcode au lycée et il pouvait voir le code assembleur ainsi que le code C. Moi quand je veux voir le code C, pas de problème mais pour l'asm, il me dit que le fichier n'existe pas. Pourtant à la compilation, aucune erreur n'est détectée...
J'ai laissé les valeurs par défaut:peut être que tu as indiqué un chemin différent pour la compilation ?
D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\boostc.pic16.flowcode.exe pour le compilateur C,
D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\boostlink.pic.exe pour l'éditeur de liens/assembleur
Il faut les changer?
P-S: la version est, heu comment dire... pas très légale

#4
Posté 06 avril 2012 - 10:57
prof quelle version a t'il???
Imaginons que tu as la même version du logiciel que ton prof , et que c'est un logiciel
cracker , ça ne pose aucun souci rassure toi.
#5
Posté 06 avril 2012 - 11:29

#6
Posté 06 avril 2012 - 11:40
PS: Dit comme je suis assez curieux sur c'est logiciel aurrais tu un lien qui pourrait me faire voire son fonctionnement.
Si cela ne te dérange pas bien sûr.
#7
Posté 07 avril 2012 - 07:06
Je ne connais pas se logiciel , mes si ça fonction dans le sense que tu me d'écrit c'est plutôt cool alors.
PS: Dit comme je suis assez curieux sur c'est logiciel aurrais tu un lien qui pourrait me faire voire son fonctionnement.
Si cela ne te dérange pas bien sûr.
C'est un logiciel qui s'appelle "flowcode"? On l'utilise au lycée (ailleurs je sais pas) pour nous initier à la programmation. Pour faire court ça évite d'apprendre un logiciel de programmation : tu fais un algorigramme et tu le compiles directement dans le pic. Je sais pas si ça te renseigneras beaucoup mais bon, regardes ici si tu veux ^^ Je ne suis pas sûr mais je crois que quelqu'un a mis un tutoriel dans un précédent sujet.
EDIT : j'ai cherché vite fait et je t'ai trouvé ça
Mais bon, très honnêtement je crois que flowcode n'est pratiquement (voir pas du tout) utilisé dans le milieu extra scolaire. C'est pour ça qu'il n'y a pas grand chose sur le net.
Vu les chemins, ils devraient être au même endroit.Il faut les changer?
Par contre je ne savais pas du tout que flowcode faisait l'assembleur oO
Je viens de me souvenir d'un truc (je ne sais pas si c'est obligatoire, mais si ça l'est c'est de là que vient ton problème), il me semble que lors du premier TP notre prof nous avait fait compiler le programme et avait balancer le .hex directement dans le pic (qu'il avait connecté par une carte -eblock de mémoire- sur le port série). Donc quand tu seras au lycée demande à ton prof d'essayer, on ne sait jamais (après il est possible que ma mémoire me fasse défaut et que l'on ait compilé puis que l'on ait mit le .hex dans le pic

#8
Posté 07 avril 2012 - 11:37
#9
Posté 07 avril 2012 - 01:51
Merci de t'être intéressé à mon problème

#10
Posté 07 avril 2012 - 02:48

EDIT : j'ai regardé et j'ai les mêmes chemins que toi pour les compilateurs c/asm. Donc, pour voir si j'avais le même problème (je suis sous flowcode 4 également) j'ai fait un programme bidon et je l'ai compilé. J'ai obtenu tous les fichiers (dont le .asm, le .c et le plus important le .hex). Donc je ne sais pas du tout pourquoi tu as ce problème "^^ (peut être ta version ?)
#11
Posté 07 avril 2012 - 05:55
Et j'ai aussi ( Flowcode V3.2.4 AVR ) et ( Flowcode V3.4.7 ARM ).
Car je peux te fournir le lien si tu le souhaites.
#12
Posté 08 avril 2012 - 05:48
par contre MP le moi parce que si c'est un lien craqué, vaut peut-être mieux pas le publier directement sur le forum

#13
Posté 05 mai 2012 - 07:39


Déjà j'ai lu la doc technique du compilateur boostC pour voir ce qui n'allait pas.
J'ai vu qu'il y avait deux compilateurs: "boostc.pic16.flowcode.exe" (et pic18 aussi pour les 18fXXX) et "boostlink.pic.exe"; le premier servant à compiler en C et l'autre à compiler en .hex.
Le premier compilateur ne peut pas être lancé en invite de commande (code 118) à cause d'une sécurité imposée par le fabriquant.
Pour le deuxième, voici les paramètres à mettre lorsqu'on l'utilise en ligne de commande:
BoostLink command line
BoostLink Optimizing Linker Version x.xx
http://www.sourceboost.com
Copyright© 2004-2009 Pavel Baranov
Copyright© 2004-2009 David Hobday
Licensed to <license info>
Usage: boostlink_pic.exe [options] files
Options:
-t name target processor
-On optimization level 0-1 (default n=1)
n=0 - no optimization
n=1 - pattern matching and bank switching optimize on
-v verbose mode
-d path directory for project output
-p name project (output) name for multiple .obj file linking
-ld path directory for library search
-rb address ROM base (start) address to use
-rt address ROM top (end) address to use
-swcs s1 s2 s3 Use software call stack. Hardware stack is allocated by
specifying stack depths s1,s2,s3 (optional)
s1 = main and task routines hardware stack allocation
s2 = ISR hardware stack allocation
s3 = PIC18 low priority ISR hardware stack allocation
-isrnoshadow ISR No use of Shadow registers
-isrnocontext ISR No context Save/restore is added to ISR(PIC18 only)
-icd2 Add NOP at first ROM address for correct ICD2 operation
-hexela Always add extended linear address record to .hex file
-beep Issue sound at the end of link (default off)
Switches for making libraries:
-lib make library file from supplied .obj and .lib files
-p name project (library output file) name
En fait, lorsque l'on compile en .hex sous Flowcode, il appelle boostlink en lui envoyant ces paramètres:
où %f est sensé renvoyer le nom du fichier (dans mon cas "emission pwm"), %p le modèle du PIC (dans mon cas 16f88) et %d le fichier d'enregistrement du .hex qui ce trouve être celui du projet.-ld "D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\lib" libc.pic16.lib flowcode.pic16.lib rand.pic16.lib float.pic16.lib "%f.obj" -t PIC%p -d "%d" -p "%f"
je me suis donc dis que c'était à ce niveau là que ça pêchait: il y avait peut-être un problème dans la syntaxe...
Pour vérifier j'ai directement tapé la commande dans une invite pour pouvoir voir les messages d'erreur.
j'ai commencé par taper la commande telle qu'elle était écrite dans Flowcode:
Microsoft Windows [version 6.0.6002]
Copyright © 2006 Microsoft Corporation. Tous droits réservés.
C:\Users\flo>pushd d:
D:\>pushd pro*
D:\programmes>pushd matr*
D:\programmes\Matrix Multimedia>pushd flowcode v4
D:\programmes\Matrix Multimedia\Flowcode V4>pushd boo*
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>boostlink.pic.exe -ld "D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\lib" libc.pic16.lib flowcode.pic16.lib rand.pic16.lib float.pic16.lib "%f.obj" -t PIC%p -d "%d" -p "%f"
BoostLink Optimizing Linker Version 6.95
http://www.sourceboost.com
Copyright© 2004-2009 Pavel Baranov
Copyright© 2004-2009 David Hobday
***Target must be specified
Usage: linker.exe [options] files
Options:
-t name target processor
-On optimization level 0-1 (default n=1)
n=0 - no optimization
n=1 - pattern matching and bank switching optimization on
-v verbose mode
-d path directory for project output
-p name project (output) name for multiple .obj file linking
-ld path directory for library search
-rb address ROM base (start) address to use
-rt address ROM top (end) address to use
-swcs s1 s2 s3 Use software call stack. Hardware stack is allocated by
specifying stack depths s1,s2,s3 - these are optional
s1 = main and task routines hardware stack allocation
s2 = ISR hardware stack allocation
s3 = PIC18 low priority ISR hardware stack allocation
-isrnoshadow ISR No use of Shadow registers
-isrnocontext ISR No context Save/restore is added to ISR(PIC18 only)
-icd2 Add NOP at first ROM address for correct ICD2 operation
-hexela Always add extended linear address record to .hex file
-beep Issue sound at the end of link (default off)
Switches for making libraries:
-lib make library file from supplied .obj and .lib files
-p name project (library output file) name
failure
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>
(en rouge les messages d'erreur)
Vu que la cible (paramètre -t) est spécifiée mais qu'il ne la reconnait pas, je me suis dit que le %p n'était pas reconnu, je l'ai donc remplacé par la ref de mon pic, c'est à dire 16f88:
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>boostlink.pic.exe -ld "D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\lib" libc.pic16.lib flowcode.pic16.lib rand.pic16.lib float.pic16.lib "%f.obj" -t PIC16f88 -d "%d" -p "%f"
BoostLink Optimizing Linker Version 6.95
http://www.sourceboost.com
Copyright© 2004-2009 Pavel Baranov
Copyright© 2004-2009 David Hobday
Error: Failed to open:%f.obj
failure
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>
conclusion: il ne reconnait pas le %f. Je l'ai donc remplacé par le chemin+le nom de mon .obj:
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>boostlink.pic.exe -ld "D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\lib" libc.pic16.lib flowcode.pic16.lib rand.pic16.lib float.pic16.lib "C:\Users\flo\Dropbox\Robot + Station\Station\balise\version PIC\Codes\emission pwm.obj" -t pic16f88 -d "%d" -p "%f"
BoostLink Optimizing Linker Version 6.95
http://www.sourceboost.com
Copyright© 2004-2009 Pavel Baranov
Copyright© 2004-2009 David Hobday
Warning unreferenced functions removed:
FCI_FLOAT_TO_STRING in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
FCI_NUMBER_TO_HEX in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
FCI_STRING_TO_INT in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
FCI_STRING_TO_FLOAT in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
Wdt_msDelay in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
Wdt_Delay_S in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
Wdt_Delay_Ms in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
isinf in: D:\programmes\Matrix Multimedia\Flowcode V4\FCD\internals.h
FCD_PWM0_ChangePeriod in: C:\Users\flo\Dropbox\Robot + Station\Station\balise\version PIC\Codes\emission pwm.c
FCD_PWM0_SetDutyCycle10bit in: C:\Users\flo\Dropbox\Robot + Station\Station\balise\version PIC\Codes\emission pwm.c
Building CASM file
Memory Usage Report
===================
RAM available:368 bytes, used:38 bytes (10.4%), free:330 bytes (89.6%),
Heap size:330 bytes, Heap max single alloc:110 bytes
ROM available:4096 words, used:184 words (4.5%), free:3912 words (95.5%)
success
D:\programmes\Matrix Multimedia\Flowcode V4\boostc>
et là, tadaaaa ça marche!
les deux problèmes étaient donc le %p et le %f.
Bon il ne me reste plus qu'à aller chercher le .hex pour voir. Mais j'ai beau chercher, impossible de le trouver dans le dossier de mon projet. Ayant une petite idée de l'origine de mon mal, je vais faire un tour dans le répertoire de boostlink et la, surprise, je trouve un dossier nommé %d contenant tous mes fichiers asm, hex et autre mais sous le doux nom de "%f".
conclusion: aucun des %X ne marche, il faut tous les remplacer.
Du coup j'ai modifié la ligne de paramètre de flowcode concernant la compilation en .hex par:
mais ça ne marche toujours pas... Je compile donc en invite de commande en attendant d'avoir mieux!-ld "D:\programmes\Matrix Multimedia\Flowcode V4\BoostC\lib" libc.pic16.lib flowcode.pic16.lib rand.pic16.lib float.pic16.lib "C:\Users\flo\Dropbox\Robot + Station\Station\balise\version PIC\Codes\emission pwm.obj" -t pic16f88 -d "C:\Users\flo\Dropbox\Robot + Station\Station\balise\version PIC\Codes" -p "emission pwm"
La suite au prochain épisode

#14
Posté 06 mai 2012 - 02:34

#15
Posté 06 mai 2012 - 04:29
#16
Posté 09 mai 2012 - 08:05
En tous cas, merci de ton retour d'expérience ^^ (et merde la mienne l'est aussi XD)
lol si tu veux je te donne le lien de la démo, les limitations ne sont pas énormes (à part un message avec compte-à-rebours bien relou au lancement et à la fermeture)
#17
Posté 09 mai 2012 - 08:18
Je veux bien merci ^^lol si tu veux je te donne le lien de la démo, les limitations ne sont pas énormes (à part un message avec compte-à-rebours bien relou au lancement et à la fermeture)
(enfin si c'est sur le site officiel, je retrouverai

#18
Posté 09 mai 2012 - 08:23
Je veux bien merci ^^
(enfin si c'est sur le site officiel, je retrouverai)
http://www.matrixmultimedia.com/lc_index.php?p=25 (t'as le choix des versions, moi j'utilise la v4 mais je suppose que la v5 est mieux

1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users