[presque HS] compilation linux du bootloader Diolan (PIC et USB)

bonsoir à tous,

bon, j'ai une question qui est quasiment hors charte parce que plutôt Linux, mais j'ai pas trouvé d'aide ailleurs ... et puis je cause d'électronique quand même, hein !

J'utilise le bootloader PIC Diolan (voir les liens plus bas) depuis quelques temps maintenant je suis comblé sous windows. Mais je n'arrive pas à l'installer sous linux (il faut dire que je suis tout nouveau sous sur cette plate-forme).

Mon pb ce présente à l'instruction 'make' qui me renvoie une erreur à propos de 'uint32_t', qui ne serait pas un type valable... ?

je vous ai mis le résultat de l'instruction make en cjoint pour alléger ce post :

formatting link

Vous avez le même résultat vous ? Je n'ai rien trouvé comme doc sur les erreurs à l'instruction make, apparemment quand il y'a des pb c'est plutôt à l'éxecution de ./configure

Please help... merci de votre expérience Laurent

Les liens : Le bootloader :

formatting link
téléchargement :
formatting link
notice compil :
formatting link

---------------------------------------------

laurent (point) claude (chez) free (point) fr

---------------------------------------------

Reply to
Laurent CLAUDE
Loading thread data ...

Le Fri, 01 Oct 2010 20:43:51 +0200, Laurent CLAUDE a écrit :

pas essayé : f.c.o.linux.configuration ou l.d.user.french (si Debian) ?

Reply to
moi-meme

Le 01/10/10 20:43, Laurent CLAUDE a écrit :

Bonjour,

Qunad je vois ça : ../osdep/lnxdefs.h:35: error: â??uint32_tâ?? does not name a type

Ca me fait dire que n'est pas reconnu ...

./configure construit le fichier Makefile qui est ensuite pris par make pour la compilation finale.

Regarde bien quelles sont les options à donner à ./configure pour inclure tout le toutim à la construction correcte du Makefile en faisant ./configure --help

PS : Si j'ai le temps je veux bien faire la construction la semaine prochaine, mais si ca me prends plus de 5 mins j'abandonne.

Reply to
Habib Bouaziz-Viallet

Le 02/10/2010 09:15, Habib Bouaziz-Viallet a écrit :

not

oui, il faut certainemant faire un ./configure avant le make, l'erreur est dans osdep, liée à l'os. le type de variable incriminé n'est pas déclaré.

regardes bien les instructions de compilation, il doit certainement y a voir des explications là dessus.

comme tu es novice, comme je 'ai été et le suis encore d'ailleus, je te fais une rapide explication:

il y a généralement un script qui s'appelle configure qui va générer le fichier makefile qui est utilisé comme directive par make.

configure examine le systeme, type de processeur, type d'os, librairies installées ou non et va générer le makegile en conséquences.

il peut retourner des erreurs si certaines librairies sont manquantes.

si tu n'as pas fait le configure, ton make a utilisé un fichier makefile générique que ne colle pas avec ton système.

JJ

Reply to
jj

Le 02/10/2010 12:34, jj a écrit :

does not

oui, alors je l'ai rajouté et l'erreur en question n'est plus, mais d'autres s'enchaînent... et me dépassent tout autant :-(

merci de cette info, je creuse aussi par là, mais il me faut un peu de temps pour appréhender la chose

Alors ça oui, même si ce n'est que 5 minutes : bien volontiers ! et pour ne pas te faire perdre de temps : le soft qui m'intéresse dans l'archive (car il y en a plusieurs) est dans le répertoire fw_update. C'est cool, merci par avance.

Oui, j'ai bien entendu fait un ./configure, merci de cette petite explication, ce sont déjà quelques clés qui me manquaient.

Je creuse, je creuse

--
---------------------------------------------
      ATTENTION : ADRESSE PAS DE PUBS !

laurent (point) claude (chez) free (point) fr

---------------------------------------------
Reply to
Laurent CLAUDE

Laurent CLAUDE wrote:

does not

Bonjour,

En fait c'est facile.

Dans les deux fichiers suivants : osdep/lnxdefs.h

#ifndef LNXDEFS_H_INCLUDED #define LNXDEFS_H_INCLUDED #include #include #include #include #include #include

#include #include ...

et osdep/osdep.h

... #else /* Linux definitions */ #include "lnxdefs.h" #include #include #include #endif

et normalement ca compile, la preuve :

make all-recursive make[1]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update » Making all in exception make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/exception » g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT exception.o -MD -MP -MF .deps/exception.Tpo -c -o exception.o exception.cpp mv -f .deps/exception.Tpo .deps/exception.Po rm -f libexception.a ar cru libexception.a exception.o ranlib libexception.a make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/exception » Making all in buffer make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/buffer » g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT buffer.o -MD -MP -MF .deps/buffer.Tpo -c -o buffer.o buffer.cpp mv -f .deps/buffer.Tpo .deps/buffer.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT fragbuffer.o -MD -MP -MF .deps/fragbuffer.Tpo -c -o fragbuffer.o fragbuffer.cpp mv -f .deps/fragbuffer.Tpo .deps/fragbuffer.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT iterator.o -MD -MP -MF .deps/iterator.Tpo -c -o iterator.o iterator.cpp mv -f .deps/iterator.Tpo .deps/iterator.Po rm -f libbuffer.a ar cru libbuffer.a buffer.o fragbuffer.o iterator.o ranlib libbuffer.a make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/buffer » Making all in dtrace make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/dtrace » g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT dtrace.o -MD -MP -MF .deps/dtrace.Tpo -c -o dtrace.o dtrace.cpp mv -f .deps/dtrace.Tpo .deps/dtrace.Po rm -f libdtrace.a ar cru libdtrace.a dtrace.o ranlib libdtrace.a make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/dtrace » Making all in image make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/image » g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT argumentimage.o -MD -MP -MF .deps/argumentimage.Tpo -c -o argumentimage.o argumentimage.cpp mv -f .deps/argumentimage.Tpo .deps/argumentimage.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT binimage.o -MD -MP -MF .deps/binimage.Tpo -c -o binimage.o binimage.cpp mv -f .deps/binimage.Tpo .deps/binimage.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT cout_image.o -MD -MP -MF .deps/cout_image.Tpo -c -o cout_image.o cout_image.cpp mv -f .deps/cout_image.Tpo .deps/cout_image.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT intel_hex_image.o -MD -MP

-MF .deps/intel_hex_image.Tpo -c -o intel_hex_image.o intel_hex_image.cpp mv -f .deps/intel_hex_image.Tpo .deps/intel_hex_image.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT intel_hex_record.o -MD -MP

-MF .deps/intel_hex_record.Tpo -c -o intel_hex_record.o intel_hex_record.cpp mv -f .deps/intel_hex_record.Tpo .deps/intel_hex_record.Po rm -f libimage.a ar cru libimage.a argumentimage.o binimage.o cout_image.o intel_hex_image.o intel_hex_record.o ranlib libimage.a make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/image » Making all in osdep make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/osdep » make[2]: Rien à faire pour « all ». make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/osdep » Making all in parser make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update/parser » g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT parameter.o -MD -MP -MF .deps/parameter.Tpo -c -o parameter.o parameter.cpp mv -f .deps/parameter.Tpo .deps/parameter.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT parameters.o -MD -MP -MF .deps/parameters.Tpo -c -o parameters.o parameters.cpp mv -f .deps/parameters.Tpo .deps/parameters.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT parser.o -MD -MP -MF .deps/parser.Tpo -c -o parser.o parser.cpp mv -f .deps/parser.Tpo .deps/parser.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT usage.o -MD -MP -MF .deps/usage.Tpo -c -o usage.o usage.cpp mv -f .deps/usage.Tpo .deps/usage.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT usage_descriptor.o -MD -MP

-MF .deps/usage_descriptor.Tpo -c -o usage_descriptor.o usage_descriptor.cpp mv -f .deps/usage_descriptor.Tpo .deps/usage_descriptor.Po g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT usage_update.o -MD -MP -MF .deps/usage_update.Tpo -c -o usage_update.o usage_update.cpp mv -f .deps/usage_update.Tpo .deps/usage_update.Po rm -f libparser.a ar cru libparser.a parameter.o parameters.o parser.o usage.o usage_descriptor.o usage_update.o ranlib libparser.a make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update/parser » make[2]: entrant dans le répertoire « /home/habib/Téléchargements/bootloader/fw_update » g++ -DHAVE_CONFIG_H -I. -g -O2 -MT fu_usage.o -MD -MP -MF .deps/fu_usage.Tpo -c -o fu_usage.o fu_usage.cpp mv -f .deps/fu_usage.Tpo .deps/fu_usage.Po g++ -DHAVE_CONFIG_H -I. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo

-c -o main.o main.cpp mv -f .deps/main.Tpo .deps/main.Po g++ -DHAVE_CONFIG_H -I. -g -O2 -MT pic_bootloader.o -MD -MP -MF .deps/pic_bootloader.Tpo -c -o pic_bootloader.o pic_bootloader.cpp mv -f .deps/pic_bootloader.Tpo .deps/pic_bootloader.Po /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -o fw_update fu_usage.o main.o pic_bootloader.o ./buffer/libbuffer.a ./dtrace/libdtrace.a ./exception/libexception.a ./image/libimage.a ./parser/libparser.a -lusb -L./buffer -L./dtrace -L./exception -L./image

-L./parser -lbuffer -ldtrace -lexception -limage -lparser mkdir .libs g++ -g -O2 -o fw_update fu_usage.o main.o pic_bootloader.o ./buffer/libbuffer.a ./dtrace/libdtrace.a ./exception/libexception.a ./image/libimage.a ./parser/libparser.a /usr/lib/libusb.so

-L/home/habib/Téléchargements/bootloader/fw_update/buffer

-L/home/habib/Téléchargements/bootloader/fw_update/dtrace

-L/home/habib/Téléchargements/bootloader/fw_update/exception

-L/home/habib/Téléchargements/bootloader/fw_update/image

-L/home/habib/Téléchargements/bootloader/fw_update/parser -lbuffer

-ldtrace -lexception -limage -lparser make[2]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update » make[1]: quittant le répertoire « /home/habib/Téléchargements/bootloader/fw_update »

Habib

Reply to
Habib Bouaziz-Viallet

Le 04/10/2010 06:53, Habib Bouaziz-Viallet a écrit :

Waowwwwww !!! Nickel !

Je t'envoie d'énormes *merci* *merci* *merci* !!

Effectivement ça compile, et ça s'installe, tu viens de me débloquer d'une situation qui ne me plaisait pas.

Effectivement c'est facile... pour celui qui sait en tous cas ;-)

Bon, je vais pouvoir continuer, aller hop au boulot.

Encore merci Habib !

--
Laurent.

---------------------------------------------

laurent (point) claude (chez) free (point) fr

---------------------------------------------
Reply to
Laurent CLAUDE

Laurent CLAUDE a écrit :

Tu peux arriver assez rapidement à te débrouiller avec les outils standard Unix autotool et make avec des réferences livresques comme par exemple (en anglais)

formatting link

Il est déja un peu vieux mais c'est encore d'actualité.

Habib

Reply to
Habib Bouaziz-Viallet

Le 05/10/2010 17:32, Habib Bouaziz-Viallet a écrit :

ok, merci pour l'info, peut être un jour...

--
Laurent.

---------------------------------------------

laurent (point) claude (chez) free (point) fr

---------------------------------------------
Reply to
Laurent CLAUDE

Le 04/10/2010 19:12, Laurent CLAUDE a écrit :

bonjour à tous, je reviens ici après avoir pu (grace à Habib) installé ce bootloader histoire de partager mon expérience. Si ça peut servir à d'autres.

Car en fait il me semble bien buggé ce soft (ou alors j'ai pas tout compris, et c'est bien possible...), exemples :

- impossible d'obtenir la version du firmware-bootloader : laurent@monux:~$ fw_update -ver -vid 0x1234 -pid 0x1234 fw_update Version: 0.2.0 U2IO BootLoader Version reading: FAILED. Erreur de segmentation

- impossible de lire le firmware-application : laurent@monux:~$ fw_update -r -vid 0x1234 -pid 0x1234 -ox eeprom.hex U2IO flash reading: FAILED. RESET Device Device is not found. Operation aborted.

etc...

Donc il y'a problèmes avec linux. Par contre je ne rencontre pas du tout ces problèmes avec le binaire fourni pour tourner sous windows.

ps : j'ai volontairement remplacé ici mes vid et pid par 0x1234

--
Laurent.

---------------------------------------------

laurent (point) claude (chez) free (point) fr

---------------------------------------------
Reply to
Laurent CLAUDE

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.