Autres articles / Other articles

MyFFshell: la compilation FORTH à très grande vitesse

publication: 28 janvier 2022 / mis à jour 28 janvier 2022

Read this page in english

 

Appel à collaboration

Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.

Partagez-les ici sur ce site.

ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.

Vos montages peuvent aider d'autres développeurs.

Les montages des autres développeurs peuvent vous aider.

Pour proposer un article ou un montage, cliquez ici



Tout d'abord, un grand MERCI à Jan LANGEVAD pour avoir mis au point MyFFshell.

Le programme MyFFshell

Télécharger MyFFshell

Vous pouvez télécharger MyFFshell en cliquant ici ZIP - 681K

Une fois téléchargé, installez le programme dans le répertoire de votre choix.

MyFFshell ne nécessite aucune installation. Le programme peut être lancé immédiatement.

Il est probable que Windows Defender émette un avertissement. Passez outre cet avertissement.

Les points forts de MyFFshell

Premier point fort: le programme fonctionne sous WINDOWS. Il ne nécessite aucune extension et est autonome.

Deuxième point fort: MyFFshell peut être placé dans le répertoire de votre choix. Il se lance et est disponible en quelques secondes.

Troisième point fort: MyFFshell attend le signal de fin de ligne transmis par ESP32Forth avant de transmettre une nouvelle ligne de code FORTH. Cette option activée par défaut accélère la transmission du code FORTH.

Quatrième point fort: MyFFshell supprime les commentaires avant de transmettre le code FORTH. Cette option activée par défaut accélère la transmission du code FORTH.

Cinquième point fort: MyFFshell accepte deux directives include et EOF permettant d'imbriquer la transmission de fichiers multiples. Voyons ces directives en détail.

Les directives INCLUDE et EOF

Avant d'expliquer le rôle de ces directives, revenons sur la manière de programmer avec ESP32Forth...

Si vous utilisez simplement TeraTerm (ou un autre logiciel terminal), à chaque recompilation de code, il est nécessaire de procéder à la phase copié/collé du code FORTH. S'il s'agit de petits morceaux de code, en général 10 à 30 lignes, on peut accepter la manoeuvre. Mais quand on commence à traiter des programes occupant plusieurs pages, ça peut devenir handicapant.

C'est encore pire quand le code FORTH est réparti sur plusieurs fichiers:

La solution, la moins pire, consisterai à regrouper les portions de code dans un seul fichier. Mais la transmission d'un très gros fichier en une seule fois prend quand même un certain temps.

La directive include peut être intégrée à un fichier de travail comme ceci:

\ include "strings.txt"

Cette directive doit être placée après "\" qui marque le début d'un commentaire FORTH. La compilation normale va ignorer ce qui est placé après "\".

Mais MyFFshell va détecter cette directive et va ouvrir ce nouveau fichier et transmettre son contenu à la carte ARDUINO. Les appels par include peuvent être imbriqués:

La directive eof est intégrée ainsi:

\ eof
\ don't compile line after eof

La directive eof est détectée par MyFFshell qui interrompra la transmission du fichier en cours de transmission et remonte dans la hiérachie d'appel de fichiers le cas échéant.

Un même fichier de travail peut contenir plusieurs directives include. Un fichier peut contenir une seule directive eof.

Utiliser MyFFshell

Ouvrez le répertoire où vous avez décompressé le contenu du fichier MyFFshellDistribution45.zip.

Lancez le programme MyFFshell.exe:

Cliquez d'abord sur Processor-type et sélectionnez ESP32.

Sélectionnez ensuite le port série en cliquant sur Serial-Setup:

Cliquez ensuite sur Connect pour vérifier la bonne transmission avec la carte ESP32.

Ensuite, cliquez sur File et sélectionnez Sourcefile window:

Dans cette nouvelle fenêtre, cliquez sur File et recherchez le fichier à transmettre à ESP32Forth:

Dans cette fenêtre, vous pouvez modifier votre code source à volonté. C'est un éditeur simple mais efficace.

Pour transmettre le contenu du code source FORTH à la carte ESP32, cliquez sur le bouton marqué Send all text to processor:

La transmission omet tous les commentaires du code source. Et comme expliqué plus haut, si MyFFshell rencontre une directive include, la transmission bascule vers le nouveau fichier. Arrivé à la fin de ce nouveau fichier, la transmission reprend à la ligne suivante de la directive include.

RAPPEL: les deux directives include et eof doivent être en commentaire. Cette exigence permet d'utiliser le code source sans MyFFshell.

Les directives include et eof sont héritées de la version TURBO-Forth pour PC, développé en 1986 par: Marc PETREMANN, Michel ZUPAN...

Une même idée, exploitée presque 40 années plus tard avec ESP32Forth.

En conclusion, l'utilisation de MyFFshell permet:

Bonne programmation.


Legal: site web personnel sans commerce / personal site without seling