Les sections .data/.bss/.noinit ne changent pas. Mais pourquoi ce simple appel de fonction fait passer mon code de 14884 à 75690 ?
Les deux binaires se comportent identiquement.
Je n'ai pas cherché à désassembler le code (je suis pas au point en assembleur AVR8) mais je ne comprends pas pourquoi le remplacement d'une boucle par une fonction faisant la même chose se comporte de la sorte. Je veux bien qu'il y ait un appel de fonction supplémentaire, mais ça ne fait pas la différence.
Les options de compilation dans les deux cas sont les suivantes : -Os -g -Werror -Wextra --param=min-pagesize=0
Merci pour vos lumières,
JKB
-- Si votre demande me parvient en code 29, je vous titiouillerai volontiers une réponse.
Date
Sujet
#
Auteur
16 May 23
Génération de code incompréhensible (occupation mémoire)