Ta suggestion a piqué ma curiosité et j'ai essayé d'arriver à ce résultat avec uniquement le préprocesseur avr-cpp. Et bingo! Voici ce que ça donne avec un "bête" programme de démo pour le ATtiny1634, par exemple:
avr-cpp -E -dM -Os -DF_CPU=8000000 -mmcu=attiny1634 demo.cpp | \
sed -rne 's/#define\s+(\w+)\s+_SFR_([IM]\w+[0-9]+\(\w+\))/1円: 2円/p'
En gros, ça n'affiche que les lignes de définition des registres (SFR_IOxx et SFR_MEMxx) et le résultat est le suivant:
TWSSRA: MEM8(0x7D)
EECR: IO8(0x1C)
EEDR: IO8(0x1D)
OSCCAL0: MEM8(0x63)
MCUCR: IO8(0x36)
PINA: IO8(0x0F)
PINB: IO8(0x0B)
PINC: IO8(0x07)
...
Note que les options -O et -DF_CPU= sont nécessaires pour éviter un avertissement (généré dans les en-têtes).
Il "suffit" de tripatouiller le script sed pour adapter la sortie en fonction du langage souhaité. Moralité: on a déjà assez avec les outils de base.
C'est bien entendu un premier jet car, tu l'auras remarqué, on perd l'info du processeur et du fichier d'en-tête incorporé. Je pense que c'est l'objet de l'option -d du préprocesseur. Je suis à peu près certain que c'est là-dessus qu'il faut jouer.
[^] # Re: Idée pour les autres MCU
Posté par FantastIX . En réponse au journal Un utilitaire pour formater la sortie de avr-objdump. Évalué à 2.
Ta suggestion a piqué ma curiosité et j'ai essayé d'arriver à ce résultat avec uniquement le préprocesseur
avr-cpp. Et bingo! Voici ce que ça donne avec un "bête" programme de démo pour le ATtiny1634, par exemple:avr-cpp -E -dM -Os -DF_CPU=8000000 -mmcu=attiny1634 demo.cpp | \
sed -rne 's/#define\s+(\w+)\s+_SFR_([IM]\w+[0-9]+\(\w+\))/1円: 2円/p'
En gros, ça n'affiche que les lignes de définition des registres (SFR_IOxx et SFR_MEMxx) et le résultat est le suivant:
TWSSRA: MEM8(0x7D)
EECR: IO8(0x1C)
EEDR: IO8(0x1D)
OSCCAL0: MEM8(0x63)
MCUCR: IO8(0x36)
PINA: IO8(0x0F)
PINB: IO8(0x0B)
PINC: IO8(0x07)
...
Note que les options
-Oet-DF_CPU=sont nécessaires pour éviter un avertissement (généré dans les en-têtes).Il "suffit" de tripatouiller le script
sedpour adapter la sortie en fonction du langage souhaité. Moralité: on a déjà assez avec les outils de base.C'est bien entendu un premier jet car, tu l'auras remarqué, on perd l'info du processeur et du fichier d'en-tête incorporé. Je pense que c'est l'objet de l'option
-ddu préprocesseur. Je suis à peu près certain que c'est là-dessus qu'il faut jouer.