[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gulliver] Paramètres pour un fichier assembleur
|
From |
Gilles LAMIRAL <gilles dot lamiral at laposte dot net> |
|
Subject |
Re: [gulliver] Paramètres pour un fichier assembleur |
|
Date |
Sun, 26 Aug 2007 00:46:47 +0200 |
Bonjour,
Le preprocesseur m4 et le shell sont tes amis.
Dans un quart d'heure tu en pinces pour m4 et le shell.
=== Partie m4 ===
Voici 4 exemples progressifs.
1) Tu crée un fichier f01.m4 avec le contenu suivant :
Le taux vaut BAUD_RATE
Une façon de créer ce fichier (à copier-coller dans un
terminal):
echo 'Le taux vaut BAUD_RATE' > f01.m4
tu invoques m4 sur ce fichier :
m4 -P f01.m4
Tu obtiens en sortie le contenu du fichier, sans changement:
m4 -P f01.m4
Le taux vaut BAUD_RATE
Rien de transcendant pour l'instant.
1b) Tu invoques m4 de nouveau avec un paramètre
supplémentaire:
m4 -P -D BAUD_RATE=19200 f01.m4
Tu obtiens en sortie le contenu du fichier, et un peu de
magie:
m4 -P -D BAUD_RATE=19200 f01.m4
Le taux vaut 19200
La déjà tu as le sourire. Passons à la valeur par défaut.
2) Tu crée un fichier f02.m4 avec le contenu suivant :
m4_define(`BAUD_RATE',m4_ifdef(`BAUD_RATE',BAUD_RATE,`9600'))m4_dnl
Le taux vaut BAUD_RATE
lalala
Voici une façon de créer ce fichier (à copier-coller dans un
terminal du cat au dernier PROUT + Entrée) :
cat > f02.m4 <<'PROUT'
m4_define(`BAUD_RATE',m4_ifdef(`BAUD_RATE',BAUD_RATE,`9600'))m4_dnl
Le taux vaut BAUD_RATE
lalala
PROUT
tu invoques m4 sur ce fichier :
m4 -P f02.m4
Tu obtiens en sortie le contenu du fichier, et de la magie
en plus :
m4 -P f02.m4
Le taux vaut 9600
lalala
2b) Tu invoques m4 de nouveau avec un paramètre
supplémentaire:
m4 -P -D BAUD_RATE=19200 f02.m4
Tu obtiens en sortie le contenu du fichier, et encore un
peu de magie :
m4 -P -D BAUD_RATE=19200 f02.m4
Le taux vaut 19200
lalala
Ton besoin est rempli.
4) Création du fichier à assembler : une simple redirection suffit.
m4 -P -D BAUD_RATE=19200 f02.m4 > f02.asm
as f02.asm
5) Création de compiler.sh pour pouvoir faire
compiler.sh moniteur.asm bd=19200 zzzz=dodo ...
Je change l'interface, ce sera plutôt
sh compiler moniteur BAUD_RATE=19200 TRUC_MACHIN=42 ...
Copier-coller les lignes suivantes en ligne de commande du
cat au LIK. (ou bien créer un fichier de la ligne "#!/bin/sh" à
la ligne "as $file.asm")
cat > compiler <<'LIK'
#!/bin/sh
#set -x # enlever le premier # pour passer en mode debug shell
file=$1
shift
test -n "$file" || { echo "usage: $0 fichier"; exit 1; }
test -f "$file" || { echo "Pas glop $file n'existe pas"; exit 1; }
# recup des paramètres avec ajout de -D pour chacun
for arg in "$@"; do
PARAMS="$PARAMS -D $arg"
done
# m4 au boulot
eval "m4 -P $PARAMS $file > $file.asm"
# assemblage
as $file.asm
LIK
Essayer avec
sh compiler f02.m4 BAUD_RATE=19200 YOYO=42
Il y a as qui n'est pas content mais l'essentiel est là.
--
Au revoir, 02 99 64 31 77
06 20 79 76 06
Gilles Lamiral. France, Chavagne (35310) 09 52 27 33 66