Forum des Objets Communicants et Solutions pour les Libérer...
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 Demande d'aide Funfoo - Firmware / ByteCode du lapin

Aller en bas 
+4
wizz.cc
funfoo
RedoX
PlaneteDomo
8 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 21:24

Salut à tous, salut Funfoo,

Je m'adresse en particulier à Funfoo, qui si l'on en crois le whois de Nabizdead.net et les sources du Nabaztag connait particulièrement bien le lapin yellownabzwink

Pourrais tu S'IL TE PLAIT nous filer un petit coup de main sur la manière de recompiler un firmware pour le lapin.

Les questions sont les suivantes :
* Le langage (VLisp / Metal ?), je trouve rien sur Metal sur google, aurais tu un ou deux liens permettant d'avoir quelques bases ?
* Je suppose qu'il faut compiler d'abord le compilateur qui semble en C (sous windows avec VS par exemple) et il permet ensuite de compiler les fichiers mtl pour obtenir le firmware ? Je n'ai pas encore pu tester la compilation du Compiler, donc je parle un peu dans l'abstrait... Peux tu décrire rapidement comment a partir du compiler générer le firmware du lapin (ligne de commande par exemple) ?
* La différence entre boot et nominal ? Boot correspond au bootloader et nominal au firmware à proprement parlé ? Les deux peuvent être chargé de manière dynamique par le lapin lors de la connexion au serveur ?
* Eventuellement (même si j'en suis pas encore la), peux tu décrire la procédure d'échange avec le lapin pour qu'il récupère et install un nouveau firmware ?

En gros, je te remercie énormément si tu pouvais nous expliquer une procédure qu'apparemment tu maitrises parfaitement.

Pour finir, même si je comprendrais parfaitement une réponse négative, pense tu mettre le firmware que tu as développé pour Nabizdead en Open Source ?

Merci d'avance Funfoo, et encore merci pour tout ton travail pour Nabizdead.

Mickael




Dernière édition par PlaneteDomo le Mer 3 Aoû 2011 - 22:51, édité 1 fois
Revenir en haut Aller en bas
http://www.planete-domotique.com
RedoX
Platinum Nabz
Platinum Nabz
RedoX

Localisation : France
Nbr de messages : 1287
Carottes : 5561

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 21:48

Je ne suis pas funfoo, mais je vais te répondre à partir de ce que je sais ^^

PlaneteDomo a écrit:
Les questions sont les suivantes :
* Le langage (VLisp / Metal ?), je trouve rien sur Metal sur google, aurais tu un ou deux liens permettant d'avoir quelques bases ?
Y'a une doc de référence sur le langage dans les sources de mindscape. D’après funfoo c'est proche du Caml. Y'a pas de tuto pour apprendre par contre...

PlaneteDomo a écrit:
* Je suppose qu'il faut compiler d'abord le compilateur qui semble en C (sous windows avec VS par exemple) et il permet ensuite de compiler les fichiers mtl pour obtenir le firmware ? Je n'ai pas encore pu tester la compilation du Compiler, donc je parle un peu dans l'abstrait... Peux tu décrire rapidement comment a partir du compiler générer le firmware du lapin (ligne de commande par exemple) ?

Avant de compiler, il faut un compilateur yellownabzsmile Donc compiler les sources C données par mindscape. Pixel en a parlé un peu dans un autre topic.

PlaneteDomo a écrit:
* La différence entre boot et nominal ? Boot correspond au bootloader et nominal au firmware à proprement parlé ? Les deux peuvent être chargé de manière dynamique par le lapin lors de la connexion au serveur ?
Quand tu branches ton lapin, il tourne avec le bootcode nominal, stocké en flash. Ensuite, première action, il récupère le bytecode secondaire (via le /vl/bc.jsp) et oublie tout ce qu'il sait du bootcode nominal

PlaneteDomo a écrit:
* Eventuellement (même si j'en suis pas encore la), peux tu décrire la procédure d'échange avec le lapin pour qu'il récupère et install un nouveau firmware ?
C'est le bytecode nominal qui gère ça je pense...

PlaneteDomo a écrit:
Pour finir, même si je comprendrais parfaitement une réponse négative, pense tu mettre le firmware que tu as développé pour Nabizdead en Open Source ?
J'avais discuté un peu avec funfoo, il veut d'abord bien poser les bases de son projets avant de releaser quoi que ce soit sur un SVN.
Revenir en haut Aller en bas
https://openjabnab.fr/
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 22:14

RedoX a écrit:
Je ne suis pas funfoo, mais je vais te répondre à partir de ce que je sais ^^

Tout d'abord, merci pour ta réponse rapide. Toute aide est bonne à prendre yellownabzwink !

RedoX a écrit:
PlaneteDomo a écrit:
Les questions sont les suivantes :
* Le langage (VLisp / Metal ?), je trouve rien sur Metal sur google, aurais tu un ou deux liens permettant d'avoir quelques bases ?
Y'a une doc de référence sur le langage dans les sources de mindscape.

Effectivement, je suis passé un peu vite sur le répertoire Outils yellownabzsmile

Il va falloir que je ressorte mes cours de compilation par contre ...

RedoX a écrit:
D’après funfoo c'est proche du Caml. Y'a pas de tuto pour apprendre par contre...

Effectivement, j'avais vu cette remarque de funfoo. Mais si je me fie à la doc fourni, le Metal semble être un langage inventé par Sylvain spécialement pour le lapin ....

Dommage qu'il ai pas tout fait en C, ça m'aurait simplifié la vie !


RedoX a écrit:
PlaneteDomo a écrit:
* Je suppose qu'il faut compiler d'abord le compilateur qui semble en C (sous windows avec VS par exemple) et il permet ensuite de compiler les fichiers mtl pour obtenir le firmware ? Je n'ai pas encore pu tester la compilation du Compiler, donc je parle un peu dans l'abstrait... Peux tu décrire rapidement comment a partir du compiler générer le firmware du lapin (ligne de commande par exemple) ?

Avant de compiler, il faut un compilateur yellownabzsmile Donc compiler les sources C données par mindscape. Pixel en a parlé un peu dans un autre topic.

La aussi, j'ai lu le thread ouvert par Pixel, mais il a compilé sous une vieille version de linux en utilisant les scripts qui sont dans les sources.

Apparemment Funfoo travaille sous Windows avec VS (cf le même post), et vu que c'est ce que je connais le mieux aussi, je préférerais utiliser VS moi aussi...

RedoX a écrit:
PlaneteDomo a écrit:
* La différence entre boot et nominal ? Boot correspond au bootloader et nominal au firmware à proprement parlé ? Les deux peuvent être chargé de manière dynamique par le lapin lors de la connexion au serveur ?
Quand tu branches ton lapin, il tourne avec le bootcode nominal, stocké en flash. Ensuite, première action, il récupère le bytecode secondaire (via le /vl/bc.jsp) et oublie tout ce qu'il sait du bootcode nominal

La, de ce que j'en comprends moi (mais j'aurais aimé confirmation de funfoo). On a un bootloader (le boot.0.0.0.x.mtl) qui est chargé sur le lapin. Je sait pas si ont peut le changer à distance, (risque de briquer les lapins !) mais apparemment oui puisque certains sont passé de 0.0.0.9 en 0.0.0.10 pour pouvoir utiliser Nabizdead...

D'ailleurs, en regardant les sources, ont retrouve bien les pages web de configuration du lapin. Donc ce bootloader permet je pense de configurer le lapin et de charger le firmware (compilé depuis nominal.mtl) en utilisant le /vl/bc.jsp

Petite remarque au passage, il y a un bootloader en version 0.0.0.12, alors que le dernier déployé semble être le 0.0.0.10

RedoX a écrit:
PlaneteDomo a écrit:
* Eventuellement (même si j'en suis pas encore la), peux tu décrire la procédure d'échange avec le lapin pour qu'il récupère et install un nouveau firmware ?
C'est le bytecode nominal qui gère ça je pense...

Non, je pense justement que c'est le boot.mtl qui gère ça et charge le firmware nominal pour le lancer ensuite.

Le chargement ce fait à partir du /vl/bc.jsp je pense (il me semble avoir lu des trucs la dessus, mais si Funfoo peut nous confirmer le principe, ça serait cool)

RedoX a écrit:
PlaneteDomo a écrit:
Pour finir, même si je comprendrais parfaitement une réponse négative, pense tu mettre le firmware que tu as développé pour Nabizdead en Open Source ?
J'avais discuté un peu avec funfoo, il veut d'abord bien poser les bases de son projets avant de releaser quoi que ce soit sur un SVN.

OK, pas de soucis, j'aimerais déjà pouvoir compiler un firmware, ensuite avoir le firmware de funfoo, c'est surtout pour voir certaines choses style la manière dont il a géré l'heure yellownabzwink ...

Revenir en haut Aller en bas
http://www.planete-domotique.com
RedoX
Platinum Nabz
Platinum Nabz
RedoX

Localisation : France
Nbr de messages : 1287
Carottes : 5561

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 22:33

C'est pas à proprement parler un bootloader: T'as le firmware en C qui fait tourner une machine virtuelle et qui execute le bytecode nominal (en Metal) avec tous les avantages d'une VM (ramasse miettes, confinement, et tout :p). Ensuite, ce bytecode est remplacé par le bytecode "normal" on va dire (qui fait tourner le lapin en fonctionnement normal) après la récupération via le /vl/bc.jsp.

enfin, c'est comme ça que j'ai compris le business ^^
Revenir en haut Aller en bas
https://openjabnab.fr/
funfoo
Special Nabz
Special Nabz


Localisation : Paris
Nbr de messages : 89
Carottes : 4538

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 22:51

ça fait beaucoup de questions...

sur les dénominations : Métal est un langage que j'ai développé en janvier 2003, bien avant que je rejoigne Olivier pour co-fonder Violet. C'est un outil perso, c'est pourquoi il n'y a pas de doc. Ca ressemble pas mal au langage Scol que j'avais développé en 96, et Caml est une bonne introduction (Métal est un peu moins théorique).

Lorsque le développement du nab V2 a démarré en fév2006, j'avais besoin très rapidement d'une machine virtuelle plus évoluée que celle que j'avais réalisée pour la V1, et j'ai pensé à intégrer une version allégée de Métal, ce qui a effectivement permis de tenir les délais, puisque le soft était prêt dès septembre 2006. L'antériorité de ce langage n'autorisait évidemment pas Mindscape à en diffuser les sources sans mon accord ; mais on ne va pas tirer sur l'ambulance.

VLISP signifie Violet Lowcost IS Powerful ; une manière de dire qu'on peut faire beaucoup avec peu. C'est le nom de code du projet technique de la V2

Le projet Visual intègre le compilateur, l'interpréteur et le simulateur. Je ne connais rien de la version linux qui en dérive visiblement. Je ne sais pas si cette version linux intègre le simulateur ; si ce n'est pas le cas, je conseille vraiment la version visual.

Le firmware est constitué de l'interpréteur, des librairies "système" bas-niveau (dont le driver wifi réalisé par un étudiant exceptionnel, alors en maths spé, pendant qu'ils passait les concours!), et du bytecode de boot. Pour modifier le firmware, je pense qu'il faut nécessairement avoir les outils de dev IAR (compilo + sonde) ; en tout cas, c'est comme ça que je l'ai fait.

Le bytecode de boot est intégré dans le firmware sous la forme d'un tableau (fichier bc.c)

Le bytecode de boot contient la stack ip, le serveur de configuration, la série de tests usine, et le comportement initial (connexion puis téléchargement du bytecode nominal).

Je ne connais pas le bytecode nominal xmpp, celui-ci ayant été réalisé par l'équipe à laquelle j'avais cédé la main début 2007.

Je pense effectivement partager le travail que je réalise sur nabizdead, une fois qu'il sera stabilisé ; toutefois, je préférerais que les développeurs s'intéressent à développer leurs propres services à connecter sur nabizdead, au travers de l'api, encore embryonnaire, mais qui va s'étoffer notamment avec les "serveurs tiers" (ie, le fait que les lapins ping directement d'autres serveurs que le mien).

En ce début août, je ne pourrai pas fournir beaucoup de support : je consacre l'essentiel de mon temps à ma famille, et je dois surveiller et améliorer un peu le fonctionnement de nabizdead, même si ça tourne pas mal tout seul.
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 23:18

funfoo a écrit:
ça fait beaucoup de questions...

Et je te remercie très sincèrement d'avoir pris le temps d'y répondre.

funfoo a écrit:
je pense qu'il faut nécessairement avoir les outils de dev IAR (compilo + sonde) ; en tout cas, c'est comme ça que je l'ai fait.

OK, par contre pour une modification du bytecode nominal, pas besoin de cette artillerie lourde ?


funfoo a écrit:
Je ne connais pas le bytecode nominal xmpp, celui-ci ayant été réalisé par l'équipe à laquelle j'avais cédé la main début 2007.

Ok, je suis en train de regarder un peu, je commence à comprendre quelques trucs ... Very Happy

funfoo a écrit:
Je pense effectivement partager le travail que je réalise sur nabizdead, une fois qu'il sera stabilisé ; toutefois, je préférerais que les développeurs s'intéressent à développer leurs propres services à connecter sur nabizdead, au travers de l'api, encore embryonnaire, mais qui va s'étoffer notamment avec les "serveurs tiers" (ie, le fait que les lapins ping directement d'autres serveurs que le mien).

OK, merci la aussi. Je m'intéresse à la recompilation d'un bytecode nominal, d'abord par curiosité personnel yellownabzsmile et ensuite, parce que j'ai pas encore testé le tiens qui si ça se trouve fait déjà tout ce que je veux Wink

Ce qui est surement super pour beaucoup, ne l'ai pas pour ce que je veux faire (le lapin qui parle seulement quand il détecte la présence), moi je voudrais pour une utilisation dans un système domotique, qu'il ping le serveur toutes les 5 sec par exemple et si le serveur lui renvoi un message, qu'il le dise que je sois à coté ou pas... de même, je voudrais pouvoir mettre dans les flux :
* 1 lien vers un mp3 que le lapin lira
* 1 position d'oreille => pour qu'il mette les oreilles dans une position donné
* 1 palette de couleur pour les leds pour mettre les leds en couleur voulu.
* 1 url que le lapin devra charger (sur le reseau local ou internet)

Quand on passe un tag RFID sur le lapin, je voudrais qu'il appelle une url avec le numéro du tag sur le serveur (par exemple : http://www.nabizdead.net/tagrfid.php?tag=12FE4543ADD

Et cette page renvoi alors un flux suivant l'idée d'avant (par exemple une page web à charger par le lapin) ...

funfoo a écrit:

En ce début août, je ne pourrai pas fournir beaucoup de support : je consacre l'essentiel de mon temps à ma famille, et je dois surveiller et améliorer un peu le fonctionnement de nabizdead, même si ça tourne pas mal tout seul.

Je comprends parfaitement yellownabzsmile, et je te souhaite de bonnes vacances yellownabzsmile
Moi, je reprends lundi, et je n'aurais surement pas autant de temps que je voudrais à consacrer à tout ça tongue

Encore merci,

A bientôt
Revenir en haut Aller en bas
http://www.planete-domotique.com
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeSam 30 Juil 2011 - 23:49

Bon, ben je me répond à moi même Smile

Même pas besoin de Visual Studio Smile

Les sources de Mindscape sont données avec une version Précompilé du vlispemu.exe

Je n'arrive pas à "compiler" le bootcode nominal.mtl, car il me dit que le mot clef "const" n'est pas reconnu...

Par contre, j'arrive très bien à compiler le nominal-ping.mtl qui doit correspondre au dernier bytecode que tu avais fait, donc sans XMPP (que je ne souhaite de toute façon pas garder moi non plus) !

Ensuite, on voit le petit simulateur qui s'ouvre avec les led, les oreilles qui sont simulées cheers

Trop bon travail monsieur Sylvain !!!!

PS: On obtient un foo.bin qui est le fichier que doit renvoyer le bc.jsp ?
Revenir en haut Aller en bas
http://www.planete-domotique.com
wizz.cc
Special Nabz
Special Nabz
wizz.cc

Localisation : Paris - France
Nabaztag : Wizz.cc
Nbr de messages : 729
Carottes : 4527

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeDim 31 Juil 2011 - 14:57

@funfoo

merci pour toutes ces réponses.
j'apprécie, comme tous ici, ton implication et ta réactivité... le "père" du système embarqué ne pouvait manifestement pas en faire moins Wink pour sauver tous ses rejetons !

comme bcp, j'attends avec impatience la mise à dispo d'un tuto complet/exemple sur les bases de la ré-écriture du bytecode nominal, ce qui pourra grandement aider pour le dév d'applications plus spécialisées dans des domaines tout aussi variés.

En attendant, tu as raison, il faut nourrir les bestioles et donc se placer comme "fournisseurs de contenus". nous allons nous y employer. à ce titre il serait intéressant d'autoriser plusieurs flux publics et privés par compte (en attendant les serveurs tiers).

cdt,
wizz.cc
Revenir en haut Aller en bas
http://wizz.cc
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeLun 1 Aoû 2011 - 10:51

Salut à tous,

Aller une petite pause ... dur dur la reprise yellownabzwink !

Bon, j'ai généré une version release du compilo/interpreteur/simulateur sans trop de problème. Voici l'exe compilé pour ceux qui n'ont pas les outils : http://dl.dropbox.com/u/1998902/nabaztag/vlispemu.zip

Pour générer un bytecode nominal, il suffit maintenant de mettre cet exe dans le même répertoire qu'un fichier config.txt qui contiendra le nom du fichier mtl à compiler. (cf dans les sources, y'en a un qui traine)

On lance vlispemu.exe, et roulez, l'exe compile le bytecode et génère un fichier foo.bin qui devra être renvoyé par bc.jsp pour mettre à jour le lapin.

Je n'arrive pas à compiler le dernier nominal.mtl qui contient des mots clés "const". Je pense que le vlistemu fourni n'est pas le dernier en date... yellownabzsad

Par contre, ça fonctionne très bien pour générer le nominal-ping.mtl qui doit être (j'espère) le dernier firmware avant xmpp. Cela est une très bonne nouvelle, car du coup il doit être compatible avec OpenNab ! Cela permettrait de monter facilement un nouveau serveur (en htttp, donc sur n'importe quel hébergement mutualisé) en quelques minutes.

J'ai commencé à regarder un peu le code du nominal-ping.mtl, si j'ai le temps, j'essaye de faire un article dessus sur mon blog...

A+


Dernière édition par PlaneteDomo le Mer 3 Aoû 2011 - 23:28, édité 2 fois
Revenir en haut Aller en bas
http://www.planete-domotique.com
juherr
Lapin nain
Lapin nain


Age : 37
Localisation : Strasbourg
Nbr de messages : 9
Carottes : 3751

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeLun 1 Aoû 2011 - 13:19

Dans "mtl_linux\utils", tu as le script "correct_const.sh" qui semble convertir les "var" en "const".

On peut s'en doute en conclure que les versions suivantes au nominal-ping ont été produites via linux.
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeLun 1 Aoû 2011 - 13:57

juherr a écrit:
Dans "mtl_linux\utils", tu as le script "correct_const.sh" qui semble convertir les "var" en "const".

On peut s'en doute en conclure que les versions suivantes au nominal-ping ont été produites via linux.

Effectivement, ça semble être le cas !

Vu que le bytecode xmpp ne m’intéresse pas trop, je vais rester sur le vlispemu windows... Si quelqu'un voit une grosse différence avec la version linux qu'il léve la main ... (enfin l'oreille yellownabzwink)

A+
Revenir en haut Aller en bas
http://www.planete-domotique.com
funfoo
Special Nabz
Special Nabz


Localisation : Paris
Nbr de messages : 89
Carottes : 4538

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeLun 1 Aoû 2011 - 21:45

effectivement, le const ne fait pas partie du métal original. Bizarre d'avoir ajouté ça.
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMar 2 Aoû 2011 - 19:52

@funfoo : Encore un petit coup de main please Smile ?

Jusque la, j'avais fait beaucoup de théorique, et maintenant, je voudrais pouvoir charger mon nominal sur le lapin.

J'ai mis en commentaire le tag "SIMU", j'ai généré le fichier foo.bin, et j'ai un bc.jsp sur le serveur qui renvoi le foo.bin.

MAIS, ça ne fonctionne pas... yellownabzsad

J'ai regardé le foo.bin d'un peu plus près, et il se trouve qu'il n'y a pas l'entête amberxxxxx, est ce normal ? Comment ajouter cette entête ?

Merci beaucoup d'avance,

Mickael

Revenir en haut Aller en bas
http://www.planete-domotique.com
rtp
Lapin nain
Lapin nain


Localisation : paris
Nbr de messages : 12
Carottes : 5409

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMar 2 Aoû 2011 - 20:32

PlaneteDomo a écrit:
@funfoo : Encore un petit coup de main please Smile ?

Jusque la, j'avais fait beaucoup de théorique, et maintenant, je voudrais pouvoir charger mon nominal sur le lapin.

J'ai mis en commentaire le tag "SIMU", j'ai généré le fichier foo.bin, et j'ai un bc.jsp sur le serveur qui renvoi le foo.bin.

MAIS, ça ne fonctionne pas... yellownabzsad

J'ai regardé le foo.bin d'un peu plus près, et il se trouve qu'il n'y a pas l'entête amberxxxxx, est ce normal ? Comment ajouter cette entête ?

amber...mind signifie que le binaire est "signe".
En ce qui concerne tester un binaire modifie, j'ai fait
Code:

./mtl_comp -s nominal.mtl bootc
et j'ai remplace le bootc d'ojn par ce bootc. Le "-s" fait toute la diff.

Ma modif etait de changer la couleur de respiration. C'est ce bout de code la:
Code:

fun bottomled=
        if gSleepState == 0 then
        if !earDetecting then
                (let osc time_ms>>4 -> v in led LED_BASE v*0x10001); // pulse violet
        0;;
.
J'ai mis 0x000101 a la place et ca a fonctionne.
Apres, c'etait quand meme risque. J'ai aucune idee de ce qui pourrait arriver si on met un fichier tout pourri (genre utiliser une sonde JTAG ?)
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMar 2 Aoû 2011 - 21:50

En fait, le projet VS (sous windows) semble ne pas signer le binaire en sorti !!!!

J'ai donc utilisé le code de la version Linux pour modifier le bootstrap.c du projet windows, et maintenant ....... CA MARCHE !

J'ai modifié le vlispemu que j'avais compilé : http://dl.dropbox.com/u/1998902/nabaztag/vlispemu.zip

Il génère maintenant le foo.bin (non signé) et un bc.bin signé Smile

J'ai fait un test sur mon serveur, et tout ce passe bien , le lapin récupère le nouveau bytecode nominal et l'exécute... Smile

Bon, maintenant reste plus qu'à faire des trucs intelligents dans ce bytecode Wink !


Dernière édition par PlaneteDomo le Mer 3 Aoû 2011 - 23:27, édité 1 fois
Revenir en haut Aller en bas
http://www.planete-domotique.com
totol
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 21
Carottes : 3756

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 22:40

Vous parlez tous de Windows. Pour ma par je préfère Linux yellownabzsmile

Je ne sais pas si j'ai eu de la chance mais sur mon serveur fraichement installé, ça a fonctionné du premier coup.

Pour information, je suis sur une arch (flemme de me compiler une gentoo ^^) à jour de cette aprèm.

Voici la démarche suivie. On va dire que je suis l'utilisateur "foo" (sert dans les chemins de dossiers)

1) Récupérer les sources
Pour le moment, rien de plus simple, tout est sur le site des sources : , onglet "sources"
Donc, dans le répertoire personnel :
Code:
svn checkout <idem, mettre la bonne url> nabaztag-source-code-read-only

2) Compilation du compilateur Metal
Se déplacer dans le répertoire
Code:
/home/foo/nabaztag-source-code-read-only/Sources/Hardware/compilateur/trunk/mtl_linux
et compiler le compilateur metal grâce à la commande
Code:
make
Il y a pas mal de Warning mais au final le fichier mtl_comp (le compilateur metal) est présent

3) Générer le nominal.mtl final et le compiler en bytecode, le fameu bootc
Le fichier nominal.mtl est en fait un regroupement de pas mal de fichiers ".mtl"
Se déplacer dans le répertoire
Code:
/home/foo/nabaztag-source-code-read-only/Sources/Hardware/bytecode/branches/bc-nominal/nominal_splitted
modifier le fichier "test_compile.sh" en remplacant la ligne
Code:
COMPILER="$HOME/work/compilateur/trunk/mtl_linux/mtl_comp"
par
Code:
COMPILER="$HOME/nabaztag-source-code-read-only/Sources/Hardware/compilateur/trunk/mtl_linux/mtl_comp"
et la ligne
Code:
"$COMPILER" -s "../nominal.mtl" "/var/www/bytecode"
par
Code:
"$COMPILER" -s "../nominal.mtl" "../bytecode"
enfin, générer le fichier bytecode grâce à la commande
Code:
sh test_compile.sh
Le fichier bytecode (le bootc) est disponible dans le dossier
Code:
/home/foo/nabaztag-source-code-read-only/Sources/Hardware/bytecode/branches/bc-nominal


Il ne reste plus qu'à le déplacer (par exemple pour OpenJabNab) dans le dossier "server" du serveur NabazTag et de le renommer en "bootc"

Je ne sais pas si ce genre de tuto existe quelque part mais ça lui donne le mérite d'exister ici yellownabzsmile

Par contre, je crois qu'on s'écarte du sujet, à la base c'était pour le firmware du lapin.
Revenir en haut Aller en bas
juherr
Lapin nain
Lapin nain


Age : 37
Localisation : Strasbourg
Nbr de messages : 9
Carottes : 3751

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 22:45

Ton Arch est une 32 ou 64bits ?
Quelle est la version de gcc utilisée ?
Revenir en haut Aller en bas
funfoo
Special Nabz
Special Nabz


Localisation : Paris
Nbr de messages : 89
Carottes : 4538

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 22:48

@totol : je n'ai pas pu essayer la version linux ; y a-t-il un simulateur avec (X11 ou Qt) ?
S'il n'y en a pas, ça sera vraiment dur de bosser avec.
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 22:53

totol a écrit:

Par contre, je crois qu'on s'écarte du sujet, à la base c'était pour le firmware du lapin.

Merci a toi pour ce tuto yellownabzsmile

Tu ne t'ecarte pas du tout du sujet. A la base, je voulais en fait pouvoir modifier le bytecode nominal, mais par erreur de terminologie, j'ai parlé de firmware....

J'ai corrigé le sujet du post yellownabzwink !

A+
Revenir en haut Aller en bas
http://www.planete-domotique.com
totol
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 21
Carottes : 3756

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 22:54

juherr a écrit:
Ton Arch est une 32 ou 64bits ?
Quelle est la version de gcc utilisée ?

32 bits

Réponse du "gcc -v" :

Code:
Utilisation des specs internes.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-linux-gnu/4.6.1/lto-wrapper
Target: i686-pc-linux-gnu
Configuré avec: /build/src/gcc-4.6.1/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libstdcxx-pch --enable-checking=release
Modèle de thread: posix
gcc version 4.6.1 (GCC)

funfoo a écrit:
@totol : je n'ai pas pu essayer la version linux ; y a-t-il un simulateur avec (X11 ou Qt) ?
S'il n'y en a pas, ça sera vraiment dur de bosser avec.

Je n'ai pas encore testé. le simulateur permet aussi de déboguer ? car sinon, la différence ( si j'ai bien compris ) est seulement le temps de démarrage du lapin.
Revenir en haut Aller en bas
juherr
Lapin nain
Lapin nain


Age : 37
Localisation : Strasbourg
Nbr de messages : 9
Carottes : 3751

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 23:05

totol a écrit:
32 bits
Merci. Ça confirme ce que je pensais. Impossible que ça fonctionne tel quel sur 64bits à cause de cast barbare d'un pointeur en int.
Revenir en haut Aller en bas
funfoo
Special Nabz
Special Nabz


Localisation : Paris
Nbr de messages : 89
Carottes : 4538

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 23:07

Avec le simulateur, tu as une sortie console de type printf (Secho, Iecho, ... dans le langage métal). Ca aide ; et le temps de démarrage est quand même un point important. Mon expérience de l'embarqué, c'est qu'il faut réduire au maximum le temps de boucle des itérations de dev : compilation, lancement, visualisation du résultat. Sinon, on perd beaucoup de temps, et on perd en concentration.
Revenir en haut Aller en bas
totol
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 21
Carottes : 3756

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 23:10

funfoo a écrit:
@totol : je n'ai pas pu essayer la version linux ; y a-t-il un simulateur avec (X11 ou Qt) ?
S'il n'y en a pas, ça sera vraiment dur de bosser avec.

Je viens de regarder, en fait avec le "mtl_comp" (compilateur Metal), un exécutable se nommant "mtl_simu" s'est également créé. Il faut par contre ramener a la main le "nominal.mtl" généré.

Quand on le lance ( rien n'est graphique , tout est en console ) :

1) il compile le nominal.tml, on voit les logs de compile. je ne met pas ici car c'est long et ca ne servirait à rien
2) il démarre. Et là, il me lance les logs suivant jusqu'à s’arrêter car configuré pour aller sur les serveurs violet.
Code:
[vm] #GC : sp=1486 hp=39460 used=19%
[vm]  b:80bf820 bc:80bf820 st:38f4 op:ffffffff

[vm] 00.13.d3.84.95.8b.
[vm] :started
[vm] 00000000 72 2e 6e 61 62 61 7a 74 61 67 2e 63 6f 6d 2f 76  r.nabaztag.com/v
[vm] 00000010 6c 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  l.--------------
[vm] 00000020 2d 2d 2d 2d 2d 2d 2d 2d 2d 01 00 00 00 00 ff ff  ---------.....▒▒
[vm] 00000030 ff 00 00 00 00 00 00 00 00 00 00 2d 2d 2d 2d 2d  ▒..........-----
[vm] 00000040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
[vm] 00000050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 2d 2d 2d  ----------...---
[vm] 00000060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
[vm] 00000070 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
[vm] 00000080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
[vm] 00000090 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 00  ------------....
[vm] 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d  ...............-
[vm] 000000b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
[vm] 000000c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 47  ---------------G
[vm] [dhcp] startdhcp
[vm] [dhcp] really do startdhcp
[vm] >uff.ff.ff.ff.ff.ff.
[simunet] xxxx netSend
[vm] :done
[vm] ## DUMPSCAN >>>>
[vm] wifi state=1
[vm] 00.13.d3.84.95.8b.
[vm] ## DUMPSCAN >>>>
[vm] ## SCAN
[vm] mac:78.79.7a.78.79.7a.
[vm] bssid:37.36.35.34.33.32.
[vm] rssi:-10
[vm] channel:11
[vm] rateset:1
[vm] encryption:0
[vm] ## SCAN a"a<a'a  a\a
[vm] mac:78.79.7a.78.79.7a.
[vm] bssid:37.36.35.34.33.32.
[vm] rssi:-10
[vm] channel:11
[vm] rateset:1
[vm] encryption:3
[vm] ## SCAN foo
[vm] mac:78.79.7a.78.79.7a.
[vm] bssid:37.36.35.34.33.32.
[vm] rssi:-20
[vm] channel:11
[vm] rateset:1
[vm] encryption:0
[vm] ## SCAN zzz
[vm] mac:78.79.7a.78.79.7a.
[vm] bssid:37.36.35.34.33.32.
[vm] rssi:-10
[vm] channel:11
[vm] rateset:1
[vm] encryption:0
[vm] 0
[vm] 0
[vm] 0
[simunet] xxxx netAuth  11 1 0 0
[vm] :-------------gostation
[vm] r.nabaztag.com/vl/locate.jsp?sn=0013d384958b&h=4&v=18673
[vm] HTTPREQUEST url=r.nabaztag.com/vl/locate.jsp?sn=0013d384958b&h=4&v=18673
[vm] [dns] dnsreq(
[vm] r.nabaztag.com)
[vm] 00000000 00 01 01 00 00 01 00 00 00 00 00 00 01 72 08 6e  .............r.n
[vm] 00000010 61 62 61 7a 74 61 67 03 63 6f 6d 00 00 01 00 01  abaztag.com.....
[vm] [dns] on fait une requete dns pour le domaine r.nabaztag.com
[simunet] xxxx netSend
[vm] wifi state=4
[vm] -------------dhcp
[vm] [dhcp] startdhcp
[simunet] xxxx netSend
[simunet] xxxx netSend
[simunet] xxxx netSend
[vm] [dhcp] startdhcp
[simunet] xxxx netSend
[simunet] xxxx netSend
[simunet] xxxx netSend
[simunet] xxxx netSend
[vm] [dhcp] startdhcp
[simunet] xxxx netSend
[simunet] xxxx netSend
[simunet] xxxx netSend
[vm] ##timeout on configwait
[vm] r.nabaztag.com/vl/locate.jsp?sn=0013d384958b&h=4&v=18673
[vm] HTTPREQUEST url=r.nabaztag.com/vl/locate.jsp?sn=0013d384958b&h=4&v=18673
[vm] [dns] dnsreq(
[vm] r.nabaztag.com)
[vm] 00000000 00 02 01 00 00 01 00 00 00 00 00 00 01 72 08 6e  .............r.n
[vm] 00000010 61 62 61 7a 74 61 67 03 63 6f 6d 00 00 01 00 01  abaztag.com.....
[vm] [dns] on fait une requete dns pour le domaine r.nabaztag.com
[simunet] xxxx netSend
[simunet] xxxx netSend
[vm] [dhcp] startdhcp
[simunet] xxxx netSend
[simunet] xxxx netSend
[simunet] xxxx netSend

[simunet] xxxx netSend
[vm] [dns] dnstime, timeout pour la requete d'id 2
[vm] found ip=NIL
[vm] call to locate.jsp failed, rebooting
[vm] reboot 407fe58.13fb6754
REBOOT NOW.....

Voila Voila.

Sous Windows ça donne quoi ? Une IHM (tu parlais de X11) ? Des lignes de débug ?
Revenir en haut Aller en bas
rtp
Lapin nain
Lapin nain


Localisation : paris
Nbr de messages : 12
Carottes : 5409

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 23:12

funfoo a écrit:
@totol : je n'ai pas pu essayer la version linux ; y a-t-il un simulateur avec (X11 ou Qt) ?
S'il n'y en a pas, ça sera vraiment dur de bosser avec.
ben, dans les target du Makefile, y a un simulateur appele mtl_simu. J'arrive a le lancer mais ca va pas loin car des fonctions reseaux (netSend) sont pas simulees. Les precedentes versions de nominal.mtl semblent utiliser tcpOpen mais pas la derniere version qui utilise que netSend visiblement... qui est reduit a un "return -1;" (vnet.c).

En plus, tout ne semble pas implemente dans ce simulateur (genre les leds) et, non, ca utilise pas X11/gtk/efl/qt.

Si quelqu'un arrive a faire fonctionner le mtl_simu avec la derniere version, je suis interesse
Revenir en haut Aller en bas
PlaneteDomo
Lapin nain
Lapin nain


Localisation : Clermont fd
Nbr de messages : 24
Carottes : 3786

Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitimeMer 3 Aoû 2011 - 23:26

Pour utiliser le simulateur, il faut enlever le commentaire de la ligne 26 (// #define SIMU)

Ca permet de gerer le reseau correctement entre autre.

Sous windows, ça donne ça :

Demande d'aide Funfoo - Firmware / ByteCode du lapin Simu

La console pour les printf et le lapin avec Oreilles, Led, Bouton, simu RFID ....

A++
Revenir en haut Aller en bas
http://www.planete-domotique.com
Contenu sponsorisé




Demande d'aide Funfoo - Firmware / ByteCode du lapin Empty
MessageSujet: Re: Demande d'aide Funfoo - Firmware / ByteCode du lapin   Demande d'aide Funfoo - Firmware / ByteCode du lapin Icon_minitime

Revenir en haut Aller en bas
 
Demande d'aide Funfoo - Firmware / ByteCode du lapin
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: Les Nabaztags sont sauvés ! Les solutions... :: Les serveurs alternatifs :: FreeNabaztag - Les forces en présence-
Sauter vers: