Re: Analyse utilisation mémoire C

Liste des GroupesRevenir à fs electronique 
Sujet : Re: Analyse utilisation mémoire C
De : toto (at) *nospam* toto.com (Pascal06)
Groupes : fr.sci.electronique
Suivi-à : fr.comp.lang.c
Date : 24. Mar 2023, 09:46:58
Autres entêtes
Organisation : Nemoweb
Message-ID : <FUBzRdvuxHZhLW70_avWy1OdD5g@jntp>
References : 1 2 3
User-Agent : Nemo/0.999a
Le 03/02/2023 à 10:23, Pascal06 a écrit :
Le 02/02/2023 à 23:48, JKB a écrit :
Bonsoir,
  Pas sûr que je comprenne la demande. Si c'est pour un code
s'exécutant sur une machine standard, il faut voir les sections du
binaires (.data par exemple, ou .text). Le code source ne donnera
pas grand'chose parce que le compilateur peut optimiser des tas de
choses (alignement mémoire entre autre, champs de bits...).
Pascal
Bonjour à toutes et tous,
je reviens sur ce messages, car depuis j'ai trouvé des éléments de réponses.
Il existe donc deux outils qui permettent d'analyser les fichiers map générés par le compilateur gcc:
https://github.com/govind-mukundan/MapViewer
https://www.sikorskiy.net/info/prj/amap/
Malheureusement, ces outils ne fonctionnent pas avec le code que je voulais analyser et qui est compilé avec XC8 de Microchip: celui-ci n'étant pas basé sur GCC (contrairement à XC16).
Par contre,
dans le code assembleur qui est généré (fichier .lst), il est indiqué en commentaire la taille de chacune des variables utilisées, par exemple:
1642 ;; *************** function _main *****************
  1643 ;; Defined at:
  1644 ;; line 112 in file "main.c"
  1645 ;; Parameters:    Size  Location     Type
  1646 ;; None
  1647 ;; Auto vars:     Size  Location     Type
  1648 ;;  sgOld           4   63[BANK0 ] unsigned long   1649 ;;  spOld           4   59[BANK0 ] unsigned long   1650 ;;  sg              4    0        unsigned long   1651 ;;  sp              4    0        unsigned long   1652 ;;  drvConfig       2   67[BANK0 ] struct .
  1653 ;;  adcRawValue     2    0        unsigned short   1654 ;;  msdiStatus      1    0        enum E3961
  1655 ;;  i               1    0        unsigned char   1656 ;; Return value:  Size  Location     Type
  1657 ;;                  2  313[None  ] int   1658 ;; Registers used:
  1659 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
Ce qui correspond donc tout à fait à ce que je cherchais. On voit par exemple que sgOld prend 4 octets, que c'est un unsigned long ( = uint32_t), qu'il utilise le bank0.
Le micro 8 bits utilisé est une PIC16F15244
Ce fichier lst est placé dans le dossier /dist/default du projet.
Si ça peut aider d'autre personnes ;)
Pascal

Date Sujet#  Auteur
24 Mar 23 o Re: Analyse utilisation mémoire C1Pascal06

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal